From d6db284c22dce2e932378f7705ad5d496b7a66a2 Mon Sep 17 00:00:00 2001 From: Joscha Date: Fri, 15 Nov 2019 19:10:07 +0000 Subject: [PATCH] Improve address range parsing error messages --- src/Mima/Parse/FlagFile.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Mima/Parse/FlagFile.hs b/src/Mima/Parse/FlagFile.hs index 05dd1c7..b221225 100644 --- a/src/Mima/Parse/FlagFile.hs +++ b/src/Mima/Parse/FlagFile.hs @@ -31,10 +31,11 @@ lFlags :: Parser (Set.Set Flag) lFlags = Set.unions <$> some lFlag lAddressRange :: Parser AddressRange -lAddressRange = try twoAddresses <|> oneAddress - where - twoAddresses = range <$> lAddress <*> (symbol "-" *> lAddress) - oneAddress = (\a -> range a a) <$> lAddress -- More fun to read than the do syntax :) +lAddressRange = do + firstAddress <- lAddress + secondAddress <- (symbol "-" *> lAddress) <|> pure firstAddress + void $ symbol ":" + pure $ range firstAddress secondAddress lLine :: Parser (AddressRange, Set.Set Flag) lLine = do