X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Futf8_macros%2Fmake_table.ml;fp=helm%2Focaml%2Futf8_macros%2Fmake_table.ml;h=0000000000000000000000000000000000000000;hb=55b82bd235d82ff7f0a40d980effe1efde1f5073;hp=4722af1e1328dc2ee32fb18ad643eef2c1ebfeab;hpb=771ee8b9d122fa963881c876e86f90531bb7434f;p=helm.git diff --git a/helm/ocaml/utf8_macros/make_table.ml b/helm/ocaml/utf8_macros/make_table.ml deleted file mode 100644 index 4722af1e1..000000000 --- a/helm/ocaml/utf8_macros/make_table.ml +++ /dev/null @@ -1,102 +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/ - *) - -(* $Id$ *) - -open Printf - -let debug = false -let debug_print s = if debug then prerr_endline (Lazy.force 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, "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 = - let start_element tag attrs = - if tag = record_tag then - try - let name = List.assoc name_field attrs in - let value = List.assoc value_field attrs in - f name value - with Not_found -> () - in - let callbacks = { - XmlPushParser.default_callbacks with - XmlPushParser.start_element = Some start_element - } in - let xml_parser = XmlPushParser.create_parser callbacks in - XmlPushParser.parse xml_parser (`File fname) - -let iter_entities_file = iter_gen "entity" "name" "value" -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 (lazy (sprintf "Adding macro %s = '%s'" macro utf8)); - Hashtbl.replace macro2utf8 macro utf8; - Hashtbl.replace utf82macro utf8 macro - in - let fill_table () = - List.iter - (fun (typ, fname) -> - match typ with - | `Entities -> iter_entities_file add_macro fname - | `Dictionary -> iter_dictionary_file add_macro fname) - xml_tables - in - fill_table (); - macro2utf8, utf82macro - -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"; - output_string oc "let utf82macro = Hashtbl.create 2000\n"; - let macro2utf8, utf82macro = parse_from_xml () in - Hashtbl.iter - (fun macro utf8 -> - fprintf oc "let _ = Hashtbl.replace macro2utf8 \"%s\" \"%s\"\n" - macro (String.escaped utf8)) - macro2utf8; - Hashtbl.iter - (fun utf8 macro -> - fprintf oc "let _ = Hashtbl.replace utf82macro \"%s\" \"%s\"\n" - (String.escaped utf8) macro) - utf82macro; - close_out oc - -let _ = main () -