lib: add some strictness annotations to the parser
This was done to reverse minor performance regressions introduced in the previous commits
This commit is contained in:
parent
d79e707485
commit
c3f5659d75
@ -386,14 +386,14 @@ datep' mYear = do
|
|||||||
|
|
||||||
case fromGregorianValid year month day of
|
case fromGregorianValid year month day of
|
||||||
Nothing -> fail $ "well-formed but invalid date: " ++ dateStr
|
Nothing -> fail $ "well-formed but invalid date: " ++ dateStr
|
||||||
Just date -> pure date
|
Just date -> pure $! date
|
||||||
|
|
||||||
partialDate :: Maybe Year -> Integer -> Char -> Int -> TextParser m Day
|
partialDate :: Maybe Year -> Integer -> Char -> Int -> TextParser m Day
|
||||||
partialDate mYear month sep day = case mYear of
|
partialDate mYear month sep day = case mYear of
|
||||||
Just year ->
|
Just year ->
|
||||||
case fromGregorianValid year (fromIntegral month) day of
|
case fromGregorianValid year (fromIntegral month) day of
|
||||||
Nothing -> fail $ "well-formed but invalid date: " ++ dateStr
|
Nothing -> fail $ "well-formed but invalid date: " ++ dateStr
|
||||||
Just date -> pure date
|
Just date -> pure $! date
|
||||||
where dateStr = show year ++ [sep] ++ show month ++ [sep] ++ show day
|
where dateStr = show year ++ [sep] ++ show month ++ [sep] ++ show day
|
||||||
|
|
||||||
Nothing -> fail $
|
Nothing -> fail $
|
||||||
@ -446,7 +446,7 @@ modifiedaccountnamep = do
|
|||||||
parent <- getParentAccount
|
parent <- getParentAccount
|
||||||
aliases <- getAccountAliases
|
aliases <- getAccountAliases
|
||||||
a <- lift accountnamep
|
a <- lift accountnamep
|
||||||
return $
|
return $!
|
||||||
accountNameApplyAliases aliases $
|
accountNameApplyAliases aliases $
|
||||||
-- XXX accountNameApplyAliasesMemo ? doesn't seem to make a difference
|
-- XXX accountNameApplyAliasesMemo ? doesn't seem to make a difference
|
||||||
joinAccountNames parent
|
joinAccountNames parent
|
||||||
@ -461,7 +461,7 @@ accountnamep :: TextParser m AccountName
|
|||||||
accountnamep = do
|
accountnamep = do
|
||||||
firstPart <- part
|
firstPart <- part
|
||||||
otherParts <- many $ try $ singleSpace *> part
|
otherParts <- many $ try $ singleSpace *> part
|
||||||
pure $ T.unwords $ firstPart : otherParts
|
pure $! T.unwords $ firstPart : otherParts
|
||||||
where
|
where
|
||||||
part = takeWhile1P Nothing (not . isSpace)
|
part = takeWhile1P Nothing (not . isSpace)
|
||||||
singleSpace = void spacenonewline *> notFollowedBy spacenonewline
|
singleSpace = void spacenonewline *> notFollowedBy spacenonewline
|
||||||
@ -822,8 +822,8 @@ isDigitSeparatorChar c = isDecimalPointChar c || c == ' '
|
|||||||
|
|
||||||
|
|
||||||
data DigitGrp = DigitGrp {
|
data DigitGrp = DigitGrp {
|
||||||
digitGroupLength :: Int,
|
digitGroupLength :: !Int,
|
||||||
digitGroupNumber :: Integer
|
digitGroupNumber :: !Integer
|
||||||
} deriving (Eq)
|
} deriving (Eq)
|
||||||
|
|
||||||
instance Show DigitGrp where
|
instance Show DigitGrp where
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user