静的 Java コンパイラーとして知られる Java コンパイラーのサブセット用の ANTLR 文法が与えられました。文法を拡張して、Java の機能をさらに含めようとしています。たとえば、 For Loopsの文法を追加しました。
Eclipse と ANTLR プラグインを使用して、「ANTLR 文法のコンパイル」を行いました。コンパイルする代わりに、コードの最初のビットで 2 つのエラーが発生しました。
grammar ExtendedStaticJava;
options { backtrack=true; memoize=true; }
@header
{
package sjc.parser.extended;
import java.math.BigInteger;
/**
* Extended StaticJava parser.
* @author <myname>
*/
}
// the rest of the grammar has been excluded.
最初のエラーは 1 行目にあります: 'Unexpected Token: grammar' 2 番目のエラーは 5 行目にあります: 'Unexpected char: @'
この基本的な ANTLR 構文を認識しないのはなぜですか? 私の最初の考えは、クラスパスに何かが欠けているということでしたが、プロジェクトのプロパティに移動し、次の JAR がLibrariesに含まれていることを確認しました。
- antlr-2.7.7.jar
- stringtemplate-3.2.1.jar
- antlr.jar
- antlr-runtime-3.0.1.jar
アイデアや提案はありますか?