我今天开始尝试使用 ANTLR3。我使用的表达方式似乎存在差异。
我希望我的班级名称以大写字母开头,然后是混合大小写字母和数字。例如,Car
有效,8Car
无效。
CLASS_NAME : ('A'..'Z')('a'..'z'|'A'..'Z'|'0'..'9')*;
当我单独测试它时,这很好用。但是,当我在以下规则中使用它时,
model
: '~model' CLASS_NAME model_block
;
但是,CLASS_NAME
也开始使用以数字开头的类名。在这种情况下,ANTLR 会选择Car
,8Car
甚至#Car
作为有效令牌。我错过了一些愚蠢的东西。任何指针将不胜感激。谢谢。