[antlr-interest] TreeWalker and AST Transformation

Loring Craymer lgcraymer at yahoo.com
Fri Nov 10 22:23:51 PST 2006


Jens--

That should not happen; take a look at the generated
code for pr_StepletBody and see if it makes sense.

--Loring

--- Jens Bräuer <mailists at gmx.net> wrote:

> Dear Loring, Dear Antlr-Intrest
> 
> thanks a lot for your answer. Seems as i made a
> mistake when writing the
> mail.
> In contrast to what i wrote, the problem is, that
> before transformation
> a _StepletBody_ has multiple StreamStatements as
> children. Only the
> first child (aka StreamStatement) survives a walk
> with the TreeWalker.
> Antlr version is 2.7.7.
> 
> >> pr_StepletBody
> >> 	:
> >> 	#(StepletBody (pr_StreamStatement)*)
> >> 	;
> >>
> >> pr_StreamStatement
> >> 	{ StringBuffer s;}
> >> 	:
> >> 	#(StreamStatement
> >> 		(
> >> 			pr_SimpleStreamStatement
> >> 			| pr_MultiStreamStatement
> >> 			| pr_TimeStreamStatement
> >> 			| pr_StreamStatmntWithDefault
> >> 			| pr_StepletInvokation
> >>
> >> 		)
> >> 	)
> >> 	;
> 
> Any hints ?
> 
> Greetings, Jens
> 
> 
> Loring Craymer wrote:
> > Jens--
> > 
> > The problem is that you are only looking for a
> single
> > child; change the child subgroup to a closure
> > 
> > pr_StreamStatement
> >  	{ StringBuffer s;}
> >  	:
> >  	#(StreamStatement
> >  		(
> >  			pr_SimpleStreamStatement
> >  			| pr_MultiStreamStatement
> >  			| pr_TimeStreamStatement
> >  			| pr_StreamStatmntWithDefault
> >  			| pr_StepletInvokation
> >  
> >  		)+   // CHANGED from ) to )+
> >  	)
> >  	;
> > 
> > and everything should work.
> > 
> > --Loring
> > 
> > 
> > --- Jens Braeuer <mailists at gmx.net> wrote:
> > 
> >> Dear TreeTransformation-Experts,
> >>
> >> i've got a problem transforming an AST using a
> >> TreeWalker, which i was
> >> unable to solve using google, antlr-doc and the
> >> mailinglist archive. :-)
> >>
> >> I currently work on a small code generation
> project,
> >> which involves
> >> TreeWalkers to modify a AST (so buildAST is
> true).
> >>
> >> The problem is, that _before_ using the
> TreeParser a
> >> StreamStatement has
> >> _multiple_ children whereas after using the
> >> TreeParser only the first
> >> child survives. I used included ASTFrame to look
> at
> >> the results.
> >>
> >> Any hints on how i have to modify the grammar so
> all
> >> children are included
> >> in the output-tree ?
> >>
> >>
> >> TreeWalker grammar snipet:
> >> -----
> >> pr_StepletBody
> >> 	:
> >> 	#(StepletBody (pr_StreamStatement)*)
> >> 	;
> >>
> >> pr_StreamStatement
> >> 	{ StringBuffer s;}
> >> 	:
> >> 	#(StreamStatement
> >> 		(
> >> 			pr_SimpleStreamStatement
> >> 			| pr_MultiStreamStatement
> >> 			| pr_TimeStreamStatement
> >> 			| pr_StreamStatmntWithDefault
> >> 			| pr_StepletInvokation
> >>
> >> 		)
> >> 	)
> >> 	;
> >> ---------
> >>
> >>
> >> Greetings, Jens Braeuer
> >>
> >>
> >>
> >>
> >>
> > 
> > 
> > 
> > 
> >  
> >
>
____________________________________________________________________________________
> > Yahoo! Music Unlimited
> > Access over 1 million songs.
> > http://music.yahoo.com/unlimited
> > 
> 
> 
> -- 
> Mit Unix zu arbeiten, ist wie mit einem wuerdigen
> Gegner zu ringen. Mit
> Windows zu arbeiten, ist wie ein kleines heulendes
> Kind anzugreifen,
> dass eine geladene .38er in der Hand hat.
> 
> 
> 



 
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com


More information about the antlr-interest mailing list