source: trunk/yao/share/antlr-2.7.7/lib/csharp/antlr.runtime/antlr.debug/DebuggingInputBuffer.cs @ 1

Last change on this file since 1 was 1, checked in by lnalod, 15 years ago

Initial import of YAO sources

File size: 1.7 KB
Line 
1namespace antlr.debug
2{
3        using System;
4        using ArrayList = System.Collections.ArrayList;
5       
6        public class DebuggingInputBuffer : InputBuffer
7        {
8                public virtual ArrayList InputBufferListeners
9                {
10                        get { return inputBufferEventSupport.InputBufferListeners; }
11                }
12                public virtual bool DebugMode
13                {
14                        set     { debugMode = value;    }
15                }
16
17                private InputBuffer buffer;
18                private InputBufferEventSupport inputBufferEventSupport;
19                private bool debugMode = true;
20               
21               
22                public DebuggingInputBuffer(InputBuffer buffer)
23                {
24                        this.buffer = buffer;
25                        inputBufferEventSupport = new InputBufferEventSupport(this);
26                }
27                public virtual void  addInputBufferListener(InputBufferListener l)
28                {
29                        inputBufferEventSupport.addInputBufferListener(l);
30                }
31                public override char  consume()
32                {
33                        char la = ' ';
34                        try
35                        {
36                                la = buffer.LA(1);
37                        }
38                        catch (CharStreamException)
39                        {
40                        } // vaporize it...
41                        buffer.consume();
42                        if (debugMode)
43                                inputBufferEventSupport.fireConsume(la);
44                        return la;
45                }
46                public override void  fill(int a)
47                {
48                        buffer.fill(a);
49                }
50                public virtual bool isDebugMode()
51                {
52                        return debugMode;
53                }
54                public override bool isMarked()
55                {
56                        return buffer.isMarked();
57                }
58                public override char LA(int i)
59                {
60                        char la = buffer.LA(i);
61                        if (debugMode)
62                                inputBufferEventSupport.fireLA(la, i);
63                        return la;
64                }
65                public override int mark()
66                {
67                        int m = buffer.mark();
68                        inputBufferEventSupport.fireMark(m);
69                        return m;
70                }
71                public virtual void  removeInputBufferListener(InputBufferListener l)
72                {
73                        if (inputBufferEventSupport != null)
74                                inputBufferEventSupport.removeInputBufferListener(l);
75                }
76                public override void  rewind(int mark)
77                {
78                        buffer.rewind(mark);
79                        inputBufferEventSupport.fireRewind(mark);
80                }
81        }
82}
Note: See TracBrowser for help on using the repository browser.