1 package org.antlr.works.debugger.tivo; 2 3 import org.antlr.runtime.RecognitionException; 4 import org.antlr.runtime.Token; 5 import org.antlr.runtime.debug.DebugEventListener; 6 import org.antlr.runtime.debug.RemoteDebugEventSocketListener; 7 import org.antlr.runtime.debug.RemoteDebugEventSocketListener.ProxyTree; 8 import org.antlr.works.debugger.events.DBEvent; 9 import org.antlr.works.debugger.events.DBEventFactory; 10 import org.antlr.works.debugger.tree.DBTreeToken; 11 41 42 public class DBRecorderEventListener implements DebugEventListener { 43 44 public DBRecorder recorder; 45 46 public DBRecorderEventListener(DBRecorder recorder) { 47 this.recorder = recorder; 48 } 49 50 public void event(DBEvent event) { 51 recorder.listenerEvent(event); 52 } 53 54 public void commence() { 55 event(DBEventFactory.createCommence()); 56 } 57 58 public void terminate() { 59 event(DBEventFactory.createTerminate()); 60 } 61 62 public void enterRule(String ruleName) { 63 event(DBEventFactory.createEnterRule(ruleName)); 64 } 65 66 public void exitRule(String ruleName) { 67 event(DBEventFactory.createExitRule(ruleName)); 68 } 69 70 public void enterSubRule(int decisionNumber) { 71 event(DBEventFactory.createEnterSubRule(decisionNumber)); 72 } 73 74 public void exitSubRule(int decisionNumber) { 75 event(DBEventFactory.createExitSubRule(decisionNumber)); 76 } 77 78 public void enterDecision(int decisionNumber) { 79 event(DBEventFactory.createEnterDecision(decisionNumber)); 80 } 81 82 public void exitDecision(int decisionNumber) { 83 event(DBEventFactory.createExitDecision(decisionNumber)); 84 } 85 86 public void enterAlt(int alt) { 87 event(DBEventFactory.createEnterAlt(alt)); 88 } 89 90 public void location(int line, int pos) { 91 event(DBEventFactory.createLocation(line, pos)); 92 } 93 94 public void consumeToken(Token token) { 95 event(DBEventFactory.createConsumeToken(token)); 96 } 97 98 public void consumeHiddenToken(Token token) { 99 event(DBEventFactory.createConsumeHiddenToken(token)); 100 } 101 102 public void LT(int i, Token token) { 103 event(DBEventFactory.createLT(i, token)); 104 } 105 106 public void mark(int i) { 107 event(DBEventFactory.createMark(i)); 108 } 109 110 public void rewind(int i) { 111 event(DBEventFactory.createRewind(i)); 112 } 113 114 public void rewind() { 115 event(DBEventFactory.createRewind()); 116 } 117 118 public void beginBacktrack(int level) { 119 event(DBEventFactory.createBeginBacktrack(level)); 120 } 121 122 public void endBacktrack(int level, boolean successful) { 123 event(DBEventFactory.createEndBacktrack(level, successful)); 124 } 125 126 public void recognitionException(RecognitionException e) { 127 event(DBEventFactory.createRecognitionException(e)); 128 } 129 130 public void beginResync() { 131 event(DBEventFactory.createBeginResync()); 132 } 133 134 public void endResync() { 135 event(DBEventFactory.createEndResync()); 136 } 137 138 public void semanticPredicate(boolean result, String predicate) { 139 140 } 141 142 143 144 public void nilNode(Object t) { 145 RemoteDebugEventSocketListener.ProxyTree p = (RemoteDebugEventSocketListener.ProxyTree)t; 146 event(DBEventFactory.createNilNode(p.ID)); 147 } 148 149 public void createNode(Object t) { 150 RemoteDebugEventSocketListener.ProxyTree p = (RemoteDebugEventSocketListener.ProxyTree)t; 151 event(DBEventFactory.createCreateNode(p.ID, p.text, p.type)); 152 } 153 154 public void createNode(Object node, Token token) { 155 RemoteDebugEventSocketListener.ProxyTree p = (RemoteDebugEventSocketListener.ProxyTree)node; 156 event(DBEventFactory.createCreateNode(p.ID, token.getTokenIndex())); 157 } 158 159 public void becomeRoot(Object newRoot, Object oldRoot) { 160 RemoteDebugEventSocketListener.ProxyTree n = (RemoteDebugEventSocketListener.ProxyTree)newRoot; 161 RemoteDebugEventSocketListener.ProxyTree o = (RemoteDebugEventSocketListener.ProxyTree)oldRoot; 162 event(DBEventFactory.createBecomeRoot(n.ID, o.ID)); 163 } 164 165 public void addChild(Object root, Object child) { 166 RemoteDebugEventSocketListener.ProxyTree r = (RemoteDebugEventSocketListener.ProxyTree)root; 167 RemoteDebugEventSocketListener.ProxyTree c = (RemoteDebugEventSocketListener.ProxyTree)child; 168 event(DBEventFactory.createAddChild(r.ID, c.ID)); 169 } 170 171 public void setTokenBoundaries(Object t, int tokenStartIndex, int tokenStopIndex) { 172 RemoteDebugEventSocketListener.ProxyTree p = (RemoteDebugEventSocketListener.ProxyTree)t; 173 event(DBEventFactory.createSetTokenBoundaries(p.ID, tokenStartIndex, tokenStopIndex)); 174 } 175 176 177 178 public void consumeNode(Object t) { 179 ProxyTree p = (ProxyTree)t; 180 183 event(DBEventFactory.createConsumeToken(new DBTreeToken(p))); 184 } 185 186 public void LT(int i, Object t) { 187 ProxyTree p = (ProxyTree)t; 188 189 event(DBEventFactory.createLT(i, new DBTreeToken(p))); 190 } 191 192 } 193 | Popular Tags |