0
があるときにエラーがスローされますので、これは私の文法である:ANTLRは、テキストをコンパイルしますが、常に空白
grammar Test;
prog: stmt_list;
stmt_list
: stmt_list stmt ';'
| stmt ';'
;
stmt
: assignment
| bind
;
assignment: 'var' IDENTIFIER ('=' | '+=' | '-=' | '*=' | '/=') expression;
type
: IDENTIFIER
| primitiveType
;
primitiveType
: 'int'
| 'float'
| 'string'
| 'bool'
;
expression
: atom
| expression ('*' | '/') expression
| expression ('+' | '-') expression
;
atom
: '(' expression ')'
| IDENTIFIER
| INT
| STRING
;
IDENTIFIER: [A-z_][A-z_0-9]*;
INT: [1-9][0-9]*;
STRING: '"' [A-z] '"';
WS: [\t\r\n]+ -> channel(HIDDEN);
私はANTLRでそれをコンパイルすることができ、すべてが正常に動作します。 grunでテストすると、コンパイルされますが、空白がある場合はいつでも "トークン認識エラー"がスローされます。この入力でたとえば:
var a = b + c;
私が取得:
line 1:3 token recognition error at: ' '
line 1:5 token recognition error at: ' '
line 1:7 token recognition error at: ' '
line 1:9 token recognition error at: ' '
line 1:11 token recognition error at: ' '
このすべての作品が、私は、これらのメッセージを取り除くことができれば、それはまだいいだろうほか。