[antlr-interest] ParseTreeBuilder broken in decisions (with fix)
Martin Probst
mail at martin-probst.com
Sun May 18 12:09:41 PDT 2008
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