1 package org.antlr.works.debugger.tree; 2 3 import org.antlr.runtime.Token; 4 import org.antlr.tool.Grammar; 5 import org.antlr.works.awtree.AWTreeNode; 6 7 import java.awt.*; 8 import java.util.Enumeration ; 9 39 40 public class DBTreeNode extends AWTreeNode { 41 42 protected Token token; 43 protected Grammar grammar; 44 45 protected int line; 46 protected int pos; 47 48 protected Color color = Color.black; 49 50 public DBTreeNode() { 51 52 } 53 54 public DBTreeNode(Token token, Grammar grammar) { 55 this.token = token; 56 this.grammar = grammar; 57 } 58 59 public void setPosition(int line, int pos) { 60 this.line = line; 61 this.pos = pos; 62 } 63 64 public int getLine() { 65 return line; 66 } 67 68 public int getPosition() { 69 return pos; 70 } 71 72 public void setColor(Color color) { 73 this.color = color; 74 } 75 76 public Color getColor() { 77 return color; 78 } 79 80 public Token getToken() { 81 return token; 82 } 83 84 public DBTreeNode findNodeWithToken(Token t) { 85 return findNodeWithToken(t, null); 86 } 87 88 93 94 public DBTreeNode findNodeWithToken(Token t, DBTreeNode lastNodeSoFar) { 95 if(t == null) 96 return lastNodeSoFar; 97 98 if(token != null) { 99 103 if(token instanceof DBTreeToken && t instanceof DBTreeToken) { 104 DBTreeToken t1 = (DBTreeToken)token; 105 DBTreeToken t2 = (DBTreeToken)t; 106 if(t1.ID == t2.ID) 107 lastNodeSoFar = this; 108 } else if(t.getTokenIndex() == token.getTokenIndex() && 109 t.getType() == token.getType()) 110 { 111 lastNodeSoFar = this; 113 } 114 } 115 116 for(Enumeration childrenEnumerator = children(); childrenEnumerator.hasMoreElements(); ) { 117 DBTreeNode node = (DBTreeNode) childrenEnumerator.nextElement(); 118 DBTreeNode candidate = node.findNodeWithToken(t, lastNodeSoFar); 119 if(candidate != null) 120 lastNodeSoFar = candidate; 121 } 122 123 return lastNodeSoFar; 124 } 125 126 public String toString() { 127 if(token != null) 128 return token.getText(); else 130 return "?"; 131 } 132 133 public String getInfoString() { 134 return toString(); 135 } 136 137 } 138 | Popular Tags |