-------------------------------------------------- Main.java -------------------------------------------------- 8c8 < // parser.setASTNodeType("MyAST"); --- > parser.setASTNodeType("MyKludgeASTNode"); 14c14 < w.setASTNodeType("MyAST"); --- > w.setASTNodeType("MyKludgeASTNode"); 20c20 < e.setASTNodeType("MyAST"); --- > e.setASTNodeType("MyKludgeASTNode"); -------------------------------------------------- MyAST.java -------------------------------------------------- 1,3c1 < import antlr.CommonAST; < < public class MyAST extends CommonAST { --- > public class MyAST extends MyASTNode { 17a16,21 > public MyASTNode dup() { > MyAST m = new MyAST(); > m.initialize( this.getToken() ); > m.setExprType( this.ExprType ); > return m; > } -------------------------------------------------- walker.g -------------------------------------------------- 31c31 < | #(op:PLUS left:expr right:expr) --- > |! #(op:PLUS left:expr right:expr) 33,36c33,38 < MyAST _expr = (MyAST)#expr, < _left = (MyAST)#left, < _right = (MyAST)#right; < _expr.setExprType(10 + _left.getExprType() + _right.getExprType()); --- > MyAST t= new MyAST(); > t.initialize(MyASTNode.fromAST(#op).getToken()); > MyAST _left = (MyAST)MyASTNode.fromAST(#left), > _right = (MyAST)MyASTNode.fromAST(#right); > t.setExprType(10 + _left.getExprType() + _right.getExprType()); > #expr = #(MyASTNode.toAST(t), #left, #right); 39c41 < | #(t_op:TIMES t_left:expr t_right:expr) --- > |! #(t_op:TIMES t_left:expr t_right:expr) 41,44c43,48 < MyAST _expr = (MyAST)#expr, < _left = (MyAST)#t_left, < _right = (MyAST)#t_right; < _expr.setExprType(20 + _left.getExprType() +_right.getExprType()); --- > MyAST t= new MyAST(); > t.initialize(MyASTNode.fromAST(#t_op).getToken()); > MyAST _left = (MyAST)MyASTNode.fromAST(#t_left), > _right = (MyAST)MyASTNode.fromAST(#t_right); > t.setExprType(20 + _left.getExprType() +_right.getExprType()); > #expr = #(MyASTNode.toAST(t), #t_left, #t_right); 53c57 < t.initialize(#i); --- > t.initialize(MyASTNode.fromAST(#i).getToken()); 55c59 < #id = t; --- > #id = MyASTNode.toAST(t); 62c66 < t.initialize(#n); --- > t.initialize(MyASTNode.fromAST(#n).getToken()); 64c68 < #constant = t; --- > #constant = MyASTNode.toAST(t);