我有以下
rule : A B;
A : 'a_e' | 'a';
B : '_b';
输入:
a_b //dont work
a_e_b //works
为什么词法分析器无法匹配这个?当 ANTLR 匹配 'a_b' 中的 'a_' 时,它不应该回溯或使用前瞻或其他东西来查看它不能匹配令牌 A,然后决定将令牌 A 匹配为 'a',然后继续将令牌 B 匹配为 '_b'?
我想我误解了一些关于 antlr 如何工作的非常基本的东西。我试图在 ANTLR 文档和谷歌中阅读它。但我很少有使用词法分析器和解析器的经验。
非常感谢您的帮助。