Class: Nydp::Invocation::Invocation_SYM_LIT_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_LIT_LEX

Returns a new instance of Invocation_SYM_LIT_LEX.



274
275
276
277
278
279
# File 'lib/nydp/function_invocation.rb', line 274

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

Instance Method Details

#execute(vm) ⇒ Object



281
282
283
284
285
286
287
# File 'lib/nydp/function_invocation.rb', line 281

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