diff options
| author | herbelin | 2003-03-31 17:31:59 +0000 |
|---|---|---|
| committer | herbelin | 2003-03-31 17:31:59 +0000 |
| commit | e60fae1d7442c8662cdf3174590df972e7940635 (patch) | |
| tree | e9f35bde6fb63bd76e630f227ece58a66d27ebed | |
| parent | 8a8b61d623dd1a37cf5a7edb4d77ba8cae893085 (diff) | |
Bug pattern_occ_hyp_list
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3818 85f007b7-540e-0410-9357-904b9bb8a0f7
| -rw-r--r-- | parsing/g_tactic.ml4 | 10 | ||||
| -rw-r--r-- | parsing/g_tacticnew.ml4 | 18 |
2 files changed, 18 insertions, 10 deletions
diff --git a/parsing/g_tactic.ml4 b/parsing/g_tactic.ml4 index fe77a30959..787ccd07e4 100644 --- a/parsing/g_tactic.ml4 +++ b/parsing/g_tactic.ml4 @@ -133,12 +133,16 @@ GEXTEND Gram pattern_occ: [ [ nl = LIST0 integer; c = constr -> (nl,c) ] ] ; + pattern_occ_hyp_tail_list: + [ [ pl = pattern_occ_hyp_list -> pl | -> (None,[]) ] ] + ; pattern_occ_hyp_list: [ [ nl = LIST1 natural; IDENT "Goal" -> (Some nl,[]) - | nl = LIST1 natural; id = id_or_meta; (g,l) = pattern_occ_hyp_list -> - (g,(id,nl)::l) + | nl = LIST1 natural; id = id_or_meta; (g,l) = pattern_occ_hyp_tail_list + -> (g,(id,nl)::l) | IDENT "Goal" -> (Some [],[]) - | id = id_or_meta; (g,l) = pattern_occ_hyp_list -> (g,(id,[])::l) ] ] + | id = id_or_meta; (g,l) = pattern_occ_hyp_tail_list -> (g,(id,[])::l) + ] ] ; clause_pattern: [ [ "in"; p = pattern_occ_hyp_list -> p | -> None, [] ] ] diff --git a/parsing/g_tacticnew.ml4 b/parsing/g_tacticnew.ml4 index 4083fe82c8..dade806118 100644 --- a/parsing/g_tacticnew.ml4 +++ b/parsing/g_tacticnew.ml4 @@ -142,12 +142,16 @@ GEXTEND Gram pattern_occ: [ [ nl = LIST0 integer; c = [c=constr->c | g=global->Topconstr.CRef g]-> (nl,c) ] ] ; + pattern_occ_hyp_tail_list: + [ [ pl = pattern_occ_hyp_list -> pl | -> (None,[]) ] ] + ; pattern_occ_hyp_list: [ [ nl = LIST1 natural; IDENT "Goal" -> (Some nl,[]) - | nl = LIST1 natural; id = id_or_meta; (g,l) = pattern_occ_hyp_list -> - (g,(id,nl)::l) + | nl = LIST1 natural; id = id_or_meta; (g,l) = pattern_occ_hyp_tail_list + -> (g,(id,nl)::l) | IDENT "Goal" -> (Some [],[]) - | id = id_or_meta; (g,l) = pattern_occ_hyp_list -> (g,(id,[])::l) ] ] + | id = id_or_meta; (g,l) = pattern_occ_hyp_tail_list -> (g,(id,[])::l) + ] ] ; clause_pattern: [ [ "in"; p = pattern_occ_hyp_list -> p | -> None, [] ] ] @@ -298,13 +302,13 @@ GEXTEND Gram | IDENT "lapply"; c = lconstr -> TacLApply c (* Derived basic tactics *) - | IDENT "induction"; h = quantified_hypothesis -> TacOldInduction h - | IDENT "newinduction"; c = induction_arg; el = OPT eliminator; + | IDENT "oldinduction"; h = quantified_hypothesis -> TacOldInduction h + | IDENT "induction"; c = induction_arg; el = OPT eliminator; ids = with_names -> TacNewInduction (c,el,ids) | IDENT "double"; IDENT "induction"; h1 = quantified_hypothesis; h2 = quantified_hypothesis -> TacDoubleInduction (h1,h2) - | IDENT "destruct"; h = quantified_hypothesis -> TacOldDestruct h - | IDENT "newdestruct"; c = induction_arg; el = OPT eliminator; + | IDENT "olddestruct"; h = quantified_hypothesis -> TacOldDestruct h + | IDENT "destruct"; c = induction_arg; el = OPT eliminator; ids = with_names -> TacNewDestruct (c,el,ids) | IDENT "decompose"; IDENT "record" ; c = lconstr -> TacDecomposeAnd c | IDENT "decompose"; IDENT "sum"; c = lconstr -> TacDecomposeOr c |
