Improve address range parsing error messages

This commit is contained in:
Joscha 2019-11-15 19:10:07 +00:00
parent 6dbaadda6a
commit d6db284c22

View file

@ -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