Class: ANTLR3::Debug::TreeNodeStream
- Inherits:
-
Object
- Object
- ANTLR3::Debug::TreeNodeStream
- Defined in:
- lib/antlr3/tree/debug.rb
Overview
A module that wraps token stream methods with debugging event code. A debuggable parser will extend its input stream with this module if the stream is not already a Debug::TreeNodeStream.
Instance Attribute Summary collapse
-
#debug_listener ⇒ Object
Returns the value of attribute debug_listener.
Class Method Summary collapse
Instance Method Summary collapse
- #consume ⇒ Object
- #look(i = 1) ⇒ Object
- #mark ⇒ Object
- #peek(i = 1) ⇒ Object
- #rewind(marker = nil) ⇒ Object
Instance Attribute Details
#debug_listener ⇒ Object
Returns the value of attribute debug_listener.
117 118 119 |
# File 'lib/antlr3/tree/debug.rb', line 117 def debug_listener @debug_listener end |
Class Method Details
.wrap(stream, debug_listener = nil) ⇒ Object
113 114 115 116 |
# File 'lib/antlr3/tree/debug.rb', line 113 def self.wrap( stream, debug_listener = nil ) stream.extend( self ) stream.debug_listener ||= debug_listener end |
Instance Method Details
#consume ⇒ Object
119 120 121 122 123 |
# File 'lib/antlr3/tree/debug.rb', line 119 def consume node = @input >> 1 super @debug_listener.consume_node( node ) end |
#look(i = 1) ⇒ Object
125 126 127 128 129 130 131 132 |
# File 'lib/antlr3/tree/debug.rb', line 125 def look( i = 1 ) node = super id = @adaptor.unique_id( node ) text = @adaptor.text_of( node ) type = @adaptor.type_of( node ) @debug_listener.look( i, node ) return( node ) end |
#mark ⇒ Object
143 144 145 146 147 |
# File 'lib/antlr3/tree/debug.rb', line 143 def mark @last_marker = super @debug_listener.mark( @last_marker ) return( @last_marker ) end |
#peek(i = 1) ⇒ Object
134 135 136 137 138 139 140 141 |
# File 'lib/antlr3/tree/debug.rb', line 134 def peek( i = 1 ) node = self >> 1 id = @adaptor.unique_id( node ) text = @adaptor.text_of( node ) type = @adaptor.type_of( node ) @debug_listener.look( i, node ) return( type ) end |
#rewind(marker = nil) ⇒ Object
149 150 151 152 |
# File 'lib/antlr3/tree/debug.rb', line 149 def rewind( marker = nil ) @debug_listener.rewind( marker ) super( marker || @last_marker ) end |