git.iko.soy/typeable/pandoc
on master help sign in
Avoid non-exhaustive pattern match.
commit65aea82a04f6147a5ab952b88f7f16b528bc9c50 authorJohn MacFarlane <jgm@berkeley.edu> dateFri 10 Aug 2018, 15:56 (8 years ago) parent6003c59
1 file changed+5−11
src/Text/Pandoc/Parsing.hs+5−11
src/Text/Pandoc/Parsing.hs+5−11
@@ -514,22 +514,16 @@ charsInBalanced open close parser = try $ do
514514
515515-- Auxiliary functions for romanNumeral:
516516
517−lowercaseRomanDigits :: [Char]
518−lowercaseRomanDigits = ['i','v','x','l','c','d','m']
519−
520−uppercaseRomanDigits :: [Char]
521−uppercaseRomanDigits = map toUpper lowercaseRomanDigits
522−
523517-- | Parses a roman numeral (uppercase or lowercase), returns number.
524518romanNumeral :: Stream s m Char => Bool -- ^ Uppercase if true
525519 -> ParserT s st m Int
526520romanNumeral upperCase = do
527− let romanDigits = if upperCase
528− then uppercaseRomanDigits
529− else lowercaseRomanDigits
530− lookAhead $ oneOf romanDigits
531521 let [one, five, ten, fifty, hundred, fivehundred, thousand] =
532− map char romanDigits
522+ map char $
523+ if upperCase
524+ then ['I','V','X','L','C','D','M']
525+ else ['i','v','x','l','c','d','m']
526+ lookAhead $ choice [one, five, ten, fifty, hundred, fivehundred, thousand]
533527 thousands <- ((1000 *) . length) <$> many thousand
534528 ninehundreds <- option 0 $ try $ hundred >> thousand >> return 900
535529 fivehundreds <- option 0 $ 500 <$ fivehundred