aboutsummaryrefslogtreecommitdiff
path: root/parsing
diff options
context:
space:
mode:
authorherbelin2007-02-13 18:47:49 +0000
committerherbelin2007-02-13 18:47:49 +0000
commit34ba48a885c91ea895cbba7ba5a53b1ec9de5db8 (patch)
tree7c793d76af431bc2cb0aa78e7e9edaa991d1892f /parsing
parent6e9c0edd9efc9d72e6f32bc434a34076b1a6afee (diff)
Réactivation du filtrage d'ordre 2 dans ltac qui avait cessé de
fonctionner entre la V7.3 et la V8.0 (notation : "@ ?meta id1 ... idn") git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9644 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing')
-rw-r--r--parsing/g_constr.ml45
1 files changed, 4 insertions, 1 deletions
diff --git a/parsing/g_constr.ml4 b/parsing/g_constr.ml4
index b29b82607f..1a721a2e39 100644
--- a/parsing/g_constr.ml4
+++ b/parsing/g_constr.ml4
@@ -151,7 +151,10 @@ GEXTEND Gram
| c1 = operconstr; "->"; c2 = SELF -> CArrow(loc,c1,c2)]
| "10" LEFTA
[ f=operconstr; args=LIST1 appl_arg -> CApp(loc,(None,f),args)
- | "@"; f=global; args=LIST0 NEXT -> CAppExpl(loc,(None,f),args) ]
+ | "@"; f=global; args=LIST0 NEXT -> CAppExpl(loc,(None,f),args)
+ | "@"; "?"; (locid,id) = identref; args=LIST1 identref ->
+ let args = List.map (fun x -> CRef (Ident x), None) args in
+ CApp(loc,(None,CPatVar(locid,(true,id))),args) ]
| "9"
[ ".."; c = operconstr LEVEL "0"; ".." ->
CAppExpl (loc,(None,Ident (loc,Topconstr.ldots_var)),[c]) ]