@@ -34,7 +34,7 @@ import Data.Int (toNumber)
3434import Data.List (List (..))
3535import Data.List as List
3636import Data.List.NonEmpty (NonEmptyList )
37- import Data.Maybe (Maybe (..), maybe )
37+ import Data.Maybe (Maybe (..), fromMaybe , maybe )
3838import Data.Number (pow )
3939import Data.String (null , toLower )
4040import Data.String.CodePoints (codePointFromChar )
@@ -43,7 +43,7 @@ import Data.String.CodeUnits as SCU
4343import Data.String.Unicode as Unicode
4444import Data.Tuple (Tuple (..))
4545import Parsing (ParseState (..), ParserT , Position , consume , fail , getParserT , stateParserT )
46- import Parsing.Combinators (between , choice , notFollowedBy , option , sepBy , sepBy1 , skipMany , skipMany1 , try , tryRethrow , (<?>), (<??>))
46+ import Parsing.Combinators (between , choice , notFollowedBy , option , optionMaybe , sepBy , sepBy1 , skipMany , skipMany1 , try , tryRethrow , (<?>), (<??>))
4747import Parsing.String (char , satisfy , satisfyCodePoint , string )
4848import Parsing.String.Basic (alphaNum , digit , hexDigit , letter , noneOf , octDigit , oneOf , space , upper )
4949import Parsing.String.Basic as Basic
@@ -608,7 +608,10 @@ makeTokenParser (LanguageDef languageDef) =
608608
609609 -- floats
610610 floating :: ParserT String m Number
611- floating = decimal >>= fractExponent
611+ floating = do
612+ f <- fromMaybe identity <$> optionMaybe sign
613+ x <- decimal >>= fractExponent
614+ pure $ f x
612615
613616 natFloat :: ParserT String m (Either Int Number )
614617 natFloat = char ' 0' *> zeroNumFloat
0 commit comments