标签: antlr
我想定义一个非常简单的规则,它应该代表标识符。这适用于长度超过一个字符的标识符,但对于只有一个字符的标识符,我得到一个MismatchedTokenException(64!= 45)。这是规则:
ID:('a'..'z'|'A'..'Z')+ ;
这有什么问题?
谢谢!
答案 0 :(得分:2)
你是对的,规则本身就很好,但我发现ANTLR中的很多东西取决于规则的顺序。之前我有另一条规则,它已经与ID规则匹配。最后它是有道理的,因为Lexer无法决定采用哪条规则。