1 (* Copyright (C) 2000, HELM Team.
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.
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.
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.
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,
22 * For details, see the HELM World-Wide-Web page,
23 * http://cs.unibo.it/helm/.
26 (******************************************************************************)
30 (* Claudio Sacerdoti Coen <sacerdot@cs.unibo.it> *)
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 *)
40 (******************************************************************************)
42 exception IllFormedXml of int
44 val current_sp : string list ref
45 val current_uri : UriManager.uri ref
47 (* the "interface" of the class linked to each node of the dom tree *)
48 class virtual cic_term :
51 (* fields and methods ever required by markup *)
52 val mutable node : cic_term Pxp_document.node option
54 method node : cic_term Pxp_document.node
55 method set_node : cic_term Pxp_document.node -> unit
57 (* a method that returns the internal representation of the tree (term) *)
58 (* rooted in this node *)
59 method virtual to_cic_term : Cic.annterm
63 (* The definition of domspec, an hashtable that maps each node type to the *)
64 (* object that must be linked to it. Used by markup. *)
65 val domspec : cic_term Pxp_document.spec