cvs commit: fptools/ghc/compiler/parser Parser.y.pp
fptools/ghc/docs/users_guide glasgow_exts.sgml
Ross Paterson
ross at soi.city.ac.uk
Thu Jun 24 08:26:27 EDT 2004
On Thu, Jun 24, 2004 at 11:37:13AM +0100, Simon Marlow wrote:
> I merged the Parser.y.pp change, but now I get this on the STABLE
> branch:
>
> /home/simonmar/fp/bin/i386-unknown-linux/happy +RTS -K2m -RTS -agc
> parser/Parser.y
> unused rules: 5
> shift/reduce conflicts: 28
> reduce/reduce conflicts: 4
>
> 4 new reduce/reduce conflicts, not shift/reduce conflicts. Any ideas?
Using this patch instead should work.
--- Parser.y.orig 2003-11-27 13:34:55.000000000 +0000
+++ Parser.y 2004-06-24 13:20:51.000000000 +0100
@@ -62,6 +62,9 @@
1 for ambiguity in 'if x then y else z :: T' [State 136]
(shift parses as 'if x then y else (z :: T)', as per longest-parse rule)
+4 for ambiguity in 'if x then y else z -< e'
+ (shift parses as 'if x then y else (z -< T)', as per longest-parse rule)
+
8 for ambiguity in 'e :: a `b` c'. Does this mean [States 160,246]
(e::a) `b` c, or
(e :: (a `b` c))
@@ -909,10 +912,10 @@
exp :: { RdrNameHsExpr }
: infixexp '::' sigtype { ExprWithTySig $1 $3 }
- | fexp srcloc '-<' exp { HsArrApp $1 $4 placeHolderType HsFirstOrderApp True $2 }
- | fexp srcloc '>-' exp { HsArrApp $4 $1 placeHolderType HsFirstOrderApp False $2 }
- | fexp srcloc '-<<' exp { HsArrApp $1 $4 placeHolderType HsHigherOrderApp True $2 }
- | fexp srcloc '>>-' exp { HsArrApp $4 $1 placeHolderType HsHigherOrderApp False $2 }
+ | infixexp '-<' srcloc exp { HsArrApp $1 $4 placeHolderType HsFirstOrderApp True $3 }
+ | infixexp '>-' srcloc exp { HsArrApp $4 $1 placeHolderType HsFirstOrderApp False $3 }
+ | infixexp '-<<' srcloc exp { HsArrApp $1 $4 placeHolderType HsHigherOrderApp True $3 }
+ | infixexp '>>-' srcloc exp { HsArrApp $4 $1 placeHolderType HsHigherOrderApp False $3 }
| infixexp { $1 }
infixexp :: { RdrNameHsExpr }
More information about the Cvs-ghc
mailing list