Class: RLTK::Parser::Environment

Inherits:
Object
  • Object
show all
Defined in:
lib/rltk/parser.rb

Overview

All actions passed to Parser.producation and Parser.clause are evaluated inside an instance of the Environment class or its subclass (which must have the same name).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeEnvironment

Instantiate a new Environment object.



1231
1232
1233
# File 'lib/rltk/parser.rb', line 1231

def initialize
  self.reset
end

Instance Attribute Details

#errorsArray<Object> (readonly)

A list of all objects added using the error method.



1228
1229
1230
# File 'lib/rltk/parser.rb', line 1228

def errors
  @errors
end

#heBoolean

Indicates if an error was encountered and handled.



1223
1224
1225
# File 'lib/rltk/parser.rb', line 1223

def he
  @he
end

Instance Method Details

#error(o) ⇒ void

This method returns an undefined value.

Adds an object to the list of errors.



1238
1239
1240
# File 'lib/rltk/parser.rb', line 1238

def error(o)
  @errors << o
end

#pos(n) ⇒ StreamPosition

Returns a StreamPosition object for the symbol at location n, indexed from zero.



1248
1249
1250
# File 'lib/rltk/parser.rb', line 1248

def pos(n)
  @positions[n]
end

#resetvoid

This method returns an undefined value.

Reset any variables that need to be re-initialized between parse calls.



1256
1257
1258
1259
# File 'lib/rltk/parser.rb', line 1256

def reset
  @errors  = Array.new
  @he    = false
end

#set_positions(positions) ⇒ Array<StreamPosition>

Setter for the positions array.



1266
1267
1268
# File 'lib/rltk/parser.rb', line 1266

def set_positions(positions)
  @positions = positions
end