Class: Dendroid::Recognizer::ItemSet

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/dendroid/recognizer/item_set.rb

Overview

Holds the EItem identified by the recognizer when processing at token at given rank.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeItemSet

Returns a new instance of ItemSet.



14
15
16
# File 'lib/dendroid/recognizer/item_set.rb', line 14

def initialize
  @items = []
end

Instance Attribute Details

#itemsRecognizer::EItem (readonly)

Returns:



10
11
12
# File 'lib/dendroid/recognizer/item_set.rb', line 10

def items
  @items
end

Instance Method Details

#add_item(anItem) ⇒ Recognizer::EItem

Add an Earley item to the set if not yet present.

Parameters:

Returns:



21
22
23
24
25
26
27
# File 'lib/dendroid/recognizer/item_set.rb', line 21

def add_item(anItem)
  idx = items.find_index anItem
  return items[idx] if idx

  @items << anItem
  anItem
end

#items_expecting(aSymbol) ⇒ void

This method returns an undefined value.

Find the items that expect a given grammar symbol

Parameters:

  • aSymbol (Denroid::Syntax::GrmSymbol)


32
33
34
# File 'lib/dendroid/recognizer/item_set.rb', line 32

def items_expecting(aSymbol)
  items.select { |itm| itm.expecting?(aSymbol) }
end

#to_sString

Return a text representation of the item set

Returns:

  • (String)


38
39
40
# File 'lib/dendroid/recognizer/item_set.rb', line 38

def to_s
  items.join("\n")
end