00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 package org.antlr.runtime.debug;
00029
00030 import org.antlr.runtime.Token;
00031 import org.antlr.runtime.RecognitionException;
00032
00033 import java.util.List;
00034 import java.util.ArrayList;
00035
00042 public class DebugEventHub implements DebugEventListener {
00043 protected List listeners = new ArrayList();
00044
00045 public DebugEventHub(DebugEventListener listener) {
00046 listeners.add(listener);
00047 }
00048
00049 public DebugEventHub(DebugEventListener a, DebugEventListener b) {
00050 listeners.add(a);
00051 listeners.add(b);
00052 }
00053
00057 public void addListener(DebugEventListener listener) {
00058 listeners.add(listeners);
00059 }
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070 public void enterRule(String grammarFileName, String ruleName) {
00071 for (int i = 0; i < listeners.size(); i++) {
00072 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00073 listener.enterRule(grammarFileName,ruleName);
00074 }
00075 }
00076
00077 public void exitRule(String grammarFileName, String ruleName) {
00078 for (int i = 0; i < listeners.size(); i++) {
00079 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00080 listener.exitRule(grammarFileName, ruleName);
00081 }
00082 }
00083
00084 public void enterAlt(int alt) {
00085 for (int i = 0; i < listeners.size(); i++) {
00086 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00087 listener.enterAlt(alt);
00088 }
00089 }
00090
00091 public void enterSubRule(int decisionNumber) {
00092 for (int i = 0; i < listeners.size(); i++) {
00093 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00094 listener.enterSubRule(decisionNumber);
00095 }
00096 }
00097
00098 public void exitSubRule(int decisionNumber) {
00099 for (int i = 0; i < listeners.size(); i++) {
00100 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00101 listener.exitSubRule(decisionNumber);
00102 }
00103 }
00104
00105 public void enterDecision(int decisionNumber) {
00106 for (int i = 0; i < listeners.size(); i++) {
00107 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00108 listener.enterDecision(decisionNumber);
00109 }
00110 }
00111
00112 public void exitDecision(int decisionNumber) {
00113 for (int i = 0; i < listeners.size(); i++) {
00114 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00115 listener.exitDecision(decisionNumber);
00116 }
00117 }
00118
00119 public void location(int line, int pos) {
00120 for (int i = 0; i < listeners.size(); i++) {
00121 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00122 listener.location(line, pos);
00123 }
00124 }
00125
00126 public void consumeToken(Token token) {
00127 for (int i = 0; i < listeners.size(); i++) {
00128 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00129 listener.consumeToken(token);
00130 }
00131 }
00132
00133 public void consumeHiddenToken(Token token) {
00134 for (int i = 0; i < listeners.size(); i++) {
00135 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00136 listener.consumeHiddenToken(token);
00137 }
00138 }
00139
00140 public void LT(int index, Token t) {
00141 for (int i = 0; i < listeners.size(); i++) {
00142 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00143 listener.LT(index, t);
00144 }
00145 }
00146
00147 public void mark(int index) {
00148 for (int i = 0; i < listeners.size(); i++) {
00149 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00150 listener.mark(index);
00151 }
00152 }
00153
00154 public void rewind(int index) {
00155 for (int i = 0; i < listeners.size(); i++) {
00156 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00157 listener.rewind(index);
00158 }
00159 }
00160
00161 public void rewind() {
00162 for (int i = 0; i < listeners.size(); i++) {
00163 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00164 listener.rewind();
00165 }
00166 }
00167
00168 public void beginBacktrack(int level) {
00169 for (int i = 0; i < listeners.size(); i++) {
00170 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00171 listener.beginBacktrack(level);
00172 }
00173 }
00174
00175 public void endBacktrack(int level, boolean successful) {
00176 for (int i = 0; i < listeners.size(); i++) {
00177 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00178 listener.endBacktrack(level, successful);
00179 }
00180 }
00181
00182 public void recognitionException(RecognitionException e) {
00183 for (int i = 0; i < listeners.size(); i++) {
00184 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00185 listener.recognitionException(e);
00186 }
00187 }
00188
00189 public void beginResync() {
00190 for (int i = 0; i < listeners.size(); i++) {
00191 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00192 listener.beginResync();
00193 }
00194 }
00195
00196 public void endResync() {
00197 for (int i = 0; i < listeners.size(); i++) {
00198 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00199 listener.endResync();
00200 }
00201 }
00202
00203 public void semanticPredicate(boolean result, String predicate) {
00204 for (int i = 0; i < listeners.size(); i++) {
00205 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00206 listener.semanticPredicate(result, predicate);
00207 }
00208 }
00209
00210 public void commence() {
00211 for (int i = 0; i < listeners.size(); i++) {
00212 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00213 listener.commence();
00214 }
00215 }
00216
00217 public void terminate() {
00218 for (int i = 0; i < listeners.size(); i++) {
00219 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00220 listener.terminate();
00221 }
00222 }
00223
00224
00225
00226
00227 public void consumeNode(Object t) {
00228 for (int i = 0; i < listeners.size(); i++) {
00229 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00230 listener.consumeNode(t);
00231 }
00232 }
00233
00234 public void LT(int index, Object t) {
00235 for (int i = 0; i < listeners.size(); i++) {
00236 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00237 listener.LT(index, t);
00238 }
00239 }
00240
00241
00242
00243
00244 public void nilNode(Object t) {
00245 for (int i = 0; i < listeners.size(); i++) {
00246 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00247 listener.nilNode(t);
00248 }
00249 }
00250
00251 public void errorNode(Object t) {
00252 for (int i = 0; i < listeners.size(); i++) {
00253 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00254 listener.errorNode(t);
00255 }
00256 }
00257
00258 public void createNode(Object t) {
00259 for (int i = 0; i < listeners.size(); i++) {
00260 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00261 listener.createNode(t);
00262 }
00263 }
00264
00265 public void createNode(Object node, Token token) {
00266 for (int i = 0; i < listeners.size(); i++) {
00267 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00268 listener.createNode(node, token);
00269 }
00270 }
00271
00272 public void becomeRoot(Object newRoot, Object oldRoot) {
00273 for (int i = 0; i < listeners.size(); i++) {
00274 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00275 listener.becomeRoot(newRoot, oldRoot);
00276 }
00277 }
00278
00279 public void addChild(Object root, Object child) {
00280 for (int i = 0; i < listeners.size(); i++) {
00281 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00282 listener.addChild(root, child);
00283 }
00284 }
00285
00286 public void setTokenBoundaries(Object t, int tokenStartIndex, int tokenStopIndex) {
00287 for (int i = 0; i < listeners.size(); i++) {
00288 DebugEventListener listener = (DebugEventListener)listeners.get(i);
00289 listener.setTokenBoundaries(t, tokenStartIndex, tokenStopIndex);
00290 }
00291 }
00292 }