git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Parse signed numeric literals
21032e9Gary Burgess
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