[antlr-interest] ParseTreeBuilder broken in decisions (with fix)
Terence Parr
parrt at cs.usfca.edu
Tue May 20 09:59:09 PDT 2008
thanks,Martin, adding bug
http://www.antlr.org:8888/browse/ANTLR-267
Ter
On May 18, 2008, at 12:09 PM, Martin Probst wrote:
> Hi all,
>
> the ParseTreeBuilder included in ANTLR 3 does not respect decision
> contexts - if the parser enters decision mode during parsing
> multiple times, this breaks the parse tree construction.
>
> The fix is to keep track of the decision nesting depth (methods from
> my extension of the base class):
>
> @Override
> public void consumeToken(Token token) {
> if (inDecision == 0) super.consumeToken(token);
> }
>
> private int inDecision = 0;
>
> @Override
> public void enterDecision(int decisionNumber) {
> super.enterDecision(decisionNumber);
> inDecision++;
> }
>
> @Override
> public void exitDecision(int decisionNumber) {
> super.exitDecision(decisionNumber);
> inDecision--;
> }
>
> Best regards,
> Martin
More information about the antlr-interest
mailing list