X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=inline;f=helm%2Focaml%2Fcic_notation%2FcicNotationPt.ml;h=d1a54bcf2e3f3e2e8713bc1a54df8102a721d8e1;hb=f7759f86b755f4f7dc2b23edd52ed4d2e5c028fe;hp=be082121ad3ac58720ca946232e7534acfd85e8c;hpb=a205eb4442d5b7a0a072a05bdfc525b8b9713c4e;p=helm.git diff --git a/helm/ocaml/cic_notation/cicNotationPt.ml b/helm/ocaml/cic_notation/cicNotationPt.ml index be082121a..d1a54bcf2 100644 --- a/helm/ocaml/cic_notation/cicNotationPt.ml +++ b/helm/ocaml/cic_notation/cicNotationPt.ml @@ -31,6 +31,11 @@ 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 *) @@ -71,11 +76,14 @@ type term = (* Syntax pattern extensions *) + | 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 @@ -88,8 +96,9 @@ 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 *) @@ -119,3 +128,18 @@ and pattern_variable = (* level 2 variables *) | FreshVar of string +type argument_pattern = + | IdentArg of int * string (* eta-depth, name *) + +type cic_appl_pattern = + | UriPattern of string + | 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 +