class SFRP::Flat::MatchExp::Pattern

Public Instance Methods

alpha_convert(table, serial) click to toggle source
# File lib/sfrp/flat/expression.rb, line 59
def alpha_convert(table, serial)
  new_ref_var_str =
    ref_var_str && (table[ref_var_str] = "_alpha#{serial.shift}")
  new_args = args.map { |a| a.alpha_convert(table, serial) }
  Pattern.new(vconst_str, new_ref_var_str, new_args)
end
duplicated_var_check() click to toggle source
# File lib/sfrp/flat/expression.rb, line 70
def duplicated_var_check
  vstrs = var_strs
  vstrs.each do |s|
    raise DuplicatedVariableError.new(s) if vstrs.count(s) > 1
  end
end
to_poly() click to toggle source
# File lib/sfrp/flat/expression.rb, line 77
def to_poly
  Poly::Pattern.new(vconst_str, ref_var_str, args.map(&:to_poly))
end
var_strs() click to toggle source
# File lib/sfrp/flat/expression.rb, line 66
def var_strs
  [ref_var_str, *args.flat_map(&:var_strs)].reject(&:nil?)
end