0

我正在使用 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识别为错误的令牌,有什么问题?

4

1 回答 1

0

我用 ANTLR 3.4 试过,它似乎工作正常。eclipse 插件的解释器绘制了与您的帖子中相同的错误树,但已知它存在错误。

于 2012-11-20T10:34:08.183 回答