diff options
| author | aspiwack | 2013-11-02 15:35:43 +0000 |
|---|---|---|
| committer | aspiwack | 2013-11-02 15:35:43 +0000 |
| commit | 386d36deb6efb755cdd16ad216361e01e0b7662e (patch) | |
| tree | ad4a3063b901c508d759f9a9b9660a1e04dc1c3d /parsing | |
| parent | e6404437c1f6ae451f4253cd3450f75513b395c3 (diff) | |
Adds a new goal selector "all:".
all:tac applies tac to all the focused subgoals.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16982 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing')
| -rw-r--r-- | parsing/g_vernac.ml4 | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/parsing/g_vernac.ml4 b/parsing/g_vernac.ml4 index 1288e2e79c..502b6b8ea3 100644 --- a/parsing/g_vernac.ml4 +++ b/parsing/g_vernac.ml4 @@ -109,8 +109,14 @@ GEXTEND Gram noedit_mode: [ [ c = subgoal_command -> c None] ] ; + + selector: + [ [ n=natural; ":" -> SelectNth n + | IDENT "all" ; ":" -> SelectAll ] ] + ; + tactic_mode: - [ [ gln = OPT[n=natural; ":" -> n]; + [ [ gln = OPT selector; tac = subgoal_command -> tac gln ] ] ; @@ -127,11 +133,22 @@ GEXTEND Gram subgoal_command: - [ [ c = check_command; "." -> fun g -> c g + [ [ c = check_command; "." -> + begin function + | Some (SelectNth g) -> c (Some g) + | None -> c None + | _ -> + (* arnaud: the error is raised bizarely: + "all:Check 0." doesn't do anything, then + inputing anything that ends with a period + (including " .") raises the error. *) + error "Typing and evaluation commands, cannot be used with the \"all:\" selector." + end | tac = Tactic.tactic; use_dft_tac = [ "." -> false | "..." -> true ] -> - (fun g -> - let g = Option.default 1 g in + (fun g -> + (* arnaud: attention à choisir le bon défaut. *) + let g = Option.default (SelectNth 1) g in VernacSolve(g,tac,use_dft_tac)) ] ] ; located_vernac: |
