X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Futf8_macros%2Fmake_table.ml;h=68309b1c444afd531142bacdc519a8d6f621a2ae;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=cca1d13c44bb8480b4df9cfdc4bed93c06b4d729;hpb=d429195565f96b9d70e7d798e2f5c54655c7fc87;p=helm.git diff --git a/helm/ocaml/utf8_macros/make_table.ml b/helm/ocaml/utf8_macros/make_table.ml index cca1d13c4..68309b1c4 100644 --- a/helm/ocaml/utf8_macros/make_table.ml +++ b/helm/ocaml/utf8_macros/make_table.ml @@ -26,7 +26,7 @@ open Printf let debug = false -let debug_print s = if debug then prerr_endline s +let debug_print s = if debug then prerr_endline (Lazy.force s) (* source files for tables xml parsing (if unmarshall=false) *) let xml_tables = [ @@ -37,6 +37,8 @@ let xml_tables = [ `Entities, "data/entities-table.xml"; `Dictionary, "data/dictionary-tex.xml"; `Entities, "data/extra-entities.xml"; + (** extra-entities.xml should be the last one since it is used to override + * previous mappings. Add there overrides as needed. *) ] let iter_gen record_tag name_field value_field f fname = @@ -61,9 +63,9 @@ let iter_dictionary_file = iter_gen "entry" "name" "val" let parse_from_xml () = let (macro2utf8, utf82macro) = (Hashtbl.create 2000, Hashtbl.create 2000) in let add_macro macro utf8 = - debug_print (sprintf "Adding macro %s = '%s'" macro utf8); - Hashtbl.add macro2utf8 macro utf8; - Hashtbl.add utf82macro utf8 macro + debug_print (lazy (sprintf "Adding macro %s = '%s'" macro utf8)); + Hashtbl.replace macro2utf8 macro utf8; + Hashtbl.replace utf82macro utf8 macro in let fill_table () = List.iter @@ -84,12 +86,12 @@ let main () = let macro2utf8, utf82macro = parse_from_xml () in Hashtbl.iter (fun macro utf8 -> - fprintf oc "let _ = Hashtbl.add macro2utf8 \"%s\" \"%s\"\n" + fprintf oc "let _ = Hashtbl.replace macro2utf8 \"%s\" \"%s\"\n" macro (String.escaped utf8)) macro2utf8; Hashtbl.iter (fun utf8 macro -> - fprintf oc "let _ = Hashtbl.add utf82macro \"%s\" \"%s\"\n" + fprintf oc "let _ = Hashtbl.replace utf82macro \"%s\" \"%s\"\n" (String.escaped utf8) macro) utf82macro; close_out oc