diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2010-07-22 21:06:18 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2010-07-22 21:06:18 +0000 |
commit | fc06cb87286e2b114c7f92500511d5914b8f7f48 (patch) | |
tree | 71b120c836f660f7fa4a47447854b8859a2caf27 /parsing/extend.ml | |
parent | 1f798216ede7e3813d75732fbebc1f8fbf6622c5 (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/extend.ml')
-rw-r--r-- | parsing/extend.ml | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/parsing/extend.ml b/parsing/extend.ml index 4674a7c90..f7daafb03 100644 --- a/parsing/extend.ml +++ b/parsing/extend.ml @@ -23,17 +23,19 @@ type production_level = type ('lev,'pos) constr_entry_key_gen = | ETName | ETReference | ETBigint + | ETBinder of bool (* true=open, as in "fun .."; false as in "let f .. :=" *) | ETConstr of ('lev * 'pos) | ETPattern | ETOther of string * string | ETConstrList of ('lev * 'pos) * Tok.t list + | ETBinderList of bool * Tok.t list (** Entries level (left-hand-side of grammar rules) *) type constr_entry_key = (int,unit) constr_entry_key_gen -(** Entries used in productions (in right-hand-side of grammar rules) *) +(** Entries used in productions (in right-hand side of grammar rules) *) type constr_prod_entry_key = (production_level,production_position) constr_entry_key_gen |