class SFRP::Raw::SequenceExp

Public Instance Methods

blame_side_effect() click to toggle source
# File lib/sfrp/raw/expression.rb, line 107
def blame_side_effect
  exps.each { |e| e.blame_side_effect }
end
convert(set, ns) click to toggle source
# File lib/sfrp/raw/expression.rb, line 111
def convert(set, ns)
  return exps[0] if exps.size == 1
  pos = set.weakest_op_position(ns, func_refs)
  lseq = SequenceExp.new(exps.take(pos + 1), func_refs.take(pos))
  rseq = SequenceExp.new(exps.drop(pos + 1), func_refs.drop(pos + 1))
  args = [lseq.convert(set, ns), rseq.convert(set, ns)]
  FuncCallExp.new(func_refs[pos], args, false)
end
to_flat(set, ns) click to toggle source
# File lib/sfrp/raw/expression.rb, line 120
def to_flat(set, ns)
  convert(set, ns).to_flat(set, ns)
end
vconst_refs() click to toggle source
# File lib/sfrp/raw/expression.rb, line 103
def vconst_refs
  exps.flat_map(&:vconst_refs)
end