type binder_kind = [ `Lambda | `Pi | `Exists | `Forall ]
type induction_kind = [ `Inductive | `CoInductive ]
-type sort_kind = [ `Prop | `Set | `Type | `CProp ]
+type sort_kind = [ `Prop | `Set | `Type of CicUniv.universe | `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 location = Token.flocation
let fail floc msg =
- let (x, y) = loc_of_floc floc in
+ let (x, y) = HExtlib.loc_of_floc floc in
failwith (Printf.sprintf "Error at characters %d - %d: %s" x y msg)
type href = UriManager.uri
+type child_pos = [ `Left | `Right | `Inner ]
+
type term_attribute =
[ `Loc of location (* source file location *)
| `IdRef of string (* ACic pointer *)
- | `Href of href list (* hyperlinks for literals *)
| `Level of int * Gramext.g_assoc (* precedence, associativity *)
+ | `ChildPos of child_pos (* position of l1 pattern variables *)
| `XmlAttrs of (string option * string * string) list
(* list of XML attributes: namespace, name, value *)
| `Raw of string (* unparsed version *)
type case_indtype = string * href option
+(** To be increased each time the term type below changes, used for "safe"
+ * marshalling *)
+let magic = 1
+
type term =
(* CIC AST *)