Starts the interpreter on the main module of a program

Property definitions

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

nitc :: on_demand_compiler $ NaiveInterpreter :: start
	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