Thanks John

Below is my class def..  Eclipse tells me the casts to Token below are 
required.  Running a grammar that executes these constructors tells me I can't 
cast to Token.

Here's a sample tree building expression where this class is used.

        ^(AS_TYPE_LIST<ASNode>[s.getType($ID.text)] ID)

the getType method just looks up a ASType object by name from a table.

import org.antlr.runtime.tree.*;

import antlr.*;

public class ASNode extends CommonTree {
        
        public ASType type = null;
        
        public ASNode() { }
        
        public ASNode(int ttype, ASType type) {
                token = (Token) new CommonToken(ttype,"");
                this.type = type;
        }
        
        public ASNode(int ttype) {
                token = (Token) new CommonToken(ttype,"");
        }
        
        @Override
        public String toString() {
                return (token!=null?token.getText():"")+"<ASNode>;"+type;
        }

        @Override
        public Tree dupNode() {
                ASNode n = new ASNode();
                n.token = token;
                n.type = type;
                return n;
        }
        
}

On Jul 19, 2010, at 15:15 , John B. Brodie wrote:

> On Mon, 2010-07-19 at 14:29 -0400, Bill Andersen wrote:
>> Hi folks
> 
> Greetings!
> 
>> 
>> Having some trouble making ASTs using a custom node type.  Before I ask any 
>> stupid questions, what is the best place to look on how to do this ( I'm 
>> using 3.2 )?  I'm finding bits and pieces, some of them contradictory.  For 
>> example I find this example
>> 
>> static class V extends CommonTree {
>>  public int x,y,z;
>>  public V(int ttype, int x, int y, int z) {
>>    this.x=x; this.y=y; this.z=z; token=new CommonToken(ttype,"");
>>  }
>> at http://www.antlr.org/wiki/display/ANTLR3/Tree+construction
>> 
>> When I try to define a constructor like this I'm forced to put a cast 
>> between on CommonToken to Token, which causes a runtime can't cast error.
>> 
>> What I want is really quite simple.  Need to add one extra field to my AST 
>> nodes to carry DSL type information.
>> 
>> Any help appreciated.  Thanks.
> 
> Unable to reproduce.
> 
> Attached please find a complete example derived from the grammar on the
> above wiki page that uses the class V. maybe I'm using a different
> example than yours?
> 
> Need more info....
>   -jbb
> 
> <T.g>

Bill Andersen 
Highfleet, Inc. (www.highfleet.com)
3600 O'Donnell Street, Suite 600
Baltimore, MD 21224
Office: +1.410.675.1201
Cell: +1.443.858.6444
Fax: +1.410.675.1204






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