I'm working with a tree parser that is creating ASTs of a custom type. This 
CommonTree subclass contains a member named elementType that identifies the 
type represented by the tree.  How do I set the elementType dynamically within 
an action?

I tried in the following way:

id:
  ^(AST_ID tok+=ID+)
  {
    $tree.setElementType( typeResolver.resolve(StringUtils.join($tok, ".")) );
  }
  ;

This, however, doesn't work since the tree has not yet been set:


                //...     
                ((ElementTypeTree)retval.tree).setElementType( 
typeResolver.resolve(StringUtils.join(list_tok, ".")) );
            }
            retval.tree = (ElementTypeTree)adaptor.rulePostProcessing(root_0);

In this context, I need semantic information in order to resolve the type, so I 
can't statically tell ANTLR to create a different tree type (as I do in other 
contexts).

Thanks for the suggestions.

--
Kaleb Pederson

Twitter - http://twitter.com/kalebpederson
Blog - http://kalebpederson.com

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to