X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=helm%2Focaml%2Fcic_disambiguation%2Fmake_table.ml;fp=helm%2Focaml%2Fcic_disambiguation%2Fmake_table.ml;h=0000000000000000000000000000000000000000;hp=9aaa4a06c8bd28fa10c89de8104a2885d4ab0583;hb=1696761e4b8576e8ed81caa905fd108717019226;hpb=5325734bc2e4927ed7ec146e35a6f0f2b49f50c1 diff --git a/helm/ocaml/cic_disambiguation/make_table.ml b/helm/ocaml/cic_disambiguation/make_table.ml deleted file mode 100644 index 9aaa4a06c..000000000 --- a/helm/ocaml/cic_disambiguation/make_table.ml +++ /dev/null @@ -1,120 +0,0 @@ -(* Copyright (C) 2004, HELM Team. - * - * This file is part of HELM, an Hypertextual, Electronic - * Library of Mathematics, developed at the Computer Science - * Department, University of Bologna, Italy. - * - * HELM is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * HELM is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HELM; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA. - * - * For details, see the HELM World-Wide-Web page, - * http://helm.cs.unibo.it/ - *) - -open Printf -open Pxp_types -open Pxp_ev_parser - -let debug = false -let debug_print s = if debug then prerr_endline s - - (* source files for tables xml parsing (if unmarshall=false) *) -let xml_tables = [ -(* - `Entities, "/usr/share/gtkmathview/entities-table.xml"; - `Dictionary, "/usr/share/editex/dictionary-tex.xml" -*) - `Entities, "macros/entities-table.xml"; - `Dictionary, "macros/dictionary-tex.xml"; - `Entities, "macros/extra-entities.xml"; -] - - -let rec find_first_tag pull_parser = - match pull_parser () with - | Some (E_start_tag _ as e) -> e - | None -> assert false - | _ -> find_first_tag pull_parser - -let iter_entities_file f pull_parser = - ignore (find_first_tag pull_parser); (* *) - let rec aux () = - match pull_parser () with - | Some (E_start_tag ("entity", attrs, _)) -> - (try - let name = List.assoc "name" attrs in - let value = List.assoc "value" attrs in - f name value - with Not_found -> ()); - aux () - | None -> () - | _ -> aux () - in - aux () - -let iter_dictionary_file f pull_parser = - ignore (find_first_tag pull_parser); (* *) - let rec aux () = - match pull_parser () with - | Some (E_start_tag ("entry", attrs, _)) -> - (try - let name = List.assoc "name" attrs in - let value = List.assoc "val" attrs in - f name value - with Not_found -> ()); - aux () - | None -> () - | _ -> aux () - in - aux () - -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 *) - in - let fill_table () = - List.iter - (fun (typ, fname) -> - let entry = `Entry_document [ `Extend_dtd_fully; `Parse_xml_decl ] in - let config = PxpHelmConf.pxp_config in - let entity_manager = - create_entity_manager ~is_document:true config (from_file fname) - in - let pull_parser = create_pull_parser config entry entity_manager in - match typ with - | `Entities -> iter_entities_file add_macro pull_parser - | `Dictionary -> iter_dictionary_file add_macro pull_parser) - xml_tables - in - fill_table (); - macro2utf8 - -let main () = - let oc = open_out Sys.argv.(1) in - output_string oc "(* GENERATED by make_table: DO NOT EDIT! *)\n"; - output_string oc "let macro2utf8 = Hashtbl.create 2000\n"; - let macro2utf8 = parse_from_xml () in - Hashtbl.iter - (fun macro utf8 -> - fprintf oc "let _ = Hashtbl.add macro2utf8 \"%s\" \"%s\"\n" - macro (String.escaped utf8)) - macro2utf8; - close_out oc - -let _ = main () -