Class: SFRP::Raw::FuncCallExp

Inherits:
Struct
  • Object
show all
Defined in:
lib/sfrp/raw/expression.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#arg_expsObject

Returns the value of attribute arg_exps

Returns:

  • (Object)

    the current value of arg_exps



3
4
5
# File 'lib/sfrp/raw/expression.rb', line 3

def arg_exps
  @arg_exps
end

#effectObject

Returns the value of attribute effect

Returns:

  • (Object)

    the current value of effect



3
4
5
# File 'lib/sfrp/raw/expression.rb', line 3

def effect
  @effect
end

#func_refObject

Returns the value of attribute func_ref

Returns:

  • (Object)

    the current value of func_ref



3
4
5
# File 'lib/sfrp/raw/expression.rb', line 3

def func_ref
  @func_ref
end

#spObject

Returns the value of attribute sp

Returns:

  • (Object)

    the current value of sp



3
4
5
# File 'lib/sfrp/raw/expression.rb', line 3

def sp
  @sp
end

Instance Method Details

#blame_side_effectObject



8
9
10
11
# File 'lib/sfrp/raw/expression.rb', line 8

def blame_side_effect
  raise IllegalSideEffectError.new(func_ref.to_s, sp) if effect
  arg_exps.each(&:blame_side_effect)
end

#to_flat(set, ns) ⇒ Object



13
14
15
16
17
# File 'lib/sfrp/raw/expression.rb', line 13

def to_flat(set, ns)
  ab_func_name = set.func(ns, func_ref, sp).absolute_name
  args = arg_exps.map { |e| e.to_flat(set, ns) }
  Flat::FuncCallExp.new(ab_func_name, args, sp)
end

#vconst_refsObject



4
5
6
# File 'lib/sfrp/raw/expression.rb', line 4

def vconst_refs
  arg_exps.flat_map(&:vconst_refs)
end