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