class ABNF::Rep
Attributes
elt[R]
greedy[R]
max[R]
min[R]
Public Class Methods
new(elt, min=0, max=nil, greedy=true)
click to toggle source
# File lib/abnf/grammar.rb, line 126 def Rep.new(elt, min=0, max=nil, greedy=true) return EmptySequence if min == 0 && max == 0 return elt if min == 1 && max == 1 return EmptySequence if elt.empty_sequence? if elt.empty_set? return min == 0 ? EmptySequence : EmptySet end Rep._new(elt, min, max, greedy) end
Also aliased as: _new
new(elt, min=0, max=nil, greedy=true)
click to toggle source
# File lib/abnf/grammar.rb, line 136 def initialize(elt, min=0, max=nil, greedy=true) @elt = elt @min = min @max = max @greedy = greedy end
Public Instance Methods
each_var(&block)
click to toggle source
# File lib/abnf/grammar.rb, line 144 def each_var(&block) @elt.each_var(&block) end
recursion(syms, lhs)
click to toggle source
# File lib/abnf/regexp.rb, line 316 def recursion(syms, lhs) @elt.recursion(syms, lhs) == NonRecursion ? NonRecursion : OtherRecursion end
regexp_tree()
click to toggle source
# File lib/abnf/regexp.rb, line 392 def regexp_tree() @elt.regexp_tree.rep(min, max, greedy) end
remove_just_recursion(n)
click to toggle source
# File lib/abnf/regexp.rb, line 320 def remove_just_recursion(n) self end
split_left_recursion(n)
click to toggle source
# File lib/abnf/regexp.rb, line 324 def split_left_recursion(n) [self, EmptySet] end
Also aliased as: split_right_recursion
split_recursion(n)
click to toggle source
# File lib/abnf/regexp.rb, line 329 def split_recursion(n) [EmptySet, self, EmptySet] end
subst_var(&block)
click to toggle source
# File lib/abnf/grammar.rb, line 145 def subst_var(&block) Rep.new(@elt.subst_var(&block), min, max, greedy) end
useful?(useful_names)
click to toggle source
# File lib/abnf/abnf.rb, line 122 def useful?(useful_names) @min == 0 ? true : @elt.useful?(useful_names) end