> -----Original Message-----
> From: [email protected] [mailto:antlr-interest-
> [email protected]] On Behalf Of Kaleb Pederson
> Sent: Monday, October 26, 2009 3:55 PM
> To: [email protected]
> Subject: [antlr-interest] How to access member of CommonTree subclass
> 
> 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:

I presume that this is a tree walker that is producing another AST as output?

Anyway, why not return the value of typeResolver from the id rule, then set the 
resulting tree value?

id : resolveID { $resovleID.tree.setElementType($resolveID.type); } ;

resolveId
returns [ xxx type]
: ^AST_ID tok+=ID+) { $type = typeResolver.resolve(StringUtils.join($tok,".")) 
);
;

Jim





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