[antlr-interest] Re: manual AST construction: what am I doing wrong?

Jorge Scandaliaris j_scandaliaris at yahoo.es
Thu Jun 19 06:56:20 PDT 2003


Forgot to mention that is C++ code generation, in case the answer is
dependent on that :)

Jorge

> -----Original Message-----
> From: Jorge Scandaliaris [mailto:j_scandaliaris at yahoo.es]
> Sent: Thursday, June 19, 2003 3:53 PM
> To: antlr-interest at yahoogroups.com
> Subject: RE: [antlr-interest] Re: manual AST construction: what am I
doing
> wrong?
> 
> 
> > -----Original Message-----
> > From: antlrlist [mailto:antlrlist at yahoo.com]
> 
> > I just want to confirm that heterogenous ASTs work very well in java
> > mode (even if there are some tricks to know, like only modifying ##
> > at the ending action of each rule :| ).
> 
> Enrique (or somebody that can reply), can you develop the point you
> mentioned here, i.e. ...ONLY MODIFYING ## AT THE ENDING ACTION OF EACH
> RULE?
> 
> I was already with my grammar half-way done, when I noticed I wasn`t
> respecting the trick you mention. Because everything worked I didn't
> touched it :), but today I came across one rule where this was causing
> trouble. I want to identify why it is a problem and in what
conditions,
> 'cause respecting your "trick" would make me re visit all the grammar,
> and doing nothing can explode things up.
> One clue I have, is that it might be because the problematic rule is
> recursive:
>  expression!:
> 	:	{## = ##(##,#[IMAG_NODE]);// only way I managed to
> create 			// manually only one node for a rule.
This node
> collects the 		// info from sub rule NODES
> 		primary
> 	{	## actions here}
> 	(	operator primary
> 	{	##actions here}
> 	)*
> 	{	## actions here}
> 	;
> 
> primary
> 	: some stuff | expression
> 	;
> 
> When I can I put ## actions at the end, but in cases where I have
> (...)*, this forces me to create temporary objects to collect the info
> from the loop, and then I have to pass it to ##. Using ## directly
saves
> me from this, and as I said above, it works OK in many rules.
> 
> Cheers,
> 
> Jorge
> 
> 
> 
> 
> 
> Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/




 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 




More information about the antlr-interest mailing list