@@ -58,7 +58,7 @@ doSInumlist = do
58 text ", & " <> last xs
58 text ", & " <> last xs
60parseNum :: Parser Text () Inlines
60parseNum :: Parser Text () Inlines
61−parseNum = mconcat <$> many parseNumPart
61+parseNum = (mconcat <$> many parseNumPart) <* eof
63parseNumPart :: Parser Text () Inlines
63parseNumPart :: Parser Text () Inlines
64parseNumPart =
64parseNumPart =
@@ -71,7 +71,9 @@ parseNumPart =
71 parseSpace
71 parseSpace
73 parseDecimalNum = do
73 parseDecimalNum = do
74+ pref <- option mempty $ (mempty <$ char '+') <|> ("-" <$ char '-')
75+ basenum <- (pref <>) . T.pack
74− basenum <- T.pack <$> many1 (satisfy (\c -> isDigit c || c == '.'))
76+ <$> many1 (satisfy (\c -> isDigit c || c == '.'))
75 uncertainty <- option mempty $ T.pack <$> parseParens
77 uncertainty <- option mempty $ T.pack <$> parseParens
76 if T.null uncertainty
78 if T.null uncertainty
77 then return $ str basenum
79 then return $ str basenum