type binder_kind = [ `Lambda | `Pi | `Exists | `Forall ]
type induction_kind = [ `Inductive | `CoInductive ]
-type sort_kind = [ `Prop | `Set | `Type of CicUniv.universe | `CProp ]
+type sort_kind = [ `Prop | `Set | `Type of CicUniv.universe | `CProp of CicUniv.universe]
type fold_kind = [ `Left | `Right ]
type location = Stdpp.location
type term_attribute =
[ `Loc of location (* source file location *)
| `IdRef of string (* ACic pointer *)
- | `Level of int * Gramext.g_assoc (* precedence, associativity *)
- | `ChildPos of child_pos (* position of l1 pattern variables *)
+ | `Level of int
| `XmlAttrs of (string option * string * string) list
(* list of XML attributes: namespace, name, value *)
| `Raw of string (* unparsed version *)
(** To be increased each time the term type below changes, used for "safe"
* marshalling *)
-let magic = 2
+let magic = 4
type term =
(* CIC AST *)
and meta_subst = term option
and subst = string * term
-and case_pattern = string * href option * term capture_variable list
+and case_pattern =
+ Pattern of string * href option * term capture_variable list
+ | Wildcard
and box_kind = H | V | HV | HOV
and box_spec = box_kind * bool * bool (* kind, spacing, indent *)
| Frac of term * term
| Over of term * term
| Atop of term * term
+ | InfRule of term * term * term
(* | array of term * literal option * literal option
|+ column separator, row separator +| *)
| Sqrt of term
| Fail
| If of term * term * term (* test, pattern if true, pattern if false *)
+and term_level = Self of int | Level of int
+
and pattern_variable =
(* level 1 and 2 variables *)
| NumVar of string
| IdentVar of string
- | TermVar of string
+ | TermVar of string * term_level
(* level 1 variables *)
| Ascription of term * string
let apply_prec = 70
let simple_prec = 90
-let let_in_assoc = Gramext.NonA
-let binder_assoc = Gramext.RightA
-let apply_assoc = Gramext.LeftA
-let simple_assoc = Gramext.NonA
-