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

David Ryan oobles at hotmail.com
Tue Aug 17 17:28:40 PDT 2004


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

<*> 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