diff options
author | John MacFarlane <jgm@berkeley.edu> | 2018-08-10 15:56:43 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2018-08-10 15:56:43 -0700 |
commit | 65aea82a04f6147a5ab952b88f7f16b528bc9c50 (patch) | |
tree | 9b10b99521d2a72247d78f3b53667016eb9c6bf7 /src/Text/Pandoc | |
parent | 6003c596d7b348b29dd4f452f504bfd717634fa2 (diff) | |
download | pandoc-65aea82a04f6147a5ab952b88f7f16b528bc9c50.tar.gz |
Avoid non-exhaustive pattern match.
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r-- | src/Text/Pandoc/Parsing.hs | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs index 79022d6f1..cab18b645 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -514,22 +514,16 @@ charsInBalanced open close parser = try $ do -- Auxiliary functions for romanNumeral: -lowercaseRomanDigits :: [Char] -lowercaseRomanDigits = ['i','v','x','l','c','d','m'] - -uppercaseRomanDigits :: [Char] -uppercaseRomanDigits = map toUpper lowercaseRomanDigits - -- | Parses a roman numeral (uppercase or lowercase), returns number. romanNumeral :: Stream s m Char => Bool -- ^ Uppercase if true -> ParserT s st m Int romanNumeral upperCase = do - let romanDigits = if upperCase - then uppercaseRomanDigits - else lowercaseRomanDigits - lookAhead $ oneOf romanDigits let [one, five, ten, fifty, hundred, fivehundred, thousand] = - map char romanDigits + map char $ + if upperCase + then ['I','V','X','L','C','D','M'] + else ['i','v','x','l','c','d','m'] + lookAhead $ choice [one, five, ten, fifty, hundred, fivehundred, thousand] thousands <- ((1000 *) . length) <$> many thousand ninehundreds <- option 0 $ try $ hundred >> thousand >> return 900 fivehundreds <- option 0 $ 500 <$ fivehundred |