class ABNF::Parser::Rules::Repetition
Attributes
abnf[R]
range[R]
rule[R]
Public Class Methods
new(rule, range, abnf)
click to toggle source
# File lib/abnf/parser/rules/repetition.rb, line 9 def initialize rule, range, abnf @abnf = abnf @rule = rule @range = range end
Public Instance Methods
==(other_rule)
click to toggle source
# File lib/abnf/parser/rules/repetition.rb, line 15 def == other_rule return false unless other_rule.is_a? self.class rule == other_rule.rule and range == other_rule.range end
call(io, rule_list=nil)
click to toggle source
# File lib/abnf/parser/rules/repetition.rb, line 20 def call io, rule_list=nil node = Node.repetition abnf (0...maximum).each do child = rule.(io, rule_list) or break node << child end if node.child_count >= minimum node else io.seek -node.octets, IO::SEEK_CUR nil end end
maximum()
click to toggle source
# File lib/abnf/parser/rules/repetition.rb, line 36 def maximum range.last end
minimum()
click to toggle source
# File lib/abnf/parser/rules/repetition.rb, line 40 def minimum range.first end