niti: rename `init_naive_interpreter` as `Interpreter::start`
authorJean Privat <jean@pryen.org>
Wed, 1 Oct 2014 17:33:04 +0000 (13:33 -0400)
committerJean Privat <jean@pryen.org>
Wed, 1 Oct 2014 17:33:04 +0000 (13:33 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/interpreter/debugger.nit
src/interpreter/debugger_socket.nit
src/interpreter/naive_interpreter.nit
src/vm.nit

index 52444f7..a7d8912 100644 (file)
@@ -146,7 +146,7 @@ redef class ModelBuilder
 
                var interpreter = new Debugger(self, mainmodule, arguments)
 
-               init_naive_interpreter(interpreter, mainmodule)
+               interpreter.start(mainmodule)
 
                var time1 = get_time
                self.toolcontext.info("*** END INTERPRETING: {time1-time0} ***", 2)
@@ -160,7 +160,7 @@ redef class ModelBuilder
                var interpreter = new Debugger(self, mainmodule, arguments)
                interpreter.autocontinue = true
 
-               init_naive_interpreter(interpreter, mainmodule)
+               interpreter.start(mainmodule)
 
                var time1 = get_time
                self.toolcontext.info("*** END INTERPRETING: {time1-time0} ***", 2)
index 07cf16d..b3bac6b 100644 (file)
@@ -55,7 +55,7 @@ redef class ModelBuilder
 
                set_stdstreams
 
-               init_naive_interpreter(interpreter, mainmodule)
+               interpreter.start(mainmodule)
 
                close_stdstreams
 
@@ -73,7 +73,7 @@ redef class ModelBuilder
 
                set_stdstreams
 
-               init_naive_interpreter(interpreter, mainmodule)
+               interpreter.start(mainmodule)
 
                close_stdstreams
 
index 6c65469..36d82f8 100644 (file)
@@ -45,28 +45,11 @@ redef class ModelBuilder
                self.toolcontext.info("*** START INTERPRETING ***", 1)
 
                var interpreter = new NaiveInterpreter(self, mainmodule, arguments)
-               init_naive_interpreter(interpreter, mainmodule)
+               interpreter.start(mainmodule)
 
                var time1 = get_time
                self.toolcontext.info("*** END INTERPRETING: {time1-time0} ***", 2)
        end
-
-       private fun init_naive_interpreter(interpreter: NaiveInterpreter, mainmodule: MModule) do
-               var sys_type = mainmodule.sys_type
-               if sys_type == null then return # no class Sys
-               var mainobj = new MutableInstance(sys_type)
-               interpreter.mainobj = mainobj
-               interpreter.init_instance(mainobj)
-               var initprop = mainmodule.try_get_primitive_method("init", sys_type.mclass)
-               if initprop != null then
-                       interpreter.send(initprop, [mainobj])
-               end
-               var mainprop = mainmodule.try_get_primitive_method("run", sys_type.mclass) or else
-                       mainmodule.try_get_primitive_method("main", sys_type.mclass)
-               if mainprop != null then
-                       interpreter.send(mainprop, [mainobj])
-               end
-       end
 end
 
 # The visitor that interprets the Nit Program by walking on the AST
@@ -94,6 +77,25 @@ private class NaiveInterpreter
                self.null_instance = new MutableInstance(mainmodule.model.null_type)
        end
 
+       # Starts the interpreter on the main module of a program
+       fun start(mainmodule: MModule) do
+               var interpreter = self
+               var sys_type = mainmodule.sys_type
+               if sys_type == null then return # no class Sys
+               var mainobj = new MutableInstance(sys_type)
+               interpreter.mainobj = mainobj
+               interpreter.init_instance(mainobj)
+               var initprop = mainmodule.try_get_primitive_method("init", sys_type.mclass)
+               if initprop != null then
+                       interpreter.send(initprop, [mainobj])
+               end
+               var mainprop = mainmodule.try_get_primitive_method("run", sys_type.mclass) or else
+                       mainmodule.try_get_primitive_method("main", sys_type.mclass)
+               if mainprop != null then
+                       interpreter.send(mainprop, [mainobj])
+               end
+       end
+
        # Subtype test in the context of the mainmodule
        fun is_subtype(sub, sup: MType): Bool
        do
index a58a4a8..6d9e0d5 100644 (file)
@@ -28,7 +28,7 @@ redef class ModelBuilder
                self.toolcontext.info("*** NITVM STARTING ***", 1)
 
                var interpreter = new VirtualMachine(self, mainmodule, arguments)
-               init_naive_interpreter(interpreter, mainmodule)
+               interpreter.start(mainmodule)
 
                var time1 = get_time
                self.toolcontext.info("*** NITVM STOPPING : {time1-time0} ***", 2)