Improve parsers of 2020-02

This commit is contained in:
Julien Dessaux 2023-03-09 23:14:48 +01:00
parent 316a48b6a8
commit 8bc73de30d
Signed by: adyxax
GPG key ID: F92E51B86E07177E
2 changed files with 4 additions and 10 deletions

View file

@ -25,15 +25,12 @@ parseRule = do
void (char ' ') void (char ' ')
e <- anySingle e <- anySingle
void (string ": ") void (string ": ")
pass <- (many letterChar) pass <- (some letterChar)
void (char '\n') void (char '\n')
return Rule { lower = read l, higher = read h, elt = e, pass = pass } return Rule { lower = read l, higher = read h, elt = e, pass = pass }
parseRules :: Parser [Rule] parseRules :: Parser [Rule]
parseRules = do parseRules = some parseRule <* eof
rules <- many parseRule
eof
return rules
parseInput :: String -> IO [Rule] parseInput :: String -> IO [Rule]
parseInput filename = do parseInput filename = do

View file

@ -25,15 +25,12 @@ parseRule = do
void (char ' ') void (char ' ')
e <- anySingle e <- anySingle
void (string ": ") void (string ": ")
pass <- (many letterChar) pass <- (some letterChar)
void (char '\n') void (char '\n')
return Rule { lower = (read l) - 1, higher = (read h) - 1, elt = e, pass = pass } return Rule { lower = (read l) - 1, higher = (read h) - 1, elt = e, pass = pass }
parseRules :: Parser [Rule] parseRules :: Parser [Rule]
parseRules = do parseRules = some parseRule <* eof
rules <- many parseRule
eof
return rules
parseInput :: String -> IO [Rule] parseInput :: String -> IO [Rule]
parseInput filename = do parseInput filename = do