patch java wrong merge.
This commit is contained in:
parent
40e64b305d
commit
13955147ca
|
@ -21,6 +21,7 @@ type ty = Tclass of class_name
|
||||||
| Tgeneric of class_name * ty list
|
| Tgeneric of class_name * ty list
|
||||||
| Tbool
|
| Tbool
|
||||||
| Tint
|
| Tint
|
||||||
|
| Tlong
|
||||||
| Tfloat
|
| Tfloat
|
||||||
| Tarray of ty * exp list
|
| Tarray of ty * exp list
|
||||||
| Tunit
|
| Tunit
|
||||||
|
@ -107,6 +108,7 @@ let rec default_value ty = match ty with
|
||||||
| Tgeneric _ -> Snull
|
| Tgeneric _ -> Snull
|
||||||
| Tbool -> Sbool true
|
| Tbool -> Sbool true
|
||||||
| Tint -> Sint 0
|
| Tint -> Sint 0
|
||||||
|
| Tlong -> Sint 0
|
||||||
| Tfloat -> Sfloat 0.0
|
| Tfloat -> Sfloat 0.0
|
||||||
| Tunit -> Evoid
|
| Tunit -> Evoid
|
||||||
| Tarray _ -> Enew_array (ty,[])
|
| Tarray _ -> Enew_array (ty,[])
|
||||||
|
|
|
@ -47,7 +47,7 @@ let program p =
|
||||||
let vd_args, _, exp_args =
|
let vd_args, _, exp_args =
|
||||||
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 get_arg i = Earray_elem(exp_args, Sint i) in
|
let get_arg i = Earray_elem(exp_args, [Sint i]) in
|
||||||
|
|
||||||
(* (* argnb is the current argument during the parsing *)
|
(* (* argnb is the current argument during the parsing *)
|
||||||
let vd_argnb, pat_argnb, exp_argnb = mk_var Tint "argNb" in
|
let vd_argnb, pat_argnb, exp_argnb = mk_var Tint "argNb" in
|
||||||
|
@ -67,6 +67,8 @@ let program p =
|
||||||
let jint = Eclass(Names.qualname_of_string "Integer") in
|
let jint = Eclass(Names.qualname_of_string "Integer") in
|
||||||
let jfloat = Eclass(Names.qualname_of_string "Float") in
|
let jfloat = Eclass(Names.qualname_of_string "Float") in
|
||||||
let jbool = Eclass(Names.qualname_of_string "Boolean") in
|
let jbool = Eclass(Names.qualname_of_string "Boolean") in
|
||||||
|
let jsys = Eclass(Names.qualname_of_string "java.lang.System") in
|
||||||
|
let jminus = pervasives_qn "-" in
|
||||||
|
|
||||||
(* parse arguments to give to the main *)
|
(* parse arguments to give to the main *)
|
||||||
let rec parse_args t_l i = match t_l with
|
let rec parse_args t_l i = match t_l with
|
||||||
|
@ -102,6 +104,7 @@ let program p =
|
||||||
| t when t = Initial.tfloat -> Emethod_call(jfloat, "toString", [ret])
|
| t when t = Initial.tfloat -> Emethod_call(jfloat, "toString", [ret])
|
||||||
| t when t = Initial.tbool -> Emethod_call(jbool, "toString", [ret])
|
| t when t = Initial.tbool -> Emethod_call(jbool, "toString", [ret])
|
||||||
| _ -> Emethod_call(ret, "toString", [])
|
| _ -> Emethod_call(ret, "toString", [])
|
||||||
|
in
|
||||||
let main_for_loop i =
|
let main_for_loop i =
|
||||||
[Aexp (Emethod_call(out, "printf",
|
[Aexp (Emethod_call(out, "printf",
|
||||||
[Sstring "%d => %s\\n"; Evar i; print_ret]))]
|
[Sstring "%d => %s\\n"; Evar i; print_ret]))]
|
||||||
|
|
|
@ -38,6 +38,7 @@ let final ff f = if f then fprintf ff "final " else ()
|
||||||
let rec _ty news ff t = match t with
|
let rec _ty news ff t = match t with
|
||||||
| Tbool -> fprintf ff "boolean"
|
| Tbool -> fprintf ff "boolean"
|
||||||
| Tint -> fprintf ff "int"
|
| Tint -> fprintf ff "int"
|
||||||
|
| Tlong -> fprintf ff "long"
|
||||||
| Tfloat -> fprintf ff "float"
|
| Tfloat -> fprintf ff "float"
|
||||||
| Tclass n -> class_name ff n
|
| Tclass n -> class_name ff n
|
||||||
| Tgeneric (n, ty_l) ->
|
| Tgeneric (n, ty_l) ->
|
||||||
|
|
Loading…
Reference in a new issue