\ / This software is distributed as is, NO WARRANTY.
V_______________________________________________________________ *)
-module O = Options
+module U = NUri
+module N = Level
+
+type uri = U.uri
+
+type id = string (* identifier *)
-type uri = NUri.uri
-type id = Aut.id
type name = id * bool (* token, real? *)
type names = name list
-type attr = Name of name (* name *)
- | Apix of int (* additional position index *)
- | Mark of int (* node marker *)
- | Meta of string (* metaliguistic annotation *)
- | Priv (* private global definition *)
+type meta = Main (* main object *)
+ | InProp (* inhabitant of a proposition *)
+ | Progress (* uncompleted object *)
+ | Private (* private global definition *)
+
+type attr = Name of name (* name *)
+ | Apix of int (* additional position index *)
+ | Mark of int (* node marker *)
+ | Meta of meta list (* metaliguistic classification *)
+ | Info of (string * string) (* metaliguistic annotation: language (defaults to "en-US"), text *)
type attrs = attr list (* attributes *)
-type 'term bind = Abst of 'term (* declaration: domain *)
- | Abbr of 'term (* definition: body *)
- | Void (* exclusion *)
+type 'term bind = Abst of N.level * 'term (* declaration: level, domain *)
+ | Abbr of 'term (* definition: body *)
+ | Void (* exclusion *)
type 'term entity = attrs * uri * 'term bind (* attrs, name, binder *)
-type status = {
- delta: bool; (* global delta-expansion *)
- rt: bool; (* reference typing *)
- si: bool; (* sort inclusion *)
- expand: bool (* always expand global definitions *)
-}
-
(* helpers ******************************************************************)
let common f (a, u, _) = f a u
| _ :: tl -> mark err f tl
| [] -> err ()
-let rec priv err f = function
- | Priv :: _ -> f ()
- | _ :: tl -> priv err f tl
- | [] -> err ()
-
let rec meta err f = function
- | Meta s :: _ -> f s
- | _ :: tl -> meta err f tl
- | [] -> err ()
+ | Meta ms :: _ -> f ms
+ | _ :: tl -> meta err f tl
+ | [] -> err ()
+
+let rec info err f = function
+ | Info (lg, tx) :: _ -> f lg tx
+ | _ :: tl -> info err f tl
+ | [] -> err ()
let resolve err f name a =
let rec aux i = function
| _ :: tl -> rev_append_names ns tl
let xlate f xlate_term = function
- | a, uri, Abst t ->
- let f t = f (a, uri, Abst t) in xlate_term f t
- | a, uri, Abbr t ->
+ | a, uri, Abst (n, t) ->
+ let f t = f (a, uri, Abst (n, t)) in xlate_term f t
+ | a, uri, Abbr t ->
let f t = f (a, uri, Abbr t) in xlate_term f t
- | _, _, Void ->
+ | _, _, Void ->
assert false
-
-let initial_status () = {
- delta = false; rt = false; si = !O.si; expand = !O.expand
-}
-
-let refresh_status st = {st with
- si = !O.si; expand = !O.expand
-}
-