[antlr-interest] Some bugs (or features?) in Honey Badger
Jan Finis
finis at in.tum.de
Sun Feb 19 07:52:10 PST 2012
Hi folks, hi Ter,
I discovered the following things while using Honey Badger. They seem
like bugs to me but maybe they are features or I got something wrong:
1. Alternative precedence:
Consider the following left recursive rule for expressions:
expr
: ID '=' expr;
| ID
| expr '+' expr;
ID : 'a' ;
the precedence should be from top to bottom, right? So, the input a=a+a
should be parsed as (a=a)+a, since the assignment rule is on the top.
However, this is not the case, instead, it is parsed as a=(a+a). Bug, or
am I interpreting something wrong?
2. Name binding
Consider this example:
expr returns [int r]
: '-' expr { $r = - $expr.r; }
In this example $expr should bind to the sub-expression in my opinion.
However, it does not. Since the rule is also named expr, $expr refers to
the rule context instead of the context of the sub-expression. I think
most of the time this is not what the user wants.
Regards,
Jan
More information about the antlr-interest
mailing list