diff --git a/src/libgrew.ml b/src/libgrew.ml
index c7f79bcf29358d9de8750fa129b85db465e58fc9..fe7db6028758e44c25d010bee5ea7b0a63d4c460 100644
--- a/src/libgrew.ml
+++ b/src/libgrew.ml
@@ -73,55 +73,54 @@ let rewrite ~gr ~grs ~seq =
IFDEF DEP2PICT THEN
-let rewrite_to_html ?main_feat input_dir grs output_dir no_init current_grs_file current_grs seq title =
- try
- let rewrite_to_html_intern ?(no_init=false) grs_file grs seq input output nb_sentence previous next =
- let buff = Buffer.create 16 in
+let rewrite_to_html_intern ?(no_init=false) ?main_feat grs_file grs seq input output nb_sentence previous next =
+ let buff = Buffer.create 16 in
- let head = Printf.sprintf "
-
"
- (if previous <> "" then (Printf.sprintf "Sentence %d -- " previous (nb_sentence-1)) else "")
- (if next <> "" then (Printf.sprintf " -- Sentence %d" next (nb_sentence+1)) else "") in
+ let head = Printf.sprintf "
+
"
+ (if previous <> "" then (Printf.sprintf "Sentence %d -- " previous (nb_sentence-1)) else "")
+ (if next <> "" then (Printf.sprintf " -- Sentence %d" next (nb_sentence+1)) else "") in
- let title = "Sentence "^(string_of_int nb_sentence) in
- Printf.bprintf buff "%s\n" head;
- Printf.bprintf buff "GRS file: %s
\n" (Filename.concat (Filename.dirname output) (Filename.basename grs_file)) (Filename.basename grs_file);
- Printf.bprintf buff "Input file: %s\n" (Filename.concat (Filename.dirname output) (Filename.basename input)) (Filename.basename input);
- ignore(Sys.command(Printf.sprintf "cp %s %s" input (Filename.concat (Filename.dirname output) (Filename.basename input))));
-
- let init = Instance.build (Grew_parser.parse_file_to_gr input) in
- try
- let rew_hist = Grs.rewrite grs seq init in
- (* let _ = Grs.build_rew_display grs seq init in *)
- let stats =
- if no_init
- then Some (Rewrite_history.save_html ?main_feat ~init_graph:false ~header:(Buffer.contents buff) output rew_hist)
- else Some (Rewrite_history.save_html ?main_feat ~header:(Buffer.contents buff) output rew_hist) in
- stats
- with
- | Utils.Run (msg, Some (loc_file,loc_line)) ->
- let html_ch = open_out (sprintf "%s.html" output) in
- let () = Html.enter html_ch ~header:(Buffer.contents buff) output in
- fprintf html_ch "Initial graph
\n";
- Instance.save_dep_png ?main_feat output init;
- fprintf html_ch "\n" (Filename.basename output);
- fprintf html_ch "ERROR during rewriting:
\n";
- fprintf html_ch "Message: %s
\n" msg;
- fprintf html_ch "File: %s
\n" loc_file;
- fprintf html_ch "Line: %d
\n" loc_line;
- Html.leave html_ch;
- close_out html_ch;
- None
- | exc ->
- let html_ch = open_out (sprintf "%s.html" output) in
- let () = Html.enter html_ch ~header:(Buffer.contents buff) output in
- fprintf html_ch "UNEXPECTED EXCEPTION: %s
" (Printexc.to_string exc);
- Html.leave html_ch;
- close_out html_ch;
- None
-
- in
+ Printf.bprintf buff "%s\n" head;
+ Printf.bprintf buff "GRS file: %s
\n" (Filename.concat (Filename.dirname output) (Filename.basename grs_file)) (Filename.basename grs_file);
+ Printf.bprintf buff "Input file: %s\n" (Filename.concat (Filename.dirname output) (Filename.basename input)) (Filename.basename input);
+ ignore(Sys.command(Printf.sprintf "cp %s %s" input (Filename.concat (Filename.dirname output) (Filename.basename input))));
+
+ let init = Instance.build (Grew_parser.parse_file_to_gr input) in
+ try
+ let rew_hist = Grs.rewrite grs seq init in
+ (* let _ = Grs.build_rew_display grs seq init in *)
+ let stats =
+ if no_init
+ then Some (Rewrite_history.save_html ?main_feat ~init_graph:false ~header:(Buffer.contents buff) output rew_hist)
+ else Some (Rewrite_history.save_html ?main_feat ~header:(Buffer.contents buff) output rew_hist) in
+ stats
+ with
+ | Utils.Run (msg, Some (loc_file,loc_line)) ->
+ let html_ch = open_out (sprintf "%s.html" output) in
+ let () = Html.enter html_ch ~header:(Buffer.contents buff) output in
+ fprintf html_ch "Initial graph
\n";
+ Instance.save_dep_png ?main_feat output init;
+ fprintf html_ch "\n" (Filename.basename output);
+ fprintf html_ch "ERROR during rewriting:
\n";
+ fprintf html_ch "Message: %s
\n" msg;
+ fprintf html_ch "File: %s
\n" loc_file;
+ fprintf html_ch "Line: %d
\n" loc_line;
+ Html.leave html_ch;
+ close_out html_ch;
+ None
+ | exc ->
+ let html_ch = open_out (sprintf "%s.html" output) in
+ let () = Html.enter html_ch ~header:(Buffer.contents buff) output in
+ fprintf html_ch "UNEXPECTED EXCEPTION: %s
" (Printexc.to_string exc);
+ Html.leave html_ch;
+ close_out html_ch;
+ None
+
+
+let rewrite_to_html ?main_feat input_dir grs output_dir no_init current_grs_file current_grs seq title =
+ try
(* get ALL gr files *)
let all_files = Array.to_list (Sys.readdir input_dir) in
@@ -146,6 +145,7 @@ let rewrite_to_html ?main_feat input_dir grs output_dir no_init current_grs_file
seq
(Filename.concat input_dir input)
(Filename.concat output_dir (Filename.chop_extension input))
+ ?main_feat
!sentence_counter
(if !sentence_counter > 1 then (Filename.chop_extension (List.nth gr_files (!sentence_counter-2))) else "")
(if !sentence_counter < nb_files then (Filename.chop_extension (List.nth gr_files (!sentence_counter))) else "")
diff --git a/src/libgrew_.mli b/src/libgrew_.mli
index 45e238bfa93f7db49472e8a878cf6abea7abd4b0..ccac092deff70215bf25591915f6c4edcc7d4969 100644
--- a/src/libgrew_.mli
+++ b/src/libgrew_.mli
@@ -49,6 +49,11 @@ val gr : string -> gr
val rewrite : gr:gr -> grs:grs -> seq:string -> rew_display
IFDEF DEP2PICT THEN
+
+
+val rewrite_to_html_intern :
+ ?no_init:bool -> ?main_feat:string -> string -> Grs.t -> string -> string -> string -> int -> string -> string -> (string * string list) list option
+
val rewrite_to_html :
?main_feat:string -> string -> string -> string -> bool -> string -> Grs.t -> string -> string -> unit
ENDIF