]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/content_pres/cicNotationParser.mli
notation on steroids: 'term 40 x' is a valid variable name in notation and
[helm.git] / helm / software / components / content_pres / cicNotationParser.mli
index 978daf9ff99c1ce6f304663e86cb1c202f7c191a..161c9167c62f8b4cf1b0e96138f0922cc75be994 100644 (file)
@@ -26,6 +26,8 @@
 exception Parse_error of string
 exception Level_not_found of int
 
+type checked_l1_pattern = private CL1P of CicNotationPt.term * int
+
 (** {2 Parsing functions} *)
 
   (** concrete syntax pattern: notation level 1 *)
@@ -39,10 +41,11 @@ val parse_level2_meta: Ulexing.lexbuf -> CicNotationPt.term
 
 type rule_id
 
+val check_l1_pattern: (* level1_pattern *)
+ CicNotationPt.term -> int -> Gramext.g_assoc -> checked_l1_pattern
+
 val extend:
-  CicNotationPt.term -> (* level 1 pattern *)
-  precedence:int ->
-  associativity:Gramext.g_assoc ->
+  checked_l1_pattern ->
   (CicNotationEnv.t -> CicNotationPt.location -> CicNotationPt.term) ->
     rule_id
 
@@ -56,9 +59,12 @@ val level2_ast_grammar: Grammar.g
 val term : CicNotationPt.term Grammar.Entry.e
 
 val let_defs :
-  (CicNotationPt.capture_variable * CicNotationPt.term * int) list
+  (CicNotationPt.term CicNotationPt.capture_variable list * CicNotationPt.term CicNotationPt.capture_variable * CicNotationPt.term * int) list
     Grammar.Entry.e
 
+val protected_binder_vars :
+  (CicNotationPt.term list * CicNotationPt.term option) Grammar.Entry.e
+
 val parse_term: Ulexing.lexbuf -> CicNotationPt.term
 
 (** {2 Debugging} *)