module RedParse::ReduceWithUtils
Public Instance Methods
matcher_unique_inspect(m)
click to toggle source
a version of inspect that is especially likely to be stable; no embedded addresses and ivar order is always the same
# File lib/redparse.rb, line 517 def matcher_unique_inspect(m) result=m.inspect return result unless /\A#<[A-Z]/===result "#<#{m.class}: "+ m.instance_variables.sort.map{|iv| val=m.instance_variable_get(iv).inspect val.gsub!(/#<(Proc|(?:Stack|Delete)Monkey):(?:0[xX])?[0-9a-fA-F]+/){ "#<#$1:" } iv.to_s+"="+val }.join(" ")+">" end
Also aliased as: mui
squote(str)
click to toggle source
# File lib/redparse.rb, line 529 def squote(str) "'#{str.gsub(/['\\]/){|ch| %[\\]+ch }}'" end
warn_unless_equal(i,ref,orig)
click to toggle source
# File lib/redparse.rb, line 535 def warn_unless_equal i,ref,orig return if ref==orig msg="expected @ref_#{i} to == #{squote orig}, saw #{squote ref}" ref=ref.gsub(/\.rb:\d+>/,".rb:X>") orig=orig.gsub(/\.rb:\d+>/,".rb:X>") count= if ref==orig msg="@ref_#{i} differed in line nums" warn "more @ref_ vars differed in line nums..." if @@line_mismatch_parser_ref_vars==1 @@line_mismatch_parser_ref_vars+=1 else @@unequal_parser_ref_vars+=1 end warn msg if 1==count end