【发布时间】:2012-12-12 00:20:50
【问题描述】:
身份识别:
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
;
当我解析我的规则时,只有 char 'a' 无法识别,但 'A' 或 'aa' 或 'a0' 或 'b' 或 'c' 或 'AAAZzzzxx' 或 .... 其他一切在宇宙中,除了“a”之外,词法分析器为什么不能识别“a”?
错误:
mismatched input 'a' expecting 'u0005'
谢谢!
【问题讨论】:
-
您的解析器语法是否在任何地方明确引用
'a'?如果是这样,ANTLR 会在ID有机会看到它之前悄悄地生成一个与'a'匹配的新词法分析器规则。如果您可以将语法的那部分添加到问题中(假设它存在,这只是一个猜测),那么有人可以帮助您解决问题。 -
A:'a';我找到了这个混蛋......谢谢,它很简单但很棘手:)
标签: antlr antlr3 antlrworks antlrv3ide