git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge pull request #317 from garyb/negative-numbers
ca9adefPhil Freeman
examples/passing/SignedNumericLiterals.pursnew file+10
@@ -0,0 +1,10 @@
1+module Main where
2+
3+ p = +0.5
4+ q = +1
5+ x = -1
6+ y = -0.5
7+ z = 0.5
8+ w = 1
9+
10+ main = Debug.Trace.trace "Done"
src/Language/PureScript/Parser/Common.hs+8−2
@@ -227,8 +227,14 @@ parseQualified parser = part []
227-- Parse an integer or floating point value
227-- Parse an integer or floating point value
228--
228--
229integerOrFloat :: P.Parsec String u (Either Integer Double)
229integerOrFloat :: P.Parsec String u (Either Integer Double)
230−integerOrFloat = (Right <$> P.try (PT.float tokenParser) <|>
230+integerOrFloat = (Right <$> P.try (signed PT.float) <|>
231− Left <$> P.try (PT.natural tokenParser)) P.<?> "number"
231+ Left <$> P.try (signed PT.natural)) P.<?> "number"
232+ where
233+ signed p = do
234+ let sign = (P.char '-' >> return negate) <|> (optional (P.char '+') >> return id)
235+ f <- sign
236+ n <- p tokenParser
237+ return (f n)
232
238
233-- |
239-- |
234-- Parse an identifier or parenthesized operator
240-- Parse an identifier or parenthesized operator