1 2 3 package org.codehaus.aspectwerkz.expression.ast; 4 5 public class SimpleNode implements Node { 6 protected Node parent; 7 8 protected Node[] children; 9 10 protected int id; 11 12 protected ExpressionParser parser; 13 14 public SimpleNode(int i) { 15 id = i; 16 } 17 18 public SimpleNode(ExpressionParser p, int i) { 19 this(i); 20 parser = p; 21 } 22 23 public void jjtOpen() { 24 } 25 26 public void jjtClose() { 27 } 28 29 public void jjtSetParent(Node n) { 30 parent = n; 31 } 32 33 public Node jjtGetParent() { 34 return parent; 35 } 36 37 public void jjtAddChild(Node n, int i) { 38 if (children == null) { 39 children = new Node[i + 1]; 40 } else if (i >= children.length) { 41 Node c[] = new Node[i + 1]; 42 System.arraycopy(children, 0, c, 0, children.length); 43 children = c; 44 } 45 children[i] = n; 46 } 47 48 public Node jjtGetChild(int i) { 49 return children[i]; 50 } 51 52 public int jjtGetNumChildren() { 53 return (children == null) ? 0 : children.length; 54 } 55 56 59 public Object jjtAccept(ExpressionParserVisitor visitor, Object data) { 60 return visitor.visit(this, data); 61 } 62 63 66 public Object childrenAccept(ExpressionParserVisitor visitor, Object data) { 67 if (children != null) { 68 for (int i = 0; i < children.length; ++i) { 69 children[i].jjtAccept(visitor, data); 70 } 71 } 72 return data; 73 } 74 75 80 81 public String toString() { 82 return ExpressionParserTreeConstants.jjtNodeName[id]; 83 } 84 85 public String toString(String prefix) { 86 return prefix + toString(); 87 } 88 89 92 93 public void dump(String prefix) { 94 System.out.println(toString(prefix)); 95 if (children != null) { 96 for (int i = 0; i < children.length; ++i) { 97 SimpleNode n = (SimpleNode) children[i]; 98 if (n != null) { 99 n.dump(prefix + " "); 100 } 101 } 102 } 103 } 104 } 105 106 | Popular Tags |