X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_notation%2FcicNotationPt.ml;h=56272ebedc5f7ffc90d9dff37bd6463eeb074b5d;hb=34113d572c334c351ba66f4b05db503eed4d48f2;hp=6987937d5e440710782613bf2e084e26425644d3;hpb=7433c53083f5e6f28ce02c7ad53d26f064f31a5c;p=helm.git diff --git a/helm/ocaml/cic_notation/cicNotationPt.ml b/helm/ocaml/cic_notation/cicNotationPt.ml index 6987937d5..56272ebed 100644 --- a/helm/ocaml/cic_notation/cicNotationPt.ml +++ b/helm/ocaml/cic_notation/cicNotationPt.ml @@ -31,10 +31,18 @@ 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 *) - | `IdRef of string (* ACic pointer *) + [ `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 *) + | `XmlAttrs of (string option * string * string) list + (* list of XML attributes: namespace, name, value *) ] type literal = @@ -73,15 +81,19 @@ type term = | Literal of literal | Layout of layout_pattern + | 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 -and box_kind = H | V +and box_kind = H | V | HV | HOV +and box_spec = box_kind * bool * bool (* kind, spacing, indent *) and layout_pattern = | Sub of term * term @@ -89,24 +101,28 @@ 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 *) | Break - | Box of box_kind * term list + | Box of box_spec * term list + | Group of 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 *) @@ -120,12 +136,3 @@ and pattern_variable = (* level 2 variables *) | FreshVar of string -type argument_pattern = - | IdentArg of string - | EtaArg of string option * argument_pattern (* eta abstraction *) - -type cic_appl_pattern = - | UriPattern of string - | ArgPattern of argument_pattern - | ApplPattern of cic_appl_pattern list -