Defining antlr rule for identifiers with one character

荒凉一梦 提交于 2019-12-25 19:49:05

问题


i like to define a very simple rule, which should represent identifiers. This works quite well for identifiers which are longer than one characters, but for identifiers with exactly one character I get a MismatchedTokenException(64!=45). This is the rule:

ID : ('a'..'z' | 'A'..'Z')+ ;

What is wrong with that?

Thanks!


回答1:


You're absolutely right, the rule on its own is fine, but I figured out that a lot in ANTLR depends on the order of rules. I had another rule before, which did already match the ID rule. Finally it makes sense, because the Lexer cannot decide which rule to take.

Thanks!



来源:https://stackoverflow.com/questions/3658906/defining-antlr-rule-for-identifiers-with-one-character

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!