]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_notation/cicNotationPt.ml
snapshot (first version with [apparently] working mappings between level
[helm.git] / helm / ocaml / cic_notation / cicNotationPt.ml
index 6987937d5e440710782613bf2e084e26425644d3..b8fdcfac667e5bf1285d5e130ff270ae9f71b83c 100644 (file)
@@ -31,6 +31,11 @@ type sort_kind = [ `Prop | `Set | `Type | `CProp ]
 type fold_kind = [ `Left | `Right ]
 
 type location = Lexing.position * Lexing.position
+(* cut and past from CicAst.loc_of_floc *)
+let loc_of_floc = function
+  | { Lexing.pos_cnum = loc_begin }, { Lexing.pos_cnum = loc_end } ->
+      (loc_begin, loc_end)
+
 
 type term_attribute =
   [ `Loc of location  (* source file location *)
@@ -76,7 +81,9 @@ type term =
   | Magic of magic_term
   | Variable of pattern_variable
 
-and capture_variable = Cic.name * term option (* name, type *)
+  (* name, type. First component must be Ident or Variable (FreshVar _) *)
+and capture_variable = term * term option
+
 and meta_subst = term option
 and subst = string * term
 and case_pattern = string * capture_variable list
@@ -89,8 +96,9 @@ and layout_pattern =
   | Below of term * term
   | Above of term * term
   | Frac of term * term
+  | Over of term * term
   | Atop of term * term
-(*   | Array of term * literal option * literal option
+(*   | array of term * literal option * literal option
       |+ column separator, row separator +| *)
   | Sqrt of term
   | Root of term * term (* argument, index *)
@@ -129,3 +137,10 @@ type cic_appl_pattern =
   | ArgPattern of argument_pattern
   | ApplPattern of cic_appl_pattern list
 
+type phrase = (* TODO hackish: replace with TacticAst.statement or similar *)
+  | Print of term
+  | Notation of term * Gramext.g_assoc option * int option * term
+      (* level 1 pattern, associativity, precedence, level 2 pattern *)
+  | Interpretation of (string * argument_pattern list) * cic_appl_pattern
+  | Render of UriManager.uri
+