Class: Panini::DerivationStrategy::RoundRobinProductionChoiceProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/derivation_strategy/leftmost.rb

Instance Method Summary collapse

Constructor Details

#initialize(nonterminal) ⇒ RoundRobinProductionChoiceProxy

Returns a new instance of RoundRobinProductionChoiceProxy.



6
7
8
9
10
# File 'lib/derivation_strategy/leftmost.rb', line 6

def initialize(nonterminal)
  @nonterminal = nonterminal
  @round_robin_count = 0
  @production_count = @nonterminal.productions.count
end

Instance Method Details

#productionObject



12
13
14
15
16
# File 'lib/derivation_strategy/leftmost.rb', line 12

def production
  i = @round_robin_count % @production_count
  @round_robin_count += 1
  @nonterminal.productions[i]
end