aboutsummaryrefslogtreecommitdiffhomepage
path: root/parsing/egrammar.mli
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2010-07-22 21:06:18 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2010-07-22 21:06:18 +0000
commitfc06cb87286e2b114c7f92500511d5914b8f7f48 (patch)
tree71b120c836f660f7fa4a47447854b8859a2caf27 /parsing/egrammar.mli
parent1f798216ede7e3813d75732fbebc1f8fbf6622c5 (diff)
Extension of the recursive notations mechanism
- Added support for recursive notations with binders - Added support for arbitrary large iterators in recursive notations - More checks on the use of variables and improved error messages - Do side-effects in metasyntax only when sure that everything is ok - Documentation Note: it seems there were a small bug in match_alist (instances obtained from matching the first copy of iterator were not propagated). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13316 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing/egrammar.mli')
-rw-r--r--parsing/egrammar.mli12
1 files changed, 10 insertions, 2 deletions
diff --git a/parsing/egrammar.mli b/parsing/egrammar.mli
index 56e6b1d61..05b2ddd99 100644
--- a/parsing/egrammar.mli
+++ b/parsing/egrammar.mli
@@ -45,7 +45,12 @@ type grammar_prod_item =
(** Adding notations *)
type all_grammar_command =
- | Notation of (precedence * tolerability list) * notation_grammar
+ | Notation of
+ (precedence * tolerability list)
+ * notation_var_internalization_type list
+ (** not needed for defining grammar, hosted by egrammar for
+ transmission to interp_aconstr (via recover_notation_grammar) *)
+ * notation_grammar
| TacticGrammar of
(string * int * grammar_prod_item list *
(dir_path * Tacexpr.glob_tactic_expr))
@@ -61,5 +66,8 @@ val extend_vernac_command_grammar :
val get_extend_vernac_grammars :
unit -> (string * grammar_prod_item list list) list
+(** For a declared grammar, returns the rule + the ordered entry types
+ of variables in the rule (for use in the interpretation) *)
val recover_notation_grammar :
- notation -> (precedence * tolerability list) -> notation_grammar
+ notation -> (precedence * tolerability list) ->
+ notation_var_internalization_type list * notation_grammar