[antlr-interest] Duplicating Tree Nodes (in rewrite grammar)
Terence Parr
parrt at cs.usfca.edu
Fri May 30 15:11:33 PDT 2008
ANTLRWill automatically build duplicates as necessary. Is this what
you want?
d : type ID (',' ID)* -> ^(DECL type ID)+ ;
ANTLR should make n copies of DECL and n-1 copies of type's tree.
Ter
On May 30, 2008, at 3:08 PM, Robin Hamilton-Pennell wrote:
> Hi all,
>
> Been stumbling against a problem lately which I'd like to get some
> feedback on.
>
> I need to duplicate a tree node at a certain point in my AST rewrite
> grammar, including all of its children (recursively). If I knew the
> number of copies necessary in advance, I imagine I could do something
> like this:
>
> foo:
> ^(BAR baz) -> ^(BAR baz) ^(BAR baz) ^(BAR baz)
> ;
>
> However, the number of copies necessary is not knowable until runtime.
>
> I tried simply using CommonTree.dupNode(), but it doesn't copy the
> children (after reading through the source I know this is correct
> behavior).
>
> So I guess my question is this: How can I make an arbitrary number of
> copies of a tree node and all sub-trees? I don't actually care about
> making changes to the tree yet, I just want a verbatim copy.
>
> Any advice would be appreciated.
>
> Thanks in advance,
> Robin
More information about the antlr-interest
mailing list