[antlr-interest] LastElement treatment...
Niclas Hedhman
niclas at hedhman.org
Fri Oct 10 02:37:41 PDT 2008
Gang,
I am totally newbie to ANTLR and forgive me if this is a FAQ (I have
been search a lot for an answer).
In principle, I want to do;
Syntax being
a.b.c.d -> e.f.g.h
translated to
e.getF().getG.setH( a.getB().getC().getD() );
I have no problems with any of it, except the "setH()" part. In my AST, I have
^(MEMBER_DECLARATION member_reference
{
// removed for clarity
}
)
member_reference returns [StringTemplate member]
: member
{
// a lot of stuff
};
but if I change the AST rule to
member_reference returns [StringTemplate member]
: (member
{
// a lot of stuff
})*;
member_reference returns [StringTemplate member]
: (member
{
// a lot of stuff
})*
member
{
// special last element handling
}
;
I get an error;
" member is a non-unique reference"
How is one supposed to make such distinction??
Cheers
Niclas
More information about the antlr-interest
mailing list