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.*;
00031
00032 import java.io.IOException;
00033
00034 public class DebugParser extends Parser {
00036 protected DebugEventListener dbg = null;
00037
00041 public boolean isCyclicDecision = false;
00042
00046 public DebugParser(TokenStream input, DebugEventListener dbg, RecognizerSharedState state) {
00047 super(input instanceof DebugTokenStream?input:new DebugTokenStream(input,dbg), state);
00048 setDebugListener(dbg);
00049 }
00050
00051 public DebugParser(TokenStream input, RecognizerSharedState state) {
00052 super(input instanceof DebugTokenStream?input:new DebugTokenStream(input,null), state);
00053 }
00054
00055 public DebugParser(TokenStream input, DebugEventListener dbg) {
00056 this(input instanceof DebugTokenStream?input:new DebugTokenStream(input,dbg), dbg, null);
00057 }
00058
00062 public void setDebugListener(DebugEventListener dbg) {
00063 if ( input instanceof DebugTokenStream ) {
00064 ((DebugTokenStream)input).setDebugListener(dbg);
00065 }
00066 this.dbg = dbg;
00067 }
00068
00069 public DebugEventListener getDebugListener() {
00070 return dbg;
00071 }
00072
00073 public void reportError(IOException e) {
00074 System.err.println(e);
00075 e.printStackTrace(System.err);
00076 }
00077
00078 public void beginResync() {
00079 dbg.beginResync();
00080 }
00081
00082 public void endResync() {
00083 dbg.endResync();
00084 }
00085
00086 public void beginBacktrack(int level) {
00087 dbg.beginBacktrack(level);
00088 }
00089
00090 public void endBacktrack(int level, boolean successful) {
00091 dbg.endBacktrack(level,successful);
00092 }
00093
00094 public void reportError(RecognitionException e) {
00095 dbg.recognitionException(e);
00096 }
00097 }