Class: Nydp::FunctionInvocation

Inherits:
Object
  • Object
show all
Extended by:
Helper
Defined in:
lib/nydp/function_invocation.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Helper

cons, list, literal?, pair?, sym, sym?

Constructor Details

#initialize(function_instruction, argument_instructions, source) ⇒ FunctionInvocation

Returns a new instance of FunctionInvocation.



39
40
41
# File 'lib/nydp/function_invocation.rb', line 39

def initialize function_instruction, argument_instructions, source
  @function_instruction, @argument_instructions, @source = function_instruction, argument_instructions, source
end

Class Method Details

.build(expression, bindings) ⇒ Object



35
36
37
# File 'lib/nydp/function_invocation.rb', line 35

def self.build expression, bindings
  new cons(InvokeFunctionInstruction.new(expression.size, expression)), Compiler.compile_each(expression, bindings), expression
end

Instance Method Details

#execute(vm) ⇒ Object



43
44
45
46
# File 'lib/nydp/function_invocation.rb', line 43

def execute vm
  vm.push_instructions @function_instruction,  vm.peek_context
  vm.push_instructions @argument_instructions, vm.peek_context
end

#inspectObject



48
# File 'lib/nydp/function_invocation.rb', line 48

def inspect ; @source.inspect ; end

#to_sObject



49
# File 'lib/nydp/function_invocation.rb', line 49

def to_s    ; @source.to_s    ; end