nitc :: NaiveInterpreter :: start
# 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
src/interpreter/naive_interpreter.nit:97,2--114,4
redef fun start(mainmodule)
do
super
# Delete temporary files
var compile_dir = compile_dir
if compile_dir.file_exists then compile_dir.rmdir
end
src/interpreter/dynamic_loading_ffi/on_demand_compiler.nit:66,2--73,4