X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fauto%2Fhtml.ml;fp=src%2Fauto%2Fhtml.ml;h=0000000000000000000000000000000000000000;hp=6c45c930197fffcc763e0beef43da3feb654a4f0;hb=b00bff88c7902e828804c06b7f9dc55222fdc84e;hpb=03b6a364e7240ca827585e7baff225a0aaa33bc6 diff --git a/src/auto/html.ml b/src/auto/html.ml deleted file mode 100644 index 6c45c93..0000000 --- a/src/auto/html.ml +++ /dev/null @@ -1,92 +0,0 @@ -open Format -module M = Map.Make(struct type t = int let compare = compare end) - -let info = Hashtbl.create 2017 - - -let add_info (nodeid:int) (i:int) s = - let m = try Hashtbl.find info nodeid with Not_found -> M.empty in - let old_s = try M.find i m with Not_found -> "" in - let s' = old_s ^ s in - let m' = M.add i s' m in - Hashtbl.replace info nodeid m' - -let buff = Buffer.create 20 -let fmt = formatter_of_buffer buff - -let trace nodeid i = - let () = pp_print_flush fmt (); - Buffer.clear buff - in - kfprintf (fun fmt -> - pp_print_flush fmt (); - let s = Buffer.contents buff in - add_info nodeid i s) fmt - - -let gen_trace (type s) = (); fun t tree -> - let module T = (val (t) : Tree.Sig.S with type t = s) in - let rec loop odot ohtml node parent = - if node == T.nil then () else begin - let s_node = "node" ^ (string_of_int (T.preorder tree node)) in - fprintf odot "%s[ id=\"%s\" label=\"%s\"];\n" - s_node s_node (Utils.QName.to_string (T.tag tree node)); - let m = - try - Hashtbl.find info (T.preorder tree node) - with Not_found -> M.empty - in - fprintf ohtml "data['%s'] = new Array();\n" s_node; - M.iter - (fun i s -> fprintf ohtml "data['%s'][%i] = '%s';\n" s_node i s) - m; - if parent != T.nil then - fprintf odot "node%i -> %s;\n" - (T.preorder tree parent) s_node; - loop odot ohtml (T.first_child tree node) node; - loop odot ohtml (T.next_sibling tree node) parent - end - in - ignore (Sys.command "mkdir -p tests/trace"); - let odot_ = open_out "tests/trace/trace.dot" in - let ohtml_ = open_out "tests/trace/trace.html" in - let odot = formatter_of_out_channel odot_ in - let ohtml = formatter_of_out_channel ohtml_ in - fprintf odot "digraph G {\n node[shape=box, style=filled, fillcolor=white];splines=false;"; - fprintf ohtml "\ - -\ -\ -\ -\ -
\ -\n
\n"; - let fi = open_in "tests/trace/trace2.svg" in - try - while true do - let s = input_line fi in - fprintf ohtml "%s\n" s; - done - with - End_of_file -> - fprintf ohtml "
\n%!"; - pp_print_flush ohtml (); - close_out ohtml_; - close_in fi -