class ABNF::Parser::RuleList
Public Class Methods
common()
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 58 def self.common abnf = Common.to_s Compiler.(abnf) end
Public Instance Methods
==(other_rule_list)
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 4 def == other_rule_list return false unless other_rule_list.is_a? self.class rules == other_rule_list.rules end
[](rule_name)
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 10 def [] rule_name rules[rule_name] end
[]=(rule_name, rule)
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 14 def []= rule_name, rule rules[rule_name] = rule end
apply(rule_name, io)
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 18 def apply rule_name, io rule = fetch rule_name call_method = rule.method :call io = StringIO.new io if io.is_a? String rules[rule_name].(io, self) end
fetch(rule_name)
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 28 def fetch rule_name rule = rules[rule_name] unless rule raise Error.new "Rule not found: #{rule_name.inspect}" end rule end
names()
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 38 def names rules.keys end
replace(rule_name, regexp, max_octets)
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 42 def replace rule_name, regexp, max_octets existing_rule = fetch rule_name abnf = existing_rule rule = Rules::RegexpPattern.new regexp, abnf, max_octets rules[rule_name] = rule end
rules()
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 50 def rules @rules ||= {} end
update(additional_rules)
click to toggle source
# File lib/abnf/parser/rule_list.rb, line 54 def update additional_rules rules.update additional_rules end