aboutsummaryrefslogtreecommitdiffhomepage
path: root/parsing
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2002-10-12 14:57:09 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2002-10-12 14:57:09 +0000
commite610d836207b682cc08b836477cfeeb43ec0bd14 (patch)
treece7c7381d2eaa63d05a43100a7a073fa34f1c7d8 /parsing
parent455d9130fb9c55315173e2a32b9bc334e95bba16 (diff)
Notation 2:Check et 2:Eval
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3118 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'parsing')
-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 c9a0d69c7..146bce48d 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 ] ]
;