X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fxml%2Fxml.ml;fp=helm%2Focaml%2Fxml%2Fxml.ml;h=0000000000000000000000000000000000000000;hb=c7514aaa249a96c5fdd39b1123fbdb38d92f20b6;hp=9dcd16fc0780e897518c71c49ea1b3d2ee6a8d34;hpb=1c7fb836e2af4f2f3d18afd0396701f2094265ff;p=helm.git diff --git a/helm/ocaml/xml/xml.ml b/helm/ocaml/xml/xml.ml deleted file mode 100644 index 9dcd16fc0..000000000 --- a/helm/ocaml/xml/xml.ml +++ /dev/null @@ -1,132 +0,0 @@ -(* Copyright (C) 2000, 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://cs.unibo.it/helm/. - *) - -(******************************************************************************) -(* *) -(* PROJECT HELM *) -(* *) -(* A tactic to print Coq objects in XML *) -(* *) -(* Claudio Sacerdoti Coen *) -(* 18/10/2000 *) -(* *) -(* This module defines a pretty-printer and the stream of commands to the pp *) -(* *) -(******************************************************************************) - - -(* the type token for XML cdata, empty elements and not-empty elements *) -(* Usage: *) -(* Str cdata *) -(* Empty (prefix, element_name, *) -(* [prefix1, attrname1, value1 ; ... ; prefixn, attrnamen, valuen] *) -(* NEmpty (prefix, element_name, *) -(* [prefix1, attrname1, value1 ; ... ; prefixn, attrnamen, valuen], *) -(* content *) -type token = - Str of string - | Empty of string option * string * (string option * string * string) list - | NEmpty of string option * string * (string option * string * string) list * - token Stream.t -;; - -(* currified versions of the constructors make the code more readable *) -let xml_empty ?prefix name attrs = - [< 'Empty(prefix,name,attrs) >] -let xml_nempty ?prefix name attrs content = - [< 'NEmpty(prefix,name,attrs,content) >] -let xml_cdata str = - [< 'Str str >] - -(** low level for other PPs: pretty print each token of strm applying 'f' to a -canonical string representation of each token *) -let pp_gen f strm = - let pprefix = - function - None -> "" - | Some p -> p ^ ":" in - let rec pp_r m = - parser - | [< 'Str a ; s >] -> - print_spaces m ; - f (a ^ "\n") ; - pp_r m s - | [< 'Empty(p,n,l) ; s >] -> - print_spaces m ; - f ("<" ^ (pprefix p) ^ n) ; - List.iter (fun (p,n,v) -> f (" " ^ (pprefix p) ^ n ^ "=\"" ^ v ^ "\"")) l; - f "/>\n" ; - pp_r m s - | [< 'NEmpty(p,n,l,c) ; s >] -> - print_spaces m ; - f ("<" ^ (pprefix p) ^ n) ; - List.iter (fun (p,n,v) -> f (" " ^ (pprefix p) ^ n ^ "=\"" ^ v ^ "\"")) l; - f ">\n" ; - pp_r (m+1) c ; - print_spaces m ; - f ("\n") ; - pp_r m s - | [< >] -> () - and print_spaces m = - for i = 1 to m do f " " done - in - pp_r 0 strm -;; - -(** pretty printer on output channels *) -let pp_to_outchan strm oc = - pp_gen (fun s -> output_string oc s) strm; - flush oc -;; - -(** pretty printer to string *) -let pp_to_string strm = - let buf = Buffer.create 10240 in - pp_gen (Buffer.add_string buf) strm; - Buffer.contents buf -;; - -(** pretty printer to file *) -(* Usage: *) -(* pp tokens None pretty prints the output on stdout *) -(* pp tokens (Some filename) pretty prints the output on the file filename *) -let pp ?(quiet=false) strm fn = - match fn with - | Some filename -> - let outchan = open_out filename in - (try - pp_to_outchan strm outchan; - with e -> - close_out outchan; - raise e); - close_out outchan; - if not quiet then - begin - print_string ("\nWriting on file \"" ^ filename ^ - "\" was succesfull\n"); - flush stdout - end - | None -> pp_to_outchan strm stdout -;;