Sha256: d470e57c7cc29c1b95cba2ea3d0bbe29f69c9215d13c17455520fb74cfdefa23
Contents?: true
Size: 804 Bytes
Versions: 1
Compression:
Stored size: 804 Bytes
Contents
module Lrama class Grammar class ParameterizingRuleResolver def initialize @parameterizing_rule_builders = [] end def add_parameterizing_rule_builder(builder) @parameterizing_rule_builders << builder end def defined?(name) !rule_builders(name).empty? end def build_rules(token, rule_counter, lhs_tag, line) builder = rule_builders(token.s_value).last raise "Unknown parameterizing rule #{token.s_value} at line #{token.line}" unless builder builder.build_rules(token, token.args, rule_counter, lhs_tag, line, @parameterizing_rule_builders) end private def rule_builders(name) @parameterizing_rule_builders.select { |builder| builder.name == name } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lrama-0.6.0 | lib/lrama/grammar/parameterizing_rule_resolver.rb |