X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Focaml%2Fcic_notation%2FcicNotationPt.ml;h=99b8909e544627ad6fbabc712b43e6a4fd5abf31;hb=57b43a967eaf3b0747350cd775d4301a53af2820;hp=e9683521ef455a02f33c686523c40aeb5c919171;hpb=9230a8085102cd39258c047949e87001be6ffcf0;p=helm.git diff --git a/helm/ocaml/cic_notation/cicNotationPt.ml b/helm/ocaml/cic_notation/cicNotationPt.ml index e9683521e..99b8909e5 100644 --- a/helm/ocaml/cic_notation/cicNotationPt.ml +++ b/helm/ocaml/cic_notation/cicNotationPt.ml @@ -36,10 +36,11 @@ 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 *) ] type literal = @@ -78,6 +79,7 @@ type term = | Literal of literal | Layout of layout_pattern + | Magic of magic_term | Variable of pattern_variable @@ -88,7 +90,8 @@ 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 @@ -103,18 +106,20 @@ and layout_pattern = | Sqrt of term | Root of term * term (* argument, index *) | Break - | Box of box_kind * term list + | 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 *) @@ -129,16 +134,18 @@ and pattern_variable = | FreshVar of string type argument_pattern = - | IdentArg of string - | EtaArg of string option * argument_pattern (* eta abstraction *) + | IdentArg of int * string (* eta-depth, name *) type cic_appl_pattern = - | UriPattern of string - | ArgPattern of argument_pattern + | UriPattern of UriManager.uri + | VarPattern of string | ApplPattern of cic_appl_pattern list type phrase = (* TODO hackish: replace with TacticAst.statement or similar *) | Print of term | Notation of term * Gramext.g_assoc option * int option * term (* level 1 pattern, associativity, precedence, level 2 pattern *) + | Interpretation of (string * argument_pattern list) * cic_appl_pattern + | Render of UriManager.uri + | Dump (* dump grammar *)