Class: Nydp::Invocation::Invocation_SYM_LEX_LEX

Inherits:
Base
  • Object
show all
Defined in:
lib/nydp/function_invocation.rb

Instance Method Summary collapse

Methods inherited from Base

#handle, #inspect, #lexical_reach, #source, #to_s

Methods included from Helper

#cons, #list, #literal?, #pair?, #sig, #sym, #sym?

Methods included from Converter

#n2r, #r2n

Constructor Details

#initialize(expr, src) ⇒ Invocation_SYM_LEX_LEX

Returns a new instance of Invocation_SYM_LEX_LEX.



214
215
216
217
218
219
# File 'lib/nydp/function_invocation.rb', line 214

def initialize expr, src
  super expr, src
  @sym = expr.car
  @lex_0 = expr.cdr.car
  @lex_1 = expr.cdr.cdr.car
end

Instance Method Details

#execute(vm) ⇒ Object



221
222
223
224
225
226
227
228
# File 'lib/nydp/function_invocation.rb', line 221

def execute vm
#        Invocation.sig self.class.name
  a0 = @lex_0.value(vm.current_context)
  a1 = @lex_1.value(vm.current_context)
  @sym.value.invoke_3 vm, a0, a1
rescue StandardError => e
  handle e, @sym.value, :invoke_3, a0, a1
end