From: Alexandre Terrasa Date: Fri, 10 Jul 2015 00:02:05 +0000 (-0400) Subject: nitj: implement main call X-Git-Tag: v0.7.7~17^2~13 X-Git-Url: http://nitlanguage.org nitj: implement main call Signed-off-by: Alexandre Terrasa --- diff --git a/src/compiler/java_compiler.nit b/src/compiler/java_compiler.nit index dfdff67..83495d6 100644 --- a/src/compiler/java_compiler.nit +++ b/src/compiler/java_compiler.nit @@ -266,8 +266,21 @@ class JavaCompiler var v = new_visitor("{mainmodule.jname}_Main.java") v.add("public class {mainmodule.jname}_Main \{") v.add(" public static void main(String[] args) \{") - modelbuilder.toolcontext.info("NOT YET IMPLEMENTED", 0) - # TODO compile call to Sys::main + + var main_type = mainmodule.sys_type + if main_type != null then + var mainmodule = v.compiler.mainmodule + var glob_sys = v.init_instance(main_type) + var main_init = mainmodule.try_get_primitive_method("init", main_type.mclass) + if main_init != null then + v.send(main_init, [glob_sys]) + end + var main_method = mainmodule.try_get_primitive_method("run", main_type.mclass) or else + mainmodule.try_get_primitive_method("main", main_type.mclass) + if main_method != null then + v.send(main_method, [glob_sys]) + end + end v.add(" \}") v.add("\}") end