aboutsummaryrefslogtreecommitdiffhomepage
path: root/parsing
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2001-08-05 18:46:45 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2001-08-05 18:46:45 +0000
commiteaf89ab5428046bb3a7ccf6ccfd602b8b812c454 (patch)
treec54808ee676b4e8ea73639496deb3ce893662d04 /parsing
parenteb4d45fa494a306d15617ac4881be41775db7177 (diff)
Mise en place d'un nouveau Destruct sur le modèle du nouvel Induction
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@1874 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing')
-rw-r--r--parsing/g_tactic.ml48
1 files changed, 7 insertions, 1 deletions
diff --git a/parsing/g_tactic.ml4 b/parsing/g_tactic.ml4
index d8c4ecf08..647a4179e 100644
--- a/parsing/g_tactic.ml4
+++ b/parsing/g_tactic.ml4
@@ -87,6 +87,10 @@ GEXTEND Gram
castedconstrarg:
[ [ c = Constr.constr -> <:ast< (CASTEDCOMMAND $c) >> ] ]
;
+ ident_or_numarg:
+ [ [ id = identarg -> id
+ | n = numarg -> n ] ]
+ ;
ident_or_constrarg:
[ [ c = Constr.constr ->
match c with
@@ -303,8 +307,10 @@ GEXTEND Gram
| IDENT "Case"; cl = constrarg_binding_list ->
<:ast< (Case ($LIST $cl)) >>
| IDENT "CaseType"; c = constrarg -> <:ast< (CaseType $c) >>
- | IDENT "Destruct"; s = identarg -> <:ast< (Destruct $s) >>
+ | IDENT "Destruct"; s = ident_or_constrarg -> <:ast< (Destruct $s) >>
| IDENT "Destruct"; n = numarg -> <:ast< (Destruct $n) >>
+ | IDENT "NewDestruct"; s = ident_or_constrarg -> <:ast<(NewDestruct $s)>>
+ | IDENT "NewDestruct"; n = numarg -> <:ast< (NewDestruct $n) >>
| IDENT "Decompose"; IDENT "Record" ; c = constrarg ->
<:ast< (DecomposeAnd $c) >>
| IDENT "Decompose"; IDENT "Sum"; c = constrarg ->