Add an error (in java main) when the specified main node is incorrect.
Conflicts: compiler/obc/java/java_main.ml
This commit is contained in:
parent
1c428e7fe1
commit
4ac4347dc8
|
@ -1,5 +1,6 @@
|
||||||
open Misc
|
open Misc
|
||||||
open Names
|
open Names
|
||||||
|
open Modules
|
||||||
open Signature
|
open Signature
|
||||||
open Java
|
open Java
|
||||||
open Java_printer
|
open Java_printer
|
||||||
|
@ -22,6 +23,13 @@ let program p =
|
||||||
(* Create a runnable main simulation *)
|
(* Create a runnable main simulation *)
|
||||||
if !Compiler_options.simulation
|
if !Compiler_options.simulation
|
||||||
then (
|
then (
|
||||||
|
let q_main =
|
||||||
|
try !Compiler_options.simulation_node |> qualify_value
|
||||||
|
with Not_found ->
|
||||||
|
Format.eprintf "Unable to find main node: %s@." !Compiler_options.simulation_node;
|
||||||
|
raise Errors.Error
|
||||||
|
in
|
||||||
|
let ty_main = (find_value q_main).node_outputs |> types_of_arg_list |> Types.prod in
|
||||||
let class_name = Obc2java.fresh_classe (!Compiler_options.simulation_node ^ "_sim") in
|
let class_name = Obc2java.fresh_classe (!Compiler_options.simulation_node ^ "_sim") in
|
||||||
Idents.enter_node class_name;
|
Idents.enter_node class_name;
|
||||||
let field_step_dnb, id_step_dnb =
|
let field_step_dnb, id_step_dnb =
|
||||||
|
@ -34,9 +42,6 @@ let program p =
|
||||||
mk_var (Tarray (Tclass (Names.pervasives_qn "String"), (Sint 0))) "args" in
|
mk_var (Tarray (Tclass (Names.pervasives_qn "String"), (Sint 0))) "args" in
|
||||||
let body =
|
let body =
|
||||||
let vd_main, e_main, q_main, ty_main =
|
let vd_main, e_main, q_main, ty_main =
|
||||||
let q_main = !Compiler_options.simulation_node |> Modules.qualify_value in (*qual*)
|
|
||||||
let ty_main =
|
|
||||||
(Modules.find_value q_main).node_outputs |> types_of_arg_list |> Types.prod in
|
|
||||||
let q_main = Obc2java.qualname_to_package_classe q_main in (*java qual*)
|
let q_main = Obc2java.qualname_to_package_classe q_main in (*java qual*)
|
||||||
let id = Idents.gen_var "java_main" "main" in
|
let id = Idents.gen_var "java_main" "main" in
|
||||||
mk_var_dec id (Tclass q_main), Evar id, q_main, ty_main
|
mk_var_dec id (Tclass q_main), Evar id, q_main, ty_main
|
||||||
|
|
Loading…
Reference in a new issue