aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parsing/g_vernac.ml414
1 files changed, 13 insertions, 1 deletions
diff --git a/parsing/g_vernac.ml4 b/parsing/g_vernac.ml4
index 6dae6ee233..965091683a 100644
--- a/parsing/g_vernac.ml4
+++ b/parsing/g_vernac.ml4
@@ -38,6 +38,7 @@ let check_command = Gram.entry_create "vernac:check_command"
let tactic_mode = Gram.entry_create "vernac:tactic_command"
let noedit_mode = Gram.entry_create "vernac:noedit_command"
let bullet = Gram.entry_create "vernac:bullet"
+let subprf = Gram.entry_create "vernac:subprf"
let class_rawexpr = Gram.entry_create "vernac:class_rawexpr"
let thm_token = Gram.entry_create "vernac:thm_token"
@@ -69,7 +70,7 @@ let default_command_entry =
let no_hook _ _ = ()
GEXTEND Gram
- GLOBAL: vernac gallina_ext tactic_mode noedit_mode bullet subgoal_command;
+ GLOBAL: vernac gallina_ext tactic_mode noedit_mode bullet subprf subgoal_command;
vernac: FIRST
[ [ IDENT "Time"; v = vernac -> VernacTime v
| IDENT "Timeout"; n = natural; v = vernac -> VernacTimeout(n,v)
@@ -84,6 +85,7 @@ GEXTEND Gram
| c = command; "." -> c
| c = syntax; "." -> c
| "["; l = LIST1 located_vernac; "]"; "." -> VernacList l
+ | c = subprf -> c
] ]
;
vernac_aux: LAST
@@ -107,6 +109,16 @@ GEXTEND Gram
| "*" -> Star
| "+" -> Plus ] ]
;
+
+ subprf:
+ [ [
+ "{" -> VernacSubproof None
+ | "}" -> VernacEndSubproof
+ ] ]
+ ;
+
+
+
subgoal_command:
[ [ c = check_command; "." -> fun g _ -> c g
| tac = Tactic.tactic;