aboutsummaryrefslogtreecommitdiff
path: root/parsing
diff options
context:
space:
mode:
authorherbelin2005-03-07 21:39:55 +0000
committerherbelin2005-03-07 21:39:55 +0000
commitd2562604fcea7ef0b0c5658af8fe21003ef3953e (patch)
tree7fde3fe8bac6e069de13a153fda8844bd98a3a04 /parsing
parent3af4fe78c8e5ed1c4148e8feeffeb6c66eaa6b09 (diff)
Added 'clear - id' to clear all hypotheses except the ones dependent in the statement of id
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6806 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing')
-rw-r--r--parsing/g_tactic.ml43
-rw-r--r--parsing/g_tacticnew.ml43
-rw-r--r--parsing/pptactic.ml5
-rw-r--r--parsing/q_coqast.ml44
4 files changed, 9 insertions, 6 deletions
diff --git a/parsing/g_tactic.ml4 b/parsing/g_tactic.ml4
index c578c66b3c..8972b0a210 100644
--- a/parsing/g_tactic.ml4
+++ b/parsing/g_tactic.ml4
@@ -322,7 +322,8 @@ GEXTEND Gram
TacDAuto (n, p)
(* Context management *)
- | IDENT "Clear"; l = LIST1 id_or_ltac_ref -> TacClear l
+ | IDENT "Clear"; "-"; l = LIST1 id_or_meta -> TacClear (true, l)
+ | IDENT "Clear"; l = LIST0 id_or_meta -> TacClear (l=[], l)
| IDENT "ClearBody"; l = LIST1 id_or_ltac_ref -> TacClearBody l
| IDENT "Move"; id1 = id_or_ltac_ref; IDENT "after";
id2 = id_or_ltac_ref -> TacMove (true,id1,id2)
diff --git a/parsing/g_tacticnew.ml4 b/parsing/g_tacticnew.ml4
index 49dd4fa309..c41de337b0 100644
--- a/parsing/g_tacticnew.ml4
+++ b/parsing/g_tacticnew.ml4
@@ -359,7 +359,8 @@ GEXTEND Gram
TacDAuto (n, p)
(* Context management *)
- | IDENT "clear"; l = LIST1 id_or_meta -> TacClear l
+ | IDENT "clear"; "-"; l = LIST1 id_or_meta -> TacClear (true, l)
+ | IDENT "clear"; l = LIST0 id_or_meta -> TacClear (l=[], l)
| IDENT "clearbody"; l = LIST1 id_or_meta -> TacClearBody l
| IDENT "move"; id1 = id_or_meta; IDENT "after"; id2 = id_or_meta ->
TacMove (true,id1,id2)
diff --git a/parsing/pptactic.ml b/parsing/pptactic.ml
index c6718c8a9e..52d6eb2d78 100644
--- a/parsing/pptactic.ml
+++ b/parsing/pptactic.ml
@@ -547,8 +547,9 @@ and pr_atom1 = function
hov 1 (str "Auto" ++ pr_opt int n ++ str "Decomp" ++ pr_opt int p)
(* Context management *)
- | TacClear l ->
- hov 1 (str "Clear" ++ spc () ++ prlist_with_sep spc pr_ident l)
+ | TacClear (keep,l) ->
+ hov 1 (str "Clear" ++ spc () ++ (if keep then str "- " else mt ()) ++
+ prlist_with_sep spc pr_ident l)
| TacClearBody l ->
hov 1 (str "ClearBody" ++ spc () ++ prlist_with_sep spc pr_ident l)
| TacMove (b,id1,id2) ->
diff --git a/parsing/q_coqast.ml4 b/parsing/q_coqast.ml4
index 37dcc22b19..a411d0ddde 100644
--- a/parsing/q_coqast.ml4
+++ b/parsing/q_coqast.ml4
@@ -423,9 +423,9 @@ let rec mlexpr_of_atomic_tactic = function
<:expr< Tacexpr.TacNewDestruct $mlexpr_of_induction_arg c$ $cbo$ ($ids$,ref []) >>
(* Context management *)
- | Tacexpr.TacClear l ->
+ | Tacexpr.TacClear (b,l) ->
let l = mlexpr_of_list (mlexpr_of_hyp) l in
- <:expr< Tacexpr.TacClear $l$ >>
+ <:expr< Tacexpr.TacClear $mlexpr_of_bool b$ $l$ >>
| Tacexpr.TacClearBody l ->
let l = mlexpr_of_list (mlexpr_of_hyp) l in
<:expr< Tacexpr.TacClearBody $l$ >>