aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2006-03-05 09:05:12 +0000
committerherbelin2006-03-05 09:05:12 +0000
commitec0999d90b7bce9c0f61300be7bc3e0016f12fbf (patch)
tree76c8daa922456751cb6fc839ce32ea77031fc462
parent46a26794042f93ef3892b52208d2167c5ec71de4 (diff)
Correction bug 984 via introduction TacCall(loc,r,[]) pour signifier une référence explicitement de ltac + suppression de la répétition de l'entrée 'reference' dans tactic_atom
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@8129 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--parsing/g_ltac.ml49
1 files changed, 7 insertions, 2 deletions
diff --git a/parsing/g_ltac.ml4 b/parsing/g_ltac.ml4
index 1deffe6d35..60a00df3df 100644
--- a/parsing/g_ltac.ml4
+++ b/parsing/g_ltac.ml4
@@ -35,6 +35,11 @@ let arg_of_expr = function
TacArg a -> a
| e -> Tacexp (e:raw_tactic_expr)
+let tacarg_of_expr = function
+ | TacArg (Reference r) -> TacCall (dummy_loc,r,[])
+ | TacArg a -> a
+ | e -> Tacexp (e:raw_tactic_expr)
+
(* Tactics grammar rules *)
GEXTEND Gram
@@ -101,9 +106,10 @@ GEXTEND Gram
;
(* Tactic arguments *)
tactic_arg:
- [ [ IDENT "ltac"; ":"; a = tactic_expr LEVEL "0" -> arg_of_expr a
+ [ [ IDENT "ltac"; ":"; a = tactic_expr LEVEL "0" -> tacarg_of_expr a
| IDENT "ipattern"; ":"; ipat = simple_intropattern -> IntroPattern ipat
| a = may_eval_arg -> a
+ | r = reference -> Reference r
| a = tactic_atom -> a
| c = Constr.constr -> ConstrMayEval (ConstrTerm c) ] ]
;
@@ -125,7 +131,6 @@ GEXTEND Gram
;
tactic_atom:
[ [ id = METAIDENT -> MetaIdArg (loc,id)
- | r = reference -> Reference r
| "()" -> TacVoid ] ]
;
match_key: