我正在使用 antlr 3.4 编写解析器语法,如下所示:
var : VAR_LEFT_PART atom_var VAR_RIGHT_PART ;
atom_var : ID | VAR_LEFT_PART ID VAR_RIGHT_PART ;
VAR_LEFT_PART : '{{';
VAR_RIGHT_PART : '}}';
ID : ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '0'..'9' | '_')* ;
INT : ('1'..'9')('0'..'9')* ;
NEWLINE:'\r'? '\n' ;
WS : (' '|'\t')+ { $channel = HIDDEN;} ;
当我在下面测试一个案例时:
问题是我的字符串“{{ {test} }}”不正确,但是解析器将ID识别为错误的令牌,有什么问题?