1 /* 2 * [The "BSD licence"] 3 * Copyright (c) 2005-2008 Terence Parr 4 * All rights reserved. 5 * 6 * Conversion to C#: 7 * Copyright (c) 2008-2009 Sam Harwell, Pixel Mine, Inc. 8 * All rights reserved. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 3. The name of the author may not be used to endorse or promote products 19 * derived from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 22 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 23 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 24 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 namespace Antlr.Runtime.Debug 34 { 35 36 /** <summary> 37 * A simple event repeater (proxy) that delegates all functionality to the 38 * listener sent into the ctor. Useful if you want to listen in on a few 39 * debug events w/o interrupting the debugger. Just subclass the repeater 40 * and override the methods you want to listen in on. Remember to call 41 * the method in this class so the event will continue on to the original 42 * recipient. 43 * </summary> 44 * 45 * <seealso cref="DebugEventHub"/> 46 */ 47 public class DebugEventRepeater : IDebugEventListener 48 { 49 IDebugEventListener _listener; 50 DebugEventRepeater( IDebugEventListener listener )51 public DebugEventRepeater( IDebugEventListener listener ) 52 { 53 _listener = listener; 54 } 55 Initialize()56 public virtual void Initialize() 57 { 58 } 59 EnterRule( string grammarFileName, string ruleName )60 public virtual void EnterRule( string grammarFileName, string ruleName ) 61 { 62 _listener.EnterRule( grammarFileName, ruleName ); 63 } ExitRule( string grammarFileName, string ruleName )64 public virtual void ExitRule( string grammarFileName, string ruleName ) 65 { 66 _listener.ExitRule( grammarFileName, ruleName ); 67 } EnterAlt( int alt )68 public virtual void EnterAlt( int alt ) 69 { 70 _listener.EnterAlt( alt ); 71 } EnterSubRule( int decisionNumber )72 public virtual void EnterSubRule( int decisionNumber ) 73 { 74 _listener.EnterSubRule( decisionNumber ); 75 } ExitSubRule( int decisionNumber )76 public virtual void ExitSubRule( int decisionNumber ) 77 { 78 _listener.ExitSubRule( decisionNumber ); 79 } EnterDecision(int decisionNumber, bool couldBacktrack)80 public virtual void EnterDecision(int decisionNumber, bool couldBacktrack) 81 { 82 _listener.EnterDecision( decisionNumber, couldBacktrack ); 83 } ExitDecision( int decisionNumber )84 public virtual void ExitDecision( int decisionNumber ) 85 { 86 _listener.ExitDecision( decisionNumber ); 87 } Location( int line, int pos )88 public virtual void Location( int line, int pos ) 89 { 90 _listener.Location( line, pos ); 91 } ConsumeToken( IToken token )92 public virtual void ConsumeToken( IToken token ) 93 { 94 _listener.ConsumeToken( token ); 95 } ConsumeHiddenToken( IToken token )96 public virtual void ConsumeHiddenToken( IToken token ) 97 { 98 _listener.ConsumeHiddenToken( token ); 99 } LT( int i, IToken t )100 public virtual void LT( int i, IToken t ) 101 { 102 _listener.LT( i, t ); 103 } Mark( int i )104 public virtual void Mark( int i ) 105 { 106 _listener.Mark( i ); 107 } Rewind( int i )108 public virtual void Rewind( int i ) 109 { 110 _listener.Rewind( i ); 111 } Rewind()112 public virtual void Rewind() 113 { 114 _listener.Rewind(); 115 } BeginBacktrack( int level )116 public virtual void BeginBacktrack( int level ) 117 { 118 _listener.BeginBacktrack( level ); 119 } EndBacktrack( int level, bool successful )120 public virtual void EndBacktrack( int level, bool successful ) 121 { 122 _listener.EndBacktrack( level, successful ); 123 } RecognitionException( RecognitionException e )124 public virtual void RecognitionException( RecognitionException e ) 125 { 126 _listener.RecognitionException( e ); 127 } BeginResync()128 public virtual void BeginResync() 129 { 130 _listener.BeginResync(); 131 } EndResync()132 public virtual void EndResync() 133 { 134 _listener.EndResync(); 135 } SemanticPredicate( bool result, string predicate )136 public virtual void SemanticPredicate( bool result, string predicate ) 137 { 138 _listener.SemanticPredicate( result, predicate ); 139 } Commence()140 public virtual void Commence() 141 { 142 _listener.Commence(); 143 } Terminate()144 public virtual void Terminate() 145 { 146 _listener.Terminate(); 147 } 148 149 #region Tree parsing stuff 150 ConsumeNode( object t )151 public virtual void ConsumeNode( object t ) 152 { 153 _listener.ConsumeNode( t ); 154 } LT( int i, object t )155 public virtual void LT( int i, object t ) 156 { 157 _listener.LT( i, t ); 158 } 159 160 #endregion 161 162 163 #region AST Stuff 164 NilNode( object t )165 public virtual void NilNode( object t ) 166 { 167 _listener.NilNode( t ); 168 } ErrorNode( object t )169 public virtual void ErrorNode( object t ) 170 { 171 _listener.ErrorNode( t ); 172 } CreateNode( object t )173 public virtual void CreateNode( object t ) 174 { 175 _listener.CreateNode( t ); 176 } CreateNode( object node, IToken token )177 public virtual void CreateNode( object node, IToken token ) 178 { 179 _listener.CreateNode( node, token ); 180 } BecomeRoot( object newRoot, object oldRoot )181 public virtual void BecomeRoot( object newRoot, object oldRoot ) 182 { 183 _listener.BecomeRoot( newRoot, oldRoot ); 184 } AddChild( object root, object child )185 public virtual void AddChild( object root, object child ) 186 { 187 _listener.AddChild( root, child ); 188 } SetTokenBoundaries( object t, int tokenStartIndex, int tokenStopIndex )189 public virtual void SetTokenBoundaries( object t, int tokenStartIndex, int tokenStopIndex ) 190 { 191 _listener.SetTokenBoundaries( t, tokenStartIndex, tokenStopIndex ); 192 } 193 194 #endregion 195 } 196 } 197