git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Simplify indentation rules for guards
commit42373935e47156794161d06526185a0e4ec90ac8 authorPhil Freeman <paf31@cantab.net> dateTue 18 Nov 2014, 20:20 (12 years ago) parentdd6bb8b
6 files changed+30−26
examples/passing/Operators.purs+4 prelude/prelude.purs+10−10 src/Language/PureScript/Constants.hs+6−6 src/Language/PureScript/Optimizer/Inliner.hs+3−3 src/Language/PureScript/Parser/Common.hs+1−1 src/Language/PureScript/Parser/Declarations.hs+6−6
examples/passing/Operators.purs+4
@@ -61,6 +61,9 @@ module Main where
6161 test15 :: Number -> Number -> Boolean
6262 test15 a b = const false $ a `test14` b
6363
64+ test16 :: Number -> Number -> Number
65+ test16 x y = x .|. y .&. y
66+
6467 main = do
6568 let t1 = test1 1 2 (\x y -> x + y)
6669 let t2 = test2
@@ -77,4 +80,5 @@ module Main where
7780 let t13 = test13 k 1 2
7881 let t14 = test14 1 2
7982 let t15 = test15 1 2
83+ let t16 = test16 1 2
8084 trace "Done"
prelude/prelude.purs+10−10
@@ -17,7 +17,7 @@ module Prelude
1717 , negate
1818 , Eq, (==), (/=), refEq, refIneq
1919 , Ord, Ordering(..), compare, (<), (>), (<=), (>=)
20− , Bits, (&), (|), (^), shl, shr, zshr, complement
20+ , Bits, (.&.), (.|.), (.^.), shl, shr, zshr, complement
2121 , BoolLike, (&&), (||)
2222 , not
2323 , Semigroup, (<>), (++)
@@ -372,14 +372,14 @@ module Prelude
372372 EQ -> compare xs ys
373373 other -> other
374374
375− infixl 10 &
376− infixl 10 |
377− infixl 10 ^
375+ infixl 10 .&.
376+ infixl 10 .|.
377+ infixl 10 .^.
378378
379379 class Bits b where
380− (&) :: b -> b -> b
381− (|) :: b -> b -> b
382− (^) :: b -> b -> b
380+ (.&.) :: b -> b -> b
381+ (.|.) :: b -> b -> b
382+ (.^.) :: b -> b -> b
383383 shl :: b -> Number -> b
384384 shr :: b -> Number -> b
385385 zshr :: b -> Number -> b
@@ -426,9 +426,9 @@ module Prelude
426426 \}" :: Number -> Number
427427
428428 instance bitsNumber :: Bits Number where
429− (&) = numAnd
430− (|) = numOr
431− (^) = numXor
429+ (.&.) = numAnd
430+ (.|.) = numOr
431+ (.^.) = numXor
432432 shl = numShl
433433 shr = numShr
434434 zshr = numZshr
src/Language/PureScript/Constants.hs+6−6
@@ -65,14 +65,14 @@ module Language.PureScript.Constants where
6565(/=) :: String
6666(/=) = "/="
6767
68−(&) :: String
69−(&) = "&"
68+(.&.) :: String
69+(.&.) = ".&."
7070
71−bar :: String
72−bar = "|"
71+(.|.) :: String
72+(.|.) = ".|."
7373
74−(^) :: String
75−(^) = "^"
74+(.^.) :: String
75+(.^.) = ".^."
7676
7777(&&) :: String
7878(&&) = "&&"
src/Language/PureScript/Optimizer/Inliner.hs+3−3
@@ -117,9 +117,9 @@ inlineCommonOperators = applyAll $
117117 , binaryFunction C.bitsNumber C.shl ShiftLeft
118118 , binaryFunction C.bitsNumber C.shr ShiftRight
119119 , binaryFunction C.bitsNumber C.zshr ZeroFillShiftRight
120− , binary C.bitsNumber (C.&) BitwiseAnd
121− , binary C.bitsNumber C.bar BitwiseOr
122− , binary C.bitsNumber (C.^) BitwiseXor
120+ , binary C.bitsNumber (C..&.) BitwiseAnd
121+ , binary C.bitsNumber (C..|.) BitwiseOr
122+ , binary C.bitsNumber (C..^.) BitwiseXor
123123 , unary C.bitsNumber C.complement BitwiseNot
124124
125125 , binary C.boolLikeBoolean (C.&&) And
src/Language/PureScript/Parser/Common.hs+1−1
@@ -71,7 +71,7 @@ reservedTypeNames = [ "forall"
7171-- A list of reserved operators
7272--
7373reservedOpNames :: [String]
74−reservedOpNames = [ "=>", "->", "=", ".", "\\" ]
74+reservedOpNames = [ "=>", "->", "=", ".", "\\", "|" ]
7575
7676-- |
7777-- Valid first characters for an identifier
src/Language/PureScript/Parser/Declarations.hs+6−6
@@ -83,9 +83,9 @@ parseValueDeclaration = do
8383 name <- parseIdent
8484 binders <- P.many parseBinderNoParens
8585 value <- Left <$> (C.indented *>
86− C.mark (P.many1 ((,) <$> (C.same *> parseGuard)
87− <*> (lexeme (indented *> P.char '=') *> parseValueWithWhereClause)
88− )))
86+ P.many1 ((,) <$> parseGuard
87+ <*> (lexeme (indented *> P.char '=') *> parseValueWithWhereClause)
88+ ))
8989 <|> Right <$> (lexeme (indented *> P.char '=') *> parseValueWithWhereClause)
9090 return $ ValueDeclaration name Value binders value
9191 where
@@ -304,9 +304,9 @@ parseCase = Case <$> P.between (P.try (C.reserved "case")) (C.indented *> C.rese
304304parseCaseAlternative :: P.Parsec String ParseState CaseAlternative
305305parseCaseAlternative = CaseAlternative <$> (return <$> parseBinder)
306306 <*> (Left <$> (C.indented *>
307− C.mark (P.many1 ((,) <$> (C.same *> parseGuard)
308− <*> (lexeme (indented *> C.reservedOp "->") *> parseValue)
309− )))
307+ P.many1 ((,) <$> parseGuard
308+ <*> (lexeme (indented *> C.reservedOp "->") *> parseValue)
309+ ))
310310 <|> Right <$> (lexeme (indented *> C.reservedOp "->") *> parseValue))
311311 P.<?> "case alternative"
312312