[antlr-interest] Re: XPA astFactory.dupTree bug?

Oliver Zeigermann oliver at zeigermann.de
Tue Aug 17 23:43:05 PDT 2004


Hi David,

this looks reasonable. I will add it to XPA and it will be part of the 
next release. In anticipation of that, why not add this code to your 
local copy such that you can start to work with it now?

Oliver

David Ryan wrote:
> Oliver,
> 
> Thanks for the quick response agian.  Looking at the ASTFactory class
> in ANTLR, it has the following:  
> 
> protected AST create(Class c) {
>    AST t = null;
>    try {
>       t = (AST)c.newInstance(); // make a new one
>    }
>    catch (Exception e) {
>       error("Can't create AST Node " + c.getName());
>       return null;
>    }
>    return t;
> }
> 
> public AST dup(AST t) {
>    if ( t==null ) {
>       return null;
>    }
>    AST dup_t = create(t.getClass());
>    dup_t.initialize(t);
>    return dup_t;
> }
> 
> The dup method uses the AST class to create a new instance.  I think
> the XMLStartAST requires the following methods.  I haven't had a
> chance to try this yet, will give it a go today.
> 
> public XMLStartAST() {
>    super();
> }
> 
> public void initialize(AST ast) {
>    super.initialize(ast);
>    setAttributes(new AttributesImpl(((XMLStartAST)
> ast).getAttributes()));
> }
> 
> Regards,
> David.
> 
> Oliver Zeigermann wrote:
> 
>>Tell me what is missing in the XMLStartAST and I will add it. What
> 
> would 
> 
>>be the meaning of an empty contructor for XMLStartAST?
>>
>>Oliver
>>
>>David Ryan wrote:
>>
>>>I've started doing some rather nasty re-arranging of my XML data
>>>structures using antlr and XPA.  This has involved expanding the
> 
> tree
> 
>>>by copying parts of a tree, and then pasting them back into
> 
> multiple
> 
>>>parts of the tree.  One pass for collecting inputs, and second
> 
> pass
> 
>>>for paste.
>>>
>>>I've discovered that just re-inserting the same AST into multiple
>>>parts of the tree can end in infinite loops.  I'm now trying to
>>>duplicate the AST trees as I put them back into the tree.  The
>>>XMLStartAST does not have an empty constructor to support the
>>>astFactory.dupTree method.
>>>
>>>Is there another way to duplicate XMLStartAST trees?  Is this the
>>>right way to go about expanding a tree?
>>>
>>>Thanks,
>>>David.
>>>
>>>PS Wish I could make the antlr workshop.  Ashame the few thousand
> 
> km
> 
>>>makes it so difficult to get to. :)  Any Antlarians going to
> 
> oopsla? 
> 
>>>I'll probably make it there this year.
>>>
>>>
>>>
>>> 
>>>Yahoo! Groups Links
>>>
>>>
>>>
>>> 
>>>
>>>
> 
> 
> 
> 
>  
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 
> 
> 



 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/antlr-interest/

<*> To unsubscribe from this group, send an email to:
    antlr-interest-unsubscribe at yahoogroups.com

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



More information about the antlr-interest mailing list