aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parsing/g_vernac.ml412
1 files changed, 11 insertions, 1 deletions
diff --git a/parsing/g_vernac.ml4 b/parsing/g_vernac.ml4
index c9a0d69c75..146bce48df 100644
--- a/parsing/g_vernac.ml4
+++ b/parsing/g_vernac.ml4
@@ -39,11 +39,21 @@ GEXTEND Gram
| g = gallina_ext; "." -> g
| c = command; "." -> c
| c = syntax; "." -> c
- | n = Prim.natural; ":"; tac = Tactic.tactic; "." -> VernacSolve (n,tac)
+ | n = Prim.natural; ":"; v = goal_vernac; "." -> v n
| "["; l = vernac_list_tail -> VernacList l
(* This is for "Grammar vernac" rules *)
| id = Prim.metaident -> VernacVar (Ast.nvar_of_ast id) ] ]
;
+ goal_vernac:
+ [ [ tac = Tactic.tactic -> fun n -> VernacSolve (n,tac)
+ | v = check_command -> fun n -> v (Some n) ] ]
+ ;
+ check_command:
+ [ [ IDENT "Eval"; r = Tactic.red_expr; "in"; c = constr ->
+ fun g -> VernacCheckMayEval (Some r, g, c)
+ | IDENT "Check"; c = constr ->
+ fun g -> VernacCheckMayEval (None, g, c) ] ]
+ ;
vernac: FIRST
[ [ IDENT "Time"; v = vernac -> VernacTime v ] ]
;