web-dev-qa-db-ja.com

ANTLR 4の設定に関する問題IDE Eclipse Luna(4.4)

ANTLR 4 IDE をEclipse Luna(4.4)にインストールしようとしています。マーケットプレイスからインストールしましたが、ANTLR 4レクサー/パーサーを含むプロジェクトを作成する方法がわかりません。

新しいプロジェクトを作成しようとしても、ANTLR 4のオプションが表示されません。g4ファイルを作成しようとすると、エディターで開きましたが、保存しても何も起こりません。

16
amura.cxg

私はインターネット全体を見回して、一緒に石畳を作ったいくつかのリソースを見つけ、試行錯誤による解決策を見つけました。以下は、EclipseでANTLR 4 IDEセットアップを取得するためにいくつかのマシンで使用したガイドです。私はそれをここで共有し、Googleが何時間も検索する手間を(できれば)救うべきだと考えました

前提条件

  • Eclipse 4.4 Luna Xtext Complete SDK(バージョン2.7.3が必要)
  • Eclipse Faceted Project Framework(3.4.0でテスト済み)Eclipse Faceted
  • プロジェクトフレームワークJDT有効化(3.4.0でテスト済み)ANTLR 4 SDK A
  • Antlr-4.x-complete.jarのコピー(執筆時点では4.5)

セットアップ

  1. Eclipseをインストールする
    1. からダウンロードしてくださいhttps://www.Eclipse.org/downloads/
  2. XText 2.7.3 をインストールします
    1. _Help > Install New Software..._に移動します
    2. _http://download.Eclipse.org/modeling/tmf/xtext/updates/composite/releases/_テキストボックスに_Work With_を入力します
    3. Enterキーを押して、リストが読み込まれるのを待ちます(これにはしばらく時間がかかります)
    4. Xtextノードを展開し、_Xtext Complete SDK_を確認します(バージョンが2.7.3xであることを確認します)
    5. Nextをクリックし、EULAに同意して、[完了]をクリックします
    6. インストーラーを終了してEclipseを再起動します
  3. ファセットプロジェクトフレームワークのインストール
    1. _Help > Install New Software..._に移動します
    2. _http://download.Eclipse.org/releases/luna_テキストボックスに_Work With_を入力します
    3. Enterキーを押して、リストが読み込まれるのを待ちます(これにはしばらく時間がかかります)
    4. フィルターテキストボックスにFacetと入力します
    5. _Eclipse Faceted Project Framework_および_Eclipse Faceted Project Framework JDT Enablement_を選択します
    6. Nextをクリックし、EULAに同意して、[完了]をクリックします
    7. インストーラーを終了してEclipseを再起動します
  4. ANTLR 4 IDEをインストールする
    1. _Help > Eclipse Marketplace..._に移動します
    2. antlrを検索
    3. _ANTLR 4 IDE_を選択します(ANTLR IDEではなくANTLR 4 IDEであることを確認してください)
    4. インストールをクリックします
    5. インストーラーがプロンプトを表示し、Eclipseを再起動したら[ok]をクリックします。
  5. Antlr-4.x-complete.jar のコピーを取得します
    1. ここからファイルをダウンロードしてください
    2. 覚えている場所に保存してください

ANTRL 4プロジェクトの作成

私はこの情報のほとんどを見つけました ここ 、残りはエラーの読み取りと推測でした

  1. _File > New Project > Project_に移動します
  2. _General Tab_を展開して_ANTLR 4 Project_を選択します(これが表示されない場合は、セットアップのステップ4を参照してください)
  3. Nextをクリックし、プロジェクトに名前を付けてFinishをクリックします
  4. プロジェクトが完了したら、プロジェクトを右クリックしてPropertiesをクリックします
  5. _Project Facets_に移動し、_Convert to faceted form..._をクリックします(これが表示されない場合は、セットアップのステップ3を参照してください)
  6. Javaプロジェクトファセットを確認し、Applyをクリックします(これが表示されない場合は、セットアップのステップ3を参照してください)
  7. OKをクリックして、ソリューションを再構築し、プロパティを再度開きます
  8. _Java Build Path_に移動し、[Source]タブをクリックします
  9. _Add Folder..._をクリックして_Project > target > generated-sources > antlr4_を確認し、OKをクリックします
  10. Librariesタブをクリックします
  11. _Add External JARs..._、_antlr-4.x-complete.jar_のコピーを見つけ、Openをクリックします
  12. _ANTLR 4 > Tool_に移動し、ポップアップが表示されたらApplyをクリックします
  13. チェック_Enable project specific settings_
  14. Addをクリックし、_antlr-4.x-complete.jar_のコピーを見つけて、Openをクリックします。
  15. チェック_4.x_
  16. Applyをクリックし、Yesをクリックして再構築し、OKをクリックしてプロパティを終了します

テスト

次のコードで新しいクラスを作成し、実行してみてください。コンソールで_Hello there_と書き、 Ctrlz EOFを入力ストリームに送信する

_import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
public class HelloRunner 
{
    public static void main( String[] args) throws Exception 
    {

        ANTLRInputStream input = new ANTLRInputStream( System.in);

        HelloLexer lexer = new HelloLexer(input);

        CommonTokenStream tokens = new CommonTokenStream(lexer);

        HelloParser parser = new HelloParser(tokens);
        ParseTree tree = parser.r(); // begin parsing at rule 'r'
        System.out.println(tree.toStringTree(parser)); // print LISP-style tree
    }
}
_

注意事項

  1. _ANTLR 4 > Tool_にアクセスしようとしたときにエラーが発生した場合は、Xtextバージョンを確認してください。2.8.0を使用すると、ツールウィンドウでエラーが発生します。
  2. ステップ8では、ANTLRが生成するディレクトリを変更した場合、ソースがそのディレクトリを使用します
  3. _ANTLR 4 > Tool > Distributions_に追加したANTLRのバージョンが表示されなくなった場合は、問題ないようです

    • ビルド出力をチェックして、どのツールが使用しているかを確認します。追加したJARは、たとえそれが表示されなくなっても使用する必要があります。これは私のものです:

    ANTLR Tool v4.5 (C:\JavaLib\antlr-4.5-complete.jar) Hello.g4 -o C:\Users\username\workspace\project\target\generated-sources\antlr4 -listener -no-visitor -encoding UTF-8

29
amura.cxg