[antlr-interest] Bug or misunderstanding?: missing attribute access on rule scope
Kaleb Pederson
kaleb.pederson at gmail.com
Fri Oct 16 12:21:33 PDT 2009
I'm getting an error that doesn't make any sense, either because I've
missed something fundamental or I've stumbled across a bug. I'm doing
some type checking within a tree parser. I have a plusMinusExpression
which can either be a negation or a subtraction expression. In order
to to check to see which it is, I have `if ($rhs != null)` within my
action. That line, however, causes the following error:
SemanticChecker.g:163:3: missing attribute access on rule scope: rhs
The grammar fragment follows:
plusMinusExpression returns [Type type]
: ^(PLUS lhs=baseExpression rhs=baseExpression) { /*...*/ }
| ^(MINUS lhs=baseExpression rhs=baseExpression?)
{
typeChecker.assertIsNumericType($lhs.type);
if ($rhs != null)
{
typeChecker.assertIsNumericType($rhs.type);
typeChecker.assertEqualTypes($lhs.type, $rhs.type);
}
$type = $lhs.type;
}
;
Am I missing something fundamental or should this work? I tried
changing rhs to something unique throughout the application, but the
error persists. I see the exact same behavior on both ANTLR-3.1 and
3.2.
Thanks.
--
Kaleb Pederson
Twitter - http://twitter.com/kalebpederson
Blog - http://kalebpederson.com
More information about the antlr-interest
mailing list