antlr3ideは、javaファイルが配置されているパッケージ情報なしでパーサーファイルとレクサーファイルを生成するようです(パッケージtour.trees;、ここでは相対パスフォルダーtour / treesに対応するファイルExprParser.java
とが含まれていますExprLexer.java
)。
公式フォーラムは少し非アクティブなようで、ドキュメントは私にあまり助けを与えません:(
以下はサンプルの文法ファイルですExpr.g
:
grammar Expr;
options {
language = Java;
}
prog : stat+;
stat : expr NEWLINE
| ID '=' expr NEWLINE
| NEWLINE
;
expr: multiExpr (('+'|'-') multiExpr)*
;
multiExpr : atom('*' atom)*
;
atom : INT
| ID
| '(' expr ')'
;
ID : ('a'..'z'|'A'..'Z')+ ;
INT : '0'..'9'+;
NEWLINE : '\r'?'\n';
WS : (' '|'\t'|'\n'|'\r')+{skip();};