为具有一个字符的标识符定义antlr规则

时间:2010-09-07 13:05:42

标签: antlr

我想定义一个非常简单的规则,它应该代表标识符。这适用于长度超过一个字符的标识符,但对于只有一个字符的标识符,我得到一个MismatchedTokenException(64!= 45)。这是规则:

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

这有什么问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

你是对的,规则本身就很好,但我发现ANTLR中的很多东西取决于规则的顺序。之前我有另一条规则,它已经与ID规则匹配。最后它是有道理的,因为Lexer无法决定采用哪条规则。

谢谢!