aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2000-08-20 19:31:01 +0000
committerherbelin2000-08-20 19:31:01 +0000
commitf473b2b79aa51307a4103660327dcb151bdaadad (patch)
treed3a2d4cd1f735e4d24621dbb5a19650cf3fcd412
parentc85ee5577d9ee20a9a91c338ece3c1c0685874b7 (diff)
Bug dans le filtrage des paires, nettoyage
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@580 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--parsing/g_cases.ml437
1 files changed, 8 insertions, 29 deletions
diff --git a/parsing/g_cases.ml4 b/parsing/g_cases.ml4
index 65248524e5..5067b2aac4 100644
--- a/parsing/g_cases.ml4
+++ b/parsing/g_cases.ml4
@@ -7,39 +7,18 @@ open Constr
GEXTEND Gram
GLOBAL : constr1 pattern;
-(*
- pattern_list:
- [ [ -> []
- | p = pattern; pl = pattern_list -> p :: pl ] ]
- ;
- lsimple_pattern:
- [ [ c = simple_pattern2 -> c ] ]
- ;
-*)
pattern:
[ [ id = ident -> id
- | "("; p = lsimple_pattern; ")" -> p ] ]
- ;
-(*
- simple_pattern_list:
- [ [ -> []
- | p = simple_pattern; pl = simple_pattern_list ->
- p :: pl ] ]
+ | "("; p = compound_pattern; ")" -> p ] ]
;
-*)
- lsimple_pattern:
- [ [ id = ident; lp = ne_pattern_list ->
- <:ast< (PATTCONSTRUCT $id ($LIST $lp)) >>
- | p = lsimple_pattern; "as"; id = ident -> <:ast< (PATTAS $id $p)>>
- | c1 = lsimple_pattern; ","; c2 = lsimple_pattern ->
- <:ast< (PATTCONSTRUCT pair $c1 $c2) >>
- | "("; p = lsimple_pattern; ")" -> p ] ]
- ;
-(*
- pattern:
- [ [ p = simple_pattern -> p ] ]
+ compound_pattern:
+ [ [ p = pattern ; lp = ne_pattern_list ->
+ <:ast< (PATTCONSTRUCT $p ($LIST $lp)) >>
+ | p = pattern; "as"; id = ident ->
+ <:ast< (PATTAS $id $p)>>
+ | p1 = pattern; ","; p2 = pattern ->
+ <:ast< (PATTCONSTRUCT pair $p1 $p2) >> ] ]
;
-*)
ne_pattern_list:
[ [ c1 = pattern; cl = ne_pattern_list -> c1 :: cl
| c1 = pattern -> [c1] ] ]