class ABNF::Parser::Compiler::RuleList
Attributes
rulename[RW]
Public Instance Methods
c_nl(token)
click to toggle source
# File lib/abnf/parser/compiler/rule_list.rb, line 7 def c_nl token end
coerce_alternation(rule)
click to toggle source
# File lib/abnf/parser/compiler/rule_list.rb, line 10 def coerce_alternation rule if rule.is_a? Rules::Alternation rule else Rules::Alternation.new [rule], rule.abnf end end
handle_rule(name, rule)
click to toggle source
# File lib/abnf/parser/compiler/rule_list.rb, line 18 def handle_rule name, rule actual_rule = rule.inner_rule if rule.operator == '=/' original_rule = coerce_alternation rule_list[name] new_rule = coerce_alternation actual_rule alternatives = original_rule.alternatives + new_rule.alternatives abnf = alternatives.map &:abnf abnf *= ' / ' actual_rule = Rules::Alternation.new alternatives, abnf end rule_list[name] = actual_rule end
rule_list()
click to toggle source
# File lib/abnf/parser/compiler/rule_list.rb, line 34 def rule_list compiler.rule_list end