]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/hbugs/tutors/build_tutors.ml
This commit was manufactured by cvs2svn to create branch
[helm.git] / helm / hbugs / tutors / build_tutors.ml
diff --git a/helm/hbugs/tutors/build_tutors.ml b/helm/hbugs/tutors/build_tutors.ml
deleted file mode 100755 (executable)
index 73ac982..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/usr/bin/ocamlrun /usr/bin/ocaml
-(*
- * Copyright (C) 2003:
- *    Stefano Zacchiroli <zack@cs.unibo.it>
- *    for the HELM Team http://helm.cs.unibo.it/
- *
- *  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/
- *)
-#use "topfind";;
-#require "pcre";;
-#require "pxp";;
-open Printf;;
-open Pxp_document;;
-open Pxp_dtd;;
-open Pxp_types;;
-open Pxp_yacc;;
-
-let index = "INDEX.xml" ;;
-let template = "hbugs_tutor.TPL.ml" ;;
-
-  (* apply a set of regexp substitutions specified as a list of pairs
-  <pattern,template> to a string *)
-let rec apply_subst ~fill s =
-  match fill with
-  | [] -> s
-  | (pat, templ)::rest ->
-      apply_subst ~fill:rest (Pcre.replace ~pat ~templ s)
-;;
-  (* fill a ~template file with substitutions specified in ~fill (see
-  apply_subst) and save output to ~output *)
-let fill_template ~template ~fill ~output =
-  printf "Creating %s ... " output; flush stdout;
-  let (ic, oc) = (open_in template, open_out output) in
-  let rec fill_template' () =
-    output_string oc ((apply_subst ~fill (input_line ic)) ^ "\n");
-    fill_template' ()
-  in
-  try
-    output_string oc (sprintf
-"(*
-  THIS CODE IS GENERATED - DO NOT MODIFY!
-
-  the source of this code is template \"%s\"
-  the template was filled with data read from \"%s\"
-*)\n"
-      template index);
-    fill_template' ()
-  with End_of_file ->
-    close_in ic;
-    close_out oc;
-    printf "done!\n"; flush stdout
-;;
-let parse_xml fname =
-  parse_wfdocument_entity default_config (from_file fname) default_spec
-;;
-let is_tutor node =
-  match node#node_type with T_element "tutor" -> true | _ -> false
-;;
-let is_element node =
-  match node#node_type with T_element _ -> true | _ -> false
-;;
-exception Skip;;
-let main () =
-  (parse_xml index)#root#iter_nodes
-    (fun node ->
-      try
-        (match node with
-        | node when is_tutor node ->
-            (try  (* skip hand-written tutors *)
-              ignore (find_element "no_auto" node);
-              raise Skip
-            with Not_found -> ());
-            let output =
-              try
-                (match node#attribute "source" with
-                | Value s -> s
-                | _ -> assert false)
-              with Not_found -> assert false
-            in
-            let fill =
-              List.map  (* create substitution list from index data *)
-                (fun node ->
-                  let name =  (* node name *)
-                    (match node#node_type with
-                    | T_element s -> s
-                    | _ -> assert false)
-                  in
-                  let value = node#data in  (* node value *)
-                  (sprintf "@%s@" (String.uppercase name),  (* pattern *)
-                   value))                                  (* substitution *)
-                (List.filter is_element node#sub_nodes)
-            in
-            fill_template ~fill ~template ~output
-        | _ -> ())
-      with Skip -> ())
-;;
-main ();;
-