我使用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错误的标记,问题是什么?
答案 0 :(得分:0)
我尝试使用ANTLR 3.4,它似乎正常工作。 eclipse插件的解释器绘制了与你帖子中相同的错误树,但它已知是错误的。