1 2 23 24 25 package VTransformer; 26 27 public class SimpleNode implements Node { 28 protected Node parent; 29 protected Node[] children; 30 protected int id; 31 protected JavaParser parser; 32 33 protected Token first, last; 34 35 public SimpleNode(int i) { 36 id = i; 37 } 38 39 public SimpleNode(JavaParser p, int i) { 40 this(i); 41 parser = p; 42 } 43 44 public static Node jjtCreate(JavaParser p, int id) { 45 return new SimpleNode(p, id); 46 } 47 48 public void jjtOpen() { 49 first = parser.getToken(1); } 51 52 public void jjtClose() { 53 last = parser.getToken(0); } 55 56 public Token getFirstToken() { return first; } public Token getLastToken() { return last; } 59 public void jjtSetParent(Node n) { parent = n; } 60 public Node jjtGetParent() { return parent; } 61 62 public void jjtAddChild(Node n, int i) { 63 if (children == null) { 64 children = new Node[i + 1]; 65 } else if (i >= children.length) { 66 Node c[] = new Node[i + 1]; 67 System.arraycopy(children, 0, c, 0, children.length); 68 children = c; 69 } 70 children[i] = n; 71 } 72 73 public Node jjtGetChild(int i) { 74 return children[i]; 75 } 76 77 public int jjtGetNumChildren() { 78 return (children == null) ? 0 : children.length; 79 } 80 81 82 public Object jjtAccept(JavaParserVisitor visitor, Object data) { 83 return visitor.visit(this, data); 84 } 85 86 87 public Object acceptChildren(JavaParserVisitor visitor, Object data) { 88 if (children != null) { 89 for (int i = 0; i < children.length; ++i) { 90 children[i].jjtAccept(visitor, data); 91 } 92 } 93 return data; 94 } 95 96 101 102 public String toString() { return JavaParserTreeConstants.jjtNodeName[id]; } 103 public String toString(String prefix) { return prefix + toString(); } 104 105 107 108 public void dump(String prefix) { 109 System.out.println(toString(prefix)); 110 if (children != null) { 111 for (int i = 0; i < children.length; ++i) { 112 SimpleNode n = (SimpleNode)children[i]; 113 if (n != null) { 114 n.dump(prefix + " "); 115 } 116 } 117 } 118 } 119 } 120 | Popular Tags |