diff options
author | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2002-07-03 19:17:21 +0000 |
---|---|---|
committer | herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2002-07-03 19:17:21 +0000 |
commit | 80c2fb9228ece1d7ce2cc5e631ee24fa9bd7f843 (patch) | |
tree | 41fc9ee85e1d495fc052f2a0bd654d389df1e17e | |
parent | bed9deeabad5e0935d55a37c0f2911d4d81ce84a (diff) |
Hack pour autoriser les $n dans les Grammar tactic
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2837 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r-- | tactics/tacinterp.ml | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml index 99ed8aeb1..0a219ddc9 100644 --- a/tactics/tacinterp.ml +++ b/tactics/tacinterp.ml @@ -1140,16 +1140,20 @@ and tacarg_interp ist = function | Integer n -> VInteger n | ConstrMayEval c -> VConstr (constr_interp_may_eval ist c) | MetaNumArg (_,n) -> VConstr (List.assoc n ist.lmatch) - | MetaIdArg (loc,_) -> error_syntactic_metavariables_not_allowed loc -(* - | Tacexp t -> VArg (Tacexp ((*tactic_interp ist t,*)t)) -*) + | MetaIdArg (loc,id) -> + (try (* $id can occur in Grammar tactic... *) + (unrec (List.assoc (id_of_string id) ist.lfun)) + with + | Not_found -> error_syntactic_metavariables_not_allowed loc) | TacCall (loc,f,l) -> let fv = tacarg_interp ist f and largs = List.map (tacarg_interp ist) l in app_interp ist fv largs loc | Tacexp t -> val_interp ist t (* + | Tacexp t -> VArg (Tacexp ((*tactic_interp ist t,*)t)) +*) +(* | Node(loc,s,l) -> let fv = val_interp ist (Node(loc,"PRIMTACTIC",[Node(loc,s,[])])) and largs = List.map (val_interp ist) l in |