]> matita.cs.unibo.it Git - helm.git/blob - helm/ocaml/cic/cicParser3.mli
3c2f5d94ccf4348d3bc23331bfb8bd4f7e491fa1
[helm.git] / helm / ocaml / cic / 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 (* the "interface" of the class linked to each node of the dom tree *)
45 class virtual cic_term :
46   object ('a)
47
48     (* fields and methods ever required by markup *)
49     val mutable node : cic_term Pxp_document.node option
50     method clone : 'a
51     method node : cic_term Pxp_document.node
52     method set_node : cic_term Pxp_document.node -> unit
53
54     (* a method that returns the internal representation of the tree (term) *)
55     (* rooted in this node                                                  *)
56     method virtual to_cic_term :
57      (UriManager.uri * Cic.annterm) list -> Cic.annterm
58
59   end
60
61 (* The definition of domspec, an hashtable that maps each node type to the *)
62 (* object that must be linked to it. Used by markup.                       *)
63 val domspec : cic_term Pxp_document.spec