aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2004-06-17 13:52:14 +0000
committerherbelin2004-06-17 13:52:14 +0000
commitc22fe3fa533e219037e453eaeebbc279bf4a9909 (patch)
tree1ff7051e4d33f9c2b0b9781081a51549b07d38d6
parentf8b4a0db07bb2d82fb07696ca3a7d933ab1a8448 (diff)
Nouvelle syntaxe à la ML pour donner le type ML des extensions d'arguments
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@5815 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--parsing/argextend.ml413
1 files changed, 8 insertions, 5 deletions
diff --git a/parsing/argextend.ml4 b/parsing/argextend.ml4
index 34ed304764..21f5a7368c 100644
--- a/parsing/argextend.ml4
+++ b/parsing/argextend.ml4
@@ -267,11 +267,14 @@ EXTEND
declare_vernac_argument false loc s l ] ]
;
argtype:
- [ [ e = LIDENT -> fst (interp_entry_name loc e)
- | e1 = LIDENT; "*"; e2 = LIDENT ->
- let e1 = fst (interp_entry_name loc e1) in
- let e2 = fst (interp_entry_name loc e2) in
- PairArgType (e1, e2) ] ]
+ [ "2"
+ [ e1 = argtype; "*"; e2 = argtype -> PairArgType (e1, e2) ]
+ | "1"
+ [ e = argtype; LIDENT "list" -> List0ArgType e
+ | e = argtype; LIDENT "option" -> OptArgType e ]
+ | "0"
+ [ e = LIDENT -> fst (interp_entry_name loc e)
+ | "("; e = argtype; ")" -> e ] ]
;
argrule:
[ [ "["; l = LIST0 genarg; "]"; "->"; "["; e = Pcaml.expr; "]" -> (l,e) ] ]