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 lFlags = Set.unions <$> some lFlag
lAddressRange :: Parser AddressRange lAddressRange :: Parser AddressRange
lAddressRange = try twoAddresses <|> oneAddress lAddressRange = do
where firstAddress <- lAddress
twoAddresses = range <$> lAddress <*> (symbol "-" *> lAddress) secondAddress <- (symbol "-" *> lAddress) <|> pure firstAddress
oneAddress = (\a -> range a a) <$> lAddress -- More fun to read than the do syntax :) void $ symbol ":"
pure $ range firstAddress secondAddress
lLine :: Parser (AddressRange, Set.Set Flag) lLine :: Parser (AddressRange, Set.Set Flag)
lLine = do lLine = do