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