use*_*218 4 grammar antlr antlr4
我有问题用antlr v4生成我的语法定义:
grammar TagExpression;
expr : not expr
| expr and expr
| expr or expr
| '(' expr ')'
| tag
;
tag : [a-zA-Z]+ ;
and : '&' ;
or : '|' ;
not : '!' ;
WS : [ \t\n\r]+ -> skip ;
Run Code Online (Sandbox Code Playgroud)
语法错误发生在这里: tag : [a-zA-Z]+ ;
error(50): c:\temp\antlr\TagExpression.g4:10:6: syntax error: 'a-zA-Z' came as a complete surprise to me while matching alternative
Run Code Online (Sandbox Code Playgroud)
我看到的例子有非常相似的结构.知道为什么会这样吗?
谢谢
Sam*_*ell 12
字符集表示法只能用于词法分析器规则(以大写字母开头的规则,并生成令牌而不是解析树).
Tag : [a-zA-Z]+;
Run Code Online (Sandbox Code Playgroud)