0

カスタム文法を使用して入力ファイルを処理し、トークンを抽出してHashMap. rule()ANTLR 3 では、パーサーでメソッドを呼び出して のHashMapようなものを取得することでファイルを解析できましたparser.record

これはANTLR 4では機能しないようです。本を参照したところ、parser.init()解析を開始するには呼び出す必要があるようですが、パーサーにメソッドが表示されません。

ANTLRWorks 2 を使用してレクサー ファイルとパーサー ファイルを生成しました。私はリスナークラスを生成しませんでした。

4

1 に答える 1

5

ANTLR 4では、エントリルールの名前に一致するメソッドを呼び出すことで解析を開始します。文法のルールが呼び出された場合はrule、を呼び出して解析を開始しますrule()。文法のルールが呼び出された場合は、initを呼び出して解析を開始しますinit()

ANTLR 4のJavaターゲットでは、というルールを使用できないことに注意してください。そのruleため、文法にそのようなルールがある場合は、文法をコンパイルする前に名前を変更する必要があります。

于 2013-03-14T21:04:48.733 に答える