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