Class: Rley::ParseRep::ParseRepCreator

Inherits:
Object
  • Object
show all
Defined in:
lib/rley/parse_rep/parse_rep_creator.rb

Overview

Utility class that helps to create a representation of a parse from a given Parsing object.

Direct Known Subclasses

ParseForestFactory, ParseTreeFactory

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(aParsingResult) ⇒ ParseRepCreator

Constructor. Creates and initialize a ParseRepCreator instance.



13
14
15
# File 'lib/rley/parse_rep/parse_rep_creator.rb', line 13

def initialize(aParsingResult)
  @parsing = aParsingResult
end

Instance Attribute Details

#parsingGFGParsing (readonly)

Returns Link to Parsing object (= results of recognizer).

Returns:

  • (GFGParsing)

    Link to Parsing object (= results of recognizer)



9
10
11
# File 'lib/rley/parse_rep/parse_rep_creator.rb', line 9

def parsing
  @parsing
end

Instance Method Details

#create(aBuilder = nil) ⇒ ParseTree

Factory method that produces the representation of the parse.

Returns:

  • (ParseTree)

    The parse representation.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/rley/parse_rep/parse_rep_creator.rb', line 19

def create(aBuilder = nil)
  a_walker = walker(parsing)
  a_builder = builder(parsing, aBuilder)

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

  return a_builder.result
end