@@ -34,7 +34,7 @@ import Data.Int (toNumber)
34
34
import Data.List (List (..))
35
35
import Data.List as List
36
36
import Data.List.NonEmpty (NonEmptyList )
37
- import Data.Maybe (Maybe (..), maybe )
37
+ import Data.Maybe (Maybe (..), fromMaybe , maybe )
38
38
import Data.Number (pow )
39
39
import Data.String (null , toLower )
40
40
import Data.String.CodePoints (codePointFromChar )
@@ -43,7 +43,7 @@ import Data.String.CodeUnits as SCU
43
43
import Data.String.Unicode as Unicode
44
44
import Data.Tuple (Tuple (..))
45
45
import 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 , (<?>), (<??>))
47
47
import Parsing.String (char , satisfy , satisfyCodePoint , string )
48
48
import Parsing.String.Basic (alphaNum , digit , hexDigit , letter , noneOf , octDigit , oneOf , space , upper )
49
49
import Parsing.String.Basic as Basic
@@ -608,7 +608,10 @@ makeTokenParser (LanguageDef languageDef) =
608
608
609
609
-- floats
610
610
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
612
615
613
616
natFloat :: ParserT String m (Either Int Number )
614
617
natFloat = char ' 0' *> zeroNumFloat
0 commit comments