Class: Lrama::Grammar::Inline::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/lrama/grammar/inline/resolver.rb

Instance Method Summary collapse

Constructor Details

#initialize(rule_builder) ⇒ Resolver

Returns a new instance of Resolver.



9
10
11
# File 'lib/lrama/grammar/inline/resolver.rb', line 9

def initialize(rule_builder)
  @rule_builder = rule_builder
end

Instance Method Details

#resolveObject



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/lrama/grammar/inline/resolver.rb', line 14

def resolve
  resolved_builders = []  #: Array[Lrama::Grammar::RuleBuilder]
  @rule_builder.rhs.each_with_index do |token, i|
    if (rule = @rule_builder.parameterized_resolver.find_inline(token))
      rule.rhs.each do |rhs|
        builder = build_rule(rhs, token, i, rule)
        resolved_builders << builder
      end
      break
    end
  end
  resolved_builders
end