"a-zA-Z"在匹配替代方案时对我来说是一个完全的惊喜



我在使用antlr v4生成语法定义时遇到问题:

grammar TagExpression;
expr : not expr
| expr and expr
| expr or expr
| '(' expr ')'
| tag
;
tag : [a-zA-Z]+ ;
and : '&' ;
or : '|' ;
not : '!' ;
WS : [ tnr]+ -> skip ;

语法错误:tag : [a-zA-Z]+ ;

error(50): c:tempantlrTagExpression.g4:10:6: syntax error: 'a-zA-Z' came as a complete surprise to me while matching alternative

我看到的例子有非常相似的结构。知道为什么会这样吗?

谢谢

字符集表示法只能用于词法分析器规则(以大写字母开头的规则,产生令牌而不是解析树)。

Tag : [a-zA-Z]+;

问题是ANTLR的语法应该是'[a-zA-Z]+'

相关内容

  • 没有找到相关文章

最新更新