Class: ANTLR3::Debug::TreeNodeStream

Inherits:
Object
  • Object
show all
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

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#debug_listenerObject

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

#consumeObject



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

#markObject



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