【发布时间】:2011-12-12 20:37:52
【问题描述】:
我有以下由 Terrence Parr 作为示例给出的 ANTLR 语法。
grammar b;
backtrack
: (cast ';')=> cast ';'
| (e ';')=> e ';'
| e '.'
;
cast: '(' ID ')' ;
e : '(' e ')'
| ID
;
ID : 'a'..'z'+ ;
但是,当我尝试使用回溯规则解释 (a) 时,我得到了一个 MisMatchedToken 异常。我问这个问题是因为我有一个更大的语法用于编译器。我有确切的问题。如果我删除其中一个规则,一切正常(当然,除了通过删除的规则进行的输入解析),但是当我添加语法谓词时,我在解析时遇到错误,即使语法编译(与 b 完全一样语法)。
任何建议或想法为什么会这样?谢谢。
【问题讨论】:
标签: antlr