开发者

antlr parsing fails inside a generated syntactic predicate

I have a grammar with backtrack=true similar to the following:

 start:
     subrules+;


 subrules:
      ...
      | rule1
      ...


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

a valid sentence 1 12.09 \n on two lines passes but A valid sentence \n without a second line fails.

Stepping through the code while debugging, I can see it fails to match on the code section generated for (desc2=sentence NEW_LINE)?

If I comment out the corresponding lines in the generated code so it doesn't attempt to match (desc2=sentence NEW_LINE)? before g开发者_StackOverflowoing inside the rule, both sentences pass correctly. Is this expected behavior or is it likely something else in my grammar (which is currently quite complex) is causing it to behave incorrectly.

Thanks, Richard

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜