Ported Java
It compiles and should work as before but it does not support any of the newer features (eg arrays)
This commit is contained in:
parent
65941dfebb
commit
6e29fea1ab
|
@ -8,29 +8,14 @@
|
||||||
(**************************************************************************)
|
(**************************************************************************)
|
||||||
(* $Id$ *)
|
(* $Id$ *)
|
||||||
|
|
||||||
open Global
|
open Signature
|
||||||
open Modules
|
open Modules
|
||||||
open Format
|
open Format
|
||||||
open Obc
|
open Obc
|
||||||
open Misc
|
open Misc
|
||||||
open Names
|
open Names
|
||||||
open Ident
|
open Ident
|
||||||
|
open Pp_tools
|
||||||
let actual_type ty =
|
|
||||||
match ty with
|
|
||||||
| Tid(tn) when (shortname tn) = "float" -> Tfloat
|
|
||||||
| Tid(tn) when (shortname tn) = "int" -> Tint
|
|
||||||
| _ -> ty
|
|
||||||
|
|
||||||
(******************************)
|
|
||||||
let rec print_list ff print sep l =
|
|
||||||
match l with
|
|
||||||
| [] -> ()
|
|
||||||
| [x] -> print ff x
|
|
||||||
| x :: l ->
|
|
||||||
print ff x;
|
|
||||||
fprintf ff "%s@ " sep;
|
|
||||||
print_list ff print sep l
|
|
||||||
|
|
||||||
let jname_of_name name =
|
let jname_of_name name =
|
||||||
let b = Buffer.create (String.length name) in
|
let b = Buffer.create (String.length name) in
|
||||||
|
@ -119,17 +104,17 @@ let print_assgt_field ff (name,_) =
|
||||||
let print_struct_type ff tn fields =
|
let print_struct_type ff tn fields =
|
||||||
fprintf ff "@[<v>@[<v 2>public class %s {@ " tn;
|
fprintf ff "@[<v>@[<v 2>public class %s {@ " tn;
|
||||||
(* fields *)
|
(* fields *)
|
||||||
print_list ff print_field "" fields;
|
print_list print_field "" "" "" ff fields;
|
||||||
(* constructor *)
|
(* constructor *)
|
||||||
let sorted_fields =
|
let sorted_fields =
|
||||||
List.sort
|
List.sort
|
||||||
(fun (n1,_) (n2,_) -> String.compare n1 n2)
|
(fun (n1,_) (n2,_) -> String.compare n1 n2)
|
||||||
fields in
|
fields in
|
||||||
fprintf ff "@ @[<v 2>public %s(@[<hov>" tn;
|
fprintf ff "@ @[<v 2>public %s(@[<hov>" tn;
|
||||||
print_list ff print_const_field "," sorted_fields;
|
print_list print_const_field "" "," "" ff sorted_fields;
|
||||||
fprintf ff "@]) {@ ";
|
fprintf ff "@]) {@ ";
|
||||||
(* constructor assignments *)
|
(* constructor assignments *)
|
||||||
print_list ff print_assgt_field "" fields;
|
print_list print_assgt_field "" "" "" ff fields;
|
||||||
(* constructor end *)
|
(* constructor end *)
|
||||||
fprintf ff "@]@ }";
|
fprintf ff "@]@ }";
|
||||||
(* class end *)
|
(* class end *)
|
||||||
|
@ -253,7 +238,7 @@ let rec print_exp ff e p avs ts single =
|
||||||
| Lhs l -> print_lhs ff l avs single
|
| Lhs l -> print_lhs ff l avs single
|
||||||
| Const c -> print_const ff c ts
|
| Const c -> print_const ff c ts
|
||||||
| Op (op, es) -> print_op ff op es p avs ts single
|
| Op (op, es) -> print_op ff op es p avs ts single
|
||||||
| Struct(type_name,fields) ->
|
| Struct_lit(type_name,fields) ->
|
||||||
let fields =
|
let fields =
|
||||||
List.sort
|
List.sort
|
||||||
(fun (ln1,_) (ln2,_) -> String.compare (shortname ln1) (shortname ln2))
|
(fun (ln1,_) (ln2,_) -> String.compare (shortname ln1) (shortname ln2))
|
||||||
|
|
Loading…
Reference in a new issue