]> matita.cs.unibo.it Git - helm.git/blob - helm/interface/cicParser3.mli
Initial revision
[helm.git] / helm / interface / cicParser3.mli
1 (* Copyright (C) 2000, HELM Team.
2  * 
3  * This file is part of HELM, an Hypertextual, Electronic
4  * Library of Mathematics, developed at the Computer Science
5  * Department, University of Bologna, Italy.
6  * 
7  * HELM is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  * 
12  * HELM is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with HELM; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
20  * MA  02111-1307, USA.
21  * 
22  * For details, see the HELM World-Wide-Web page,
23  * http://cs.unibo.it/helm/.
24  *)
25
26 (******************************************************************************)
27 (*                                                                            *)
28 (*                               PROJECT HELM                                 *)
29 (*                                                                            *)
30 (*                Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>               *)
31 (*                                 24/01/2000                                 *)
32 (*                                                                            *)
33 (* This module is the terms level of a parser for cic objects from xml        *)
34 (* files to the internal representation. It is used by the module cicParser2  *)
35 (* (objects level). It defines an extension of the standard dom using the     *)
36 (* object-oriented extension machinery of markup: an object with a method     *)
37 (* to_cic_term that returns the internal representation of the subtree is     *)
38 (* added to each node of the dom tree                                         *)
39 (*                                                                            *)
40 (******************************************************************************)
41
42 exception IllFormedXml of int
43
44 val ids_to_targets : (Cic.id, Cic.anntarget) Hashtbl.t option ref
45 val current_sp : string list ref
46 val current_uri : UriManager.uri ref
47 val process_annotations : bool ref
48
49 (* the "interface" of the class linked to each node of the dom tree *)
50 class virtual cic_term :
51   object ('a)
52
53     (* fields and methods ever required by markup *)
54     val mutable node : cic_term Pxp_document.node option
55     method clone : 'a
56     method node : cic_term Pxp_document.node
57     method set_node : cic_term Pxp_document.node -> unit
58
59     (* a method that returns the internal representation of the tree (term) *)
60     (* rooted in this node                                                  *)
61     method virtual to_cic_term : Cic.annterm
62
63   end
64
65 (* The definition of domspec, an hashtable that maps each node type to the *)
66 (* object that must be linked to it. Used by markup.                       *)
67 val domspec : cic_term Pxp_document.spec