X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fparser%2FParser.y.pp;h=83b299a7b86243d55515b2b60aa01e93396a30a1;hb=252abd9e355fe12e8f6f1e0192542a0df6ddccac;hp=5cc1ca803e5a4d58ec35fe83b461197076134338;hpb=ea480db3d34dc1ade87d32afddc11b713f863fcf;p=ghc-hetmet.git diff --git a/ghc/compiler/parser/Parser.y.pp b/ghc/compiler/parser/Parser.y.pp index 5cc1ca8..83b299a 100644 --- a/ghc/compiler/parser/Parser.y.pp +++ b/ghc/compiler/parser/Parser.y.pp @@ -21,7 +21,7 @@ import RdrName import TysWiredIn ( unitTyCon, unitDataCon, tupleTyCon, tupleCon, nilDataCon, listTyCon_RDR, parrTyCon_RDR, consDataCon_RDR ) import Type ( funTyCon ) -import ForeignCall ( Safety(..), CExportSpec(..), +import ForeignCall ( Safety(..), CExportSpec(..), CLabelString, CCallConv(..), CCallTarget(..), defaultCCallConv ) import OccName ( UserFS, varName, dataName, tcClsName, tvName ) @@ -38,7 +38,6 @@ import OrdList import Bag ( emptyBag ) import Panic -import CStrings ( CLabelString ) import FastString import Maybes ( orElse ) import Outputable @@ -59,6 +58,9 @@ Conflicts: 29 shift/reduce, [SDM 19/9/2002] 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)) @@ -939,7 +941,7 @@ deriving :: { Located (Maybe [LHsType RdrName]) } decl :: { Located (OrdList (LHsDecl RdrName)) } : sigdecl { $1 } - | infixexp opt_sig rhs {% do { r <- checkValDef $1 $2 (unLoc $3); + | infixexp opt_sig rhs {% do { r <- checkValDef $1 $2 $3; return (LL $ unitOL (LL $ ValD r)) } } rhs :: { Located (GRHSs RdrName) } @@ -978,10 +980,10 @@ sigdecl :: { Located (OrdList (LHsDecl RdrName)) } exp :: { LHsExpr RdrName } : infixexp '::' sigtype { LL $ ExprWithTySig $1 $3 } - | fexp '-<' exp { LL $ HsArrApp $1 $3 placeHolderType HsFirstOrderApp True } - | fexp '>-' exp { LL $ HsArrApp $3 $1 placeHolderType HsFirstOrderApp False } - | fexp '-<<' exp { LL $ HsArrApp $1 $3 placeHolderType HsHigherOrderApp True } - | fexp '>>-' exp { LL $ HsArrApp $3 $1 placeHolderType HsHigherOrderApp False} + | infixexp '-<' exp { LL $ HsArrApp $1 $3 placeHolderType HsFirstOrderApp True } + | infixexp '>-' exp { LL $ HsArrApp $3 $1 placeHolderType HsFirstOrderApp False } + | infixexp '-<<' exp { LL $ HsArrApp $1 $3 placeHolderType HsHigherOrderApp True } + | infixexp '>>-' exp { LL $ HsArrApp $3 $1 placeHolderType HsHigherOrderApp False} | infixexp { $1 } infixexp :: { LHsExpr RdrName } @@ -1073,7 +1075,7 @@ aexp2 :: { LHsExpr RdrName } | '$(' exp ')' { LL $ HsSpliceE (mkHsSplice $2) } -- $( exp ) | TH_VAR_QUOTE qvar { LL $ HsBracket (VarBr (unLoc $2)) } - | TH_VAR_QUOTE qcon { LL $ HsBracket (VarBr (unLoc $2)) } + | TH_VAR_QUOTE gcon { LL $ HsBracket (VarBr (unLoc $2)) } | TH_TY_QUOTE tyvar { LL $ HsBracket (VarBr (unLoc $2)) } | TH_TY_QUOTE gtycon { LL $ HsBracket (VarBr (unLoc $2)) } | '[|' exp '|]' { LL $ HsBracket (ExpBr $2) }