Class: Rley::Parser::ParseForestFactory

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

Overview

Utility class that helps to create a ParseForest from a given Parsing object.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(aParsingResult) ⇒ ParseForestFactory

Returns a new instance of ParseForestFactory.



13
14
15
# File 'lib/rley/parser/parse_forest_factory.rb', line 13

def initialize(aParsingResult)
  @parsing = aParsingResult
end

Instance Attribute Details

#parsingObject (readonly)

Link to Parsing object (= results of recognizer)



10
11
12
# File 'lib/rley/parser/parse_forest_factory.rb', line 10

def parsing
  @parsing
end

Instance Method Details

#build_parse_forestObject

Factory that produces the parse forest



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/rley/parser/parse_forest_factory.rb', line 18

def build_parse_forest()
  a_walker = walker(parsing)
  a_builder = builder(parsing)

  begin
    loop do
      event = a_walker.next
      # puts "EVENT #{event[0]} #{event[1]}"
      a_builder.receive_event(*event)
    end
  rescue StopIteration
    # Do nothing
  end

  return a_builder.forest
end