我的语法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)?
,这两个句子都会正确传递。这是预期的行为,还是我的语法中的其他内容(目前相当复杂)可能导致其行为不正确。
谢谢,理查德