[antlr-interest] Newbie Question

Behdad Forghani behdad.forghani at samsarasol.com
Mon Mar 16 19:05:39 PDT 2009


Thanks for the help. You are correct, builtinType has more than one
node. I wanted the constraint to be the child of builtinType. I found
that rewriting the rule in this way works:

type :
	builtinType ^ constraint |
	builtinType;

It seems to me the problem was when constraint was empty.

Thanks again.

On Mon, 2009-03-16 at 16:43 -0700, Jim Idle wrote:
> Behdad Forghani wrote:
> > Hello,
> >
> > I am trying to built AST from a rule with an optional part.
> > The rule is:
> >
> > type :
> > 	builtinType  constraint?;
> >
> >
> > I want the constraint node to be the child of builtinType. So, I add:
> >
> > type :
> >    builtinType  constraint?->^(builtinType constraint?);
> >   
> That should be fine, unless the constraint has more than one node 
> itself, which I am guessing is your issue. You probably really want an 
> imaginary token here:
> 
> tokens {
> BUILTINTYPE;
> }
> 
> type :
>    builtinType  constraint?->^(BUILTINTYPE builtinType constraint?);
> 
> ;
> 
> Jim
> 
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address



More information about the antlr-interest mailing list