antlr解析在生成的语法谓词中失败

时间:2011-07-18 17:57:22

标签: antlr antlr3

我的语法backtrack=true类似于以下内容:

 start:
     subrules+;


 subrules:
      ...
      | rule1
      ...


 rule1:
 ....
 | { Type1 }? 
   (sentence INT amount NEW_LINE (sentence NEW_LINE)? )
 .....

a valid sentence 1 12.09 \n on two lines次通过但A valid sentence \n没有第二行失败。

在调试时单步执行代码,我发现它在为(desc2=sentence NEW_LINE)?

生成的代码段上无法匹配

如果我在生成的代码中注释掉相应的行,那么在进入规则之前它不会尝试匹配(desc2=sentence NEW_LINE)?,这两个句子都会正确传递。这是预期的行为,还是我的语法中的其他内容(目前相当复杂)可能导致其行为不正确。

谢谢,理查德

0 个答案:

没有答案