Class: Rley::Parser::ParseEntryTracker
- Inherits:
-
Object
- Object
- Rley::Parser::ParseEntryTracker
- 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
-
#entry_set_index ⇒ Object
The index of the current entry set.
-
#parse_entry ⇒ Object
The current parse entry.
-
#processed_entries ⇒ Object
readonly
The already processed entries from current entry set.
Instance Method Summary collapse
-
#curr_dotted_item ⇒ Object
The dotted item for the current parse entry.
-
#initialize(aEntrySetIndex) ⇒ ParseEntryTracker
constructor
Constructor.
-
#select_entry(theEntrys) ⇒ Object
Take the first provided entry that wasn't processed yet.
- #symbol_on_left ⇒ Object
-
#to_prev_entry_set ⇒ Object
Notification that one begins with the previous entry set.
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_index ⇒ Object
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_entry ⇒ Object
The current parse entry
10 11 12 |
# File 'lib/rley/parser/parse_entry_tracker.rb', line 10 def parse_entry @parse_entry end |
#processed_entries ⇒ Object (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_item ⇒ Object
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_left ⇒ Object
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_set ⇒ Object
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 |