aboutsummaryrefslogtreecommitdiff
path: root/parsing
diff options
context:
space:
mode:
Diffstat (limited to 'parsing')
-rw-r--r--parsing/g_ltac.ml41
-rw-r--r--parsing/g_tactic.ml49
2 files changed, 6 insertions, 4 deletions
diff --git a/parsing/g_ltac.ml4 b/parsing/g_ltac.ml4
index c541b5a7e7..f7a538720d 100644
--- a/parsing/g_ltac.ml4
+++ b/parsing/g_ltac.ml4
@@ -152,6 +152,7 @@ GEXTEND Gram
tactic_atom:
[ [ id = METAIDENT -> MetaIdArg (loc,true,id)
| n = integer -> Integer n
+ | r = reference -> Reference r
| "()" -> TacVoid ] ]
;
match_key:
diff --git a/parsing/g_tactic.ml4 b/parsing/g_tactic.ml4
index 7803cd0760..d59a46d125 100644
--- a/parsing/g_tactic.ml4
+++ b/parsing/g_tactic.ml4
@@ -244,6 +244,9 @@ GEXTEND Gram
ExplicitBindings bl
| bl = LIST1 constr -> ImplicitBindings bl ] ]
;
+ opt_bindings:
+ [ [ bl = bindings -> bl | -> NoBindings ] ]
+ ;
constr_with_bindings:
[ [ c = constr; l = with_bindings -> (c, l) ] ]
;
@@ -527,10 +530,8 @@ GEXTEND Gram
| IDENT "eright"; bl = with_bindings -> TacRight (true,bl)
| IDENT "split"; bl = with_bindings -> TacSplit (false,false,bl)
| IDENT "esplit"; bl = with_bindings -> TacSplit (true,false,bl)
- | "exists"; bl = bindings -> TacSplit (false,true,bl)
- | "eexists"; bl = bindings -> TacSplit (true,true,bl)
- | "exists" (* meaningless? *) -> TacSplit (false,true,NoBindings)
- | "eexists" -> TacSplit (true,true,NoBindings)
+ | "exists"; bl = opt_bindings -> TacSplit (false,true,bl)
+ | IDENT "eexists"; bl = opt_bindings -> TacSplit (true,true,bl)
| IDENT "constructor"; n = num_or_meta; l = with_bindings ->
TacConstructor (false,n,l)
| IDENT "econstructor"; n = num_or_meta; l = with_bindings ->