[antlr-interest] About tree duplication ?

Bryan Ewbank ewbank at gmail.com
Thu Nov 17 12:35:45 PST 2005


> > Another way that is closer, perhaps, to what you are wanting,
> > is to write a production that duplicates a node (works only
> > with buildAST=true).
>
>  mmmmh, would you mind to give me an example ? I have some
>  difficulties to draw something wich approach your suggestion...

A production like this will generate an exactly duplicate of a
tree....

	// duplicate tree rooted at current node
	duptree: #( . ( duptree )* );

Or perhaps this, to reduce push/pop on the call stack by following
sibling chains in one function:

	// duplicate tree rooted at current node
	duptree: #( . duplist );
	duplist: ( #( . duplist ) )*;

When I am building a transformation pass, I usually start here,
and then start extending it for exceptions (e.g., "copy it everywhere,
except when ...").


More information about the antlr-interest mailing list