Class: Rley::Parser::ParseEntryTracker

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

Overview

Helper class that keeps track of the parse entries used while a Parsing instance is constructing a parse forest.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(aEntrySetIndex) ⇒ ParseEntryTracker

Constructor.



16
17
18
# File 'lib/rley/parser/parse_entry_tracker.rb', line 16

def initialize(aEntrySetIndex)
  self.entry_set_index = aEntrySetIndex
end

Instance Attribute Details

#entry_set_indexObject

The index of the current entry set



7
8
9
# File 'lib/rley/parser/parse_entry_tracker.rb', line 7

def entry_set_index
  @entry_set_index
end

#parse_entryObject

The current parse entry



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

def parse_entry
  @parse_entry
end

#processed_entriesObject (readonly)

The already processed entries from current entry set



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

def processed_entries
  @processed_entries
end

Instance Method Details

#curr_dotted_itemObject

The dotted item for the current parse entry.



40
41
42
# File 'lib/rley/parser/parse_entry_tracker.rb', line 40

def curr_dotted_item()
  parse_entry.dotted_rule
end

#select_entry(theEntrys) ⇒ Object

Take the first provided entry that wasn't processed yet.



34
35
36
37
# File 'lib/rley/parser/parse_entry_tracker.rb', line 34

def select_entry(theEntrys)
  a_entry = theEntrys.find { |st| !processed_entries.include?(st) }
  self.parse_entry = a_entry
end

#symbol_on_leftObject



44
45
46
# File 'lib/rley/parser/parse_entry_tracker.rb', line 44

def symbol_on_left()
  return curr_dotted_item.prev_symbol
end

#to_prev_entry_setObject

Notification that one begins with the previous entry set



49
50
51
# File 'lib/rley/parser/parse_entry_tracker.rb', line 49

def to_prev_entry_set()
  self.entry_set_index = entry_set_index - 1
end