| { Lexing.pos_cnum = loc_begin }, { Lexing.pos_cnum = loc_end } ->
(loc_begin, loc_end)
-
type term_attribute =
[ `Loc of location (* source file location *)
| `IdRef of string (* ACic pointer *)
+ | `Href of UriManager.uri list (* hyperlinks for literals *)
| `Level of int * Gramext.g_assoc (* precedence, associativity *)
]
| Literal of literal
| Layout of layout_pattern
+
| Magic of magic_term
| Variable of pattern_variable
and case_pattern = string * capture_variable list
and box_kind = H | V | HV | HOV
+and box_spec = box_kind * bool * bool (* kind, spacing, indent *)
and layout_pattern =
| Sub of term * term
|+ column separator, row separator +| *)
| Sqrt of term
| Root of term * term (* argument, index *)
-(* | Break *)
- | Box of box_kind * term list
+ | Break
+ | Box of box_spec * term list
and magic_term =
(* level 1 magics *)
- | List0 of term * literal option
- | List1 of term * literal option
+ | List0 of term * literal option (* pattern, separator *)
+ | List1 of term * literal option (* pattern, separator *)
| Opt of term
(* level 2 magics *)
| Fold of fold_kind * term * string list * term
(* base case pattern, recursive case bound names, recursive case pattern *)
| Default of term * term (* "some" case pattern, "none" case pattern *)
+ | Fail
+ | If of term * term * term (* test, pattern if true, pattern if false *)
and pattern_variable =
(* level 1 and 2 variables *)
| IdentArg of int * string (* eta-depth, name *)
type cic_appl_pattern =
- | UriPattern of string
+ | UriPattern of UriManager.uri
| VarPattern of string
| ApplPattern of cic_appl_pattern list
(* level 1 pattern, associativity, precedence, level 2 pattern *)
| Interpretation of (string * argument_pattern list) * cic_appl_pattern
| Render of UriManager.uri
+ | Dump (* dump grammar *)