これは構成の問題である可能性があります。私はすべてを機能させるのにいくつかの困難を抱えていたので、これを行う方法の場所を1つも見つけることができず、自分のドキュメントを作成しました。お役に立てれば。
EclipseIndigoにANTLRIDEをインストールする方法
IndigoR2およびIDE2.1.2でテスト済み
- Eclipseをインストールします。
- ANTLRv2を含むANTLR完全バイナリjarをダウンロードします。一時ディレクトリに抽出します。antlr-nnフォルダーを適切な永続的な場所、たとえばEclipseがインストールされているのと同じフォルダーにコピーします。
- ANTLRIDE更新サイトをEclipseに追加します。
- Eclipseで、[ヘルプ]をクリックし、[新しいソフトウェアのインストール]を選択します。
- [追加...]ボタンをクリックします。
- [リポジトリの追加]ウィンドウで、[場所]にhttp://antlrv3ide.sourceforge.net/updatesと入力し、[名前]にANTLR IDEなどと入力し、[OK]をクリックして[利用可能なソフトウェア]ウィンドウに戻ります。
- ANTLR IDE vn.nnのチェックボックスをオンにして、インストールされるまでクリックします。Eclipseはおそらく再起動します。
- ANTLRIDEを構成します。
- Eclipseのメインウィンドウで、[ウィンドウ]、[設定]の順にクリックします。
- 左側のペインで、ANTLRを展開し、[ビルダー]を選択します。
- 右側のペインで、[追加...]ボタンをクリックします。
- [ANTLRパッケージの追加]ウィンドウで、[ディレクトリ...]をクリックし、antlr-nnフォルダーの場所に移動して、[OK]をクリックします。
- [OK]をクリックして、[ANTLRパッケージの追加]ウィンドウを閉じます。
- 左側のペインで[コードジェネレーター]を選択し、右側のペインで[プロジェクト相対フォルダー]をクリックします。フォルダ名を入力します。例:antlr-javaまたはantlr-generated。
- 他の構成パラメーターを選択しますが、「構築」ウィンドウの「一般」の下にある「-nfa」または「-dfa」はチェックしないでください。オンにすると、ANTLRエラーが発生し、出力フォルダーにJavaファイルが生成されなくなります。
- [OK]をクリックして、[設定]ウィンドウを閉じます。
- 新しいJavaプロジェクトを作成し、ANTLRサポートを有効にします。
- Eclipseのメインウィンドウから、[ファイル]、[新規]、[Javaプロジェクト]に移動します。[次へ]をクリックし、プロジェクト名を入力して、[完了]をクリックします。
- プロジェクトのANTLRサポートを有効にするには、[パッケージエクスプローラー]ウィンドウ(左側のペイン)で、作成したばかりのプロジェクトを右クリックし、[構成]、[ANTLRプロジェクトに変換]を選択します。
- ANTLR完全なjarファイルをプロジェクトに追加します。プロジェクトを右クリックして[プロパティ]、[Javaビルドパス]の順に選択し、[外部JARの追加...]をクリックして、ANTLR jarファイルを参照して選択し、[OK]をクリックします。[OK]をクリックして、プロジェクトの[プロパティ]ウィンドウを閉じます。
- ANTLR文法を作成します。
- 新しいANTLR文法を作成します。プロジェクトのsrcフォルダーを右クリックし、[ファイル]、[新規]、[その他]の順にクリックし、[ANTLR]を展開して、[結合文法]を選択します。[次へ]をクリックし、文法名を入力して[言語]オプションを選択し、[完了]をクリックします。
- 「.g」ファイルは、選択されたオプションと空白のルールで作成されます。オプションlanguage=Java、@ header、@ lexer :: header、および@membersステートメントを上部に追加します(例を参照)。オートコンプリートは、これらを追加する最も簡単な方法です(CTRL-スペースを押してオートコンプリートリストを表示します)。
- 文法を保存します。
- 保存すると、文法用に生成されたJavaコードを含むフォルダーがプロジェクトエクスプローラーに表示されます。そうでない場合は、BuildingウィンドウのGeneralの下にあるANTLR Preferencesで–nfaまたは–dfaオプションがチェックされていないことを確認してください(ステップ4g)。[これらが必要かどうかを確認します。CLASSPATH環境変数がEclipseインストール(32ビットまたは64ビット)と一致するJava7を指し、Windowsパス環境変数にJava7SDKが含まれていることを確認します。]
- 「タイプに解決できない」Javaエラーを回避するには、生成されたJavaコードを含むフォルダーを右クリックし、[パスの作成]、[ソースフォルダーとして使用]の順にクリックします。
サンプルの組み合わせ文法
grammar test; //must match filename.g
options {
language = Java;
}
@header { //parser
package pkgName; //optional
import java.<whatever you need>.*;
}
@members { //parser
// java code here
}
@lexer::header { //lexer
package pkgName; //optional
import java.<whatever you need>.*;
}
@lexer::members {
// java code here
}
/*------------------------------------------------------------------
* PARSER RULES (convention is all lowercase)
*------------------------------------------------------------------*/
parserule: LEXRULE;
/*------------------------------------------------------------------
* LEXER RULES (convention is all uppercase)
*------------------------------------------------------------------*/
LEXRULE: 'a'..'z';