Class: Aurum::Engine::SemanticActionExecutable::SemanticContext

Inherits:
Object
  • Object
show all
Defined in:
lib/aurum/engine/parsing_facility.rb

Instance Method Summary collapse

Constructor Details

#initialize(lexer, context, mappings) ⇒ SemanticContext

Returns a new instance of SemanticContext.



80
81
82
# File 'lib/aurum/engine/parsing_facility.rb', line 80

def initialize lexer, context, mappings
  @lexer, @context, @mappings = lexer, context, mappings
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/aurum/engine/parsing_facility.rb', line 84

def method_missing name
  name_string = name.to_s          
  index = name_string =~ /\d+/ ? name_string.slice!(/\d+/).to_i : 0
  name_string = @mappings[name_string] if @mappings.has_key?(name_string)
  return @context[name_string][-index] if @context[name_string][-index]
  Attributes.new
end