電話すると:
java org.antlr.Tool -o outdir sources/com/example/Java5.g
...antlr-3.1.3 では、パーサーとレキサーのコードがディレクトリに生成されますoutdir/sources/com/example
。ただし、生成されたクラスにはステートメントがありませんpackage
。パッケージ内でそれらを有効にする必要がありますcom.example
。
対象パッケージを指定する方法はありますか?
ベストアンサー1
ANTLR は、パッケージとインポートを組み込むことができるヘッダー ツールを提供します。これを *.g 文法ファイルに組み込みます。
@header {
package org.xmlcml.cml.converters.antlr;
import java.util.HashMap;
}
また、Lexer でも必要になる場合があります。
@lexer::header {package org.xmlcml.cml.converters.antlr;}
メンバーとコードを追加する必要がある場合は、次のようにします。
@members {
HashMap<String, Object> objectMap = new HashMap<String, Object>();
//...
private void addArrayValue(String content) {
//... code required by snippets in the grammar
}
}