]> matita.cs.unibo.it Git - helm.git/blob - helm/ocaml/cic_transformations/content_expressions.mli
first moogle template checkin
[helm.git] / helm / ocaml / cic_transformations / content_expressions.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 (*                Andrea Asperti <asperti@cs.unibo.it>                    *)
31 (*                             27/6/2003                                   *)
32 (*                                                                        *)
33 (**************************************************************************)
34
35 type 
36   cexpr =
37     Symbol of string option * string * (subst option) * string option         
38                                      (* h:xref, name, subst, definitionURL *)
39   | LocalVar of string option * string        (* h:xref, name *)
40   | Meta of string option * string * meta_subst (* h:xref, name, meta_subst *)
41   | Num of string option * string             (* h:xref, value *)
42   | Appl of string option * cexpr list        (* h:xref, args *)
43   | Binder of string option *string * decl * cexpr   
44                                        (* h:xref, name, decl, body *)
45   | Letin of string option * def * cexpr          (* h:xref, def, body *)
46   | Letrec of string option * def list * cexpr    (* h:xref, def list, body *)
47   | Case of string option * cexpr * ((string * cexpr) list)
48                                (* h:xref, case_expr, named-pattern list *)
49
50 and 
51   decl = string * cexpr               (* name, type *)
52 and
53   def = string * cexpr               (* name, body *)
54 and
55   subst = (UriManager.uri * cexpr) list
56 and
57   meta_subst = cexpr option list
58 ;;
59  
60  
61 val acic2cexpr : 
62    (Cic.id, string) Hashtbl.t -> Cic.annterm -> cexpr