lib/nydp/interpreted_function.rb in nydp-0.3.0 vs lib/nydp/interpreted_function.rb in nydp-0.4.0

- old
+ new

@@ -8,45 +8,41 @@ def self.to_s ; "" ; end def self.inspect ; "#pop_arg" ; end end class InterpretedFunction + NIL = Nydp::NIL include Helper extend Helper attr_accessor :arg_names, :body, :context_builder def invoke_1 vm, parent_context - vm.instructions.push self.body - vm.contexts.push set_args_0 parent_context + vm.push_instructions self.body, set_args_0(parent_context) end def invoke_2 vm, parent_context, arg - vm.instructions.push self.body - vm.contexts.push set_args_1(parent_context, arg) + vm.push_instructions self.body, set_args_1(parent_context, arg) end def invoke_3 vm, parent_context, arg_0, arg_1 - vm.instructions.push self.body - vm.contexts.push set_args_2(parent_context, arg_0, arg_1) + vm.push_instructions self.body, set_args_2(parent_context, arg_0, arg_1) end def invoke_4 vm, parent_context, arg_0, arg_1, arg_2 - vm.instructions.push self.body - vm.contexts.push set_args_3(parent_context, arg_0, arg_1, arg_2) + vm.push_instructions self.body, set_args_3(parent_context, arg_0, arg_1, arg_2) end def invoke vm, parent_context, arg_values - vm.instructions.push self.body - vm.contexts.push set_args(parent_context, arg_values) + vm.push_instructions self.body, set_args(parent_context, arg_values) end def setup_context context, names, values if pair? names context.set names.car, values.car setup_context context, names.cdr, values.cdr - elsif Nydp::NIL.isnt? names + elsif NIL != names context.set names, values end end def self.build arg_list, body, bindings @@ -73,10 +69,10 @@ def self.index_parameters arg_list, hsh if pair? arg_list index_parameters arg_list.car, hsh index_parameters arg_list.cdr, hsh - elsif Nydp::NIL.isnt? arg_list + elsif NIL != arg_list hsh[arg_list] = hsh.size end end def execute vm