parsing updates for 2022-22 in haskell
This commit is contained in:
parent
d00f52da65
commit
2d31ebe29e
2 changed files with 8 additions and 14 deletions
|
@ -20,12 +20,12 @@ type Parser = Parsec Void String
|
|||
|
||||
parseMapLine :: Parser Line
|
||||
parseMapLine = do
|
||||
line <- some (char '.' <|> char ' ' <|> char '#') <* char '\n'
|
||||
line <- some (char '.' <|> char ' ' <|> char '#') <* eol
|
||||
return $ V.generate (length line) (line !!)
|
||||
|
||||
parseMap :: Parser Map
|
||||
parseMap = do
|
||||
lines <- some parseMapLine <* char '\n'
|
||||
lines <- some parseMapLine <* eol
|
||||
return $ V.generate (length lines) (lines !!)
|
||||
|
||||
parseInstruction :: Parser Instruction
|
||||
|
@ -34,11 +34,8 @@ parseInstruction = (Move . read <$> some digitChar)
|
|||
<|> (char 'R' $> R)
|
||||
|
||||
parseInput' :: Parser Input
|
||||
parseInput' = do
|
||||
m <- parseMap
|
||||
i <- some parseInstruction
|
||||
void $ optional (char '\n') <* eof
|
||||
return $ Input m i
|
||||
parseInput' = Input <$> parseMap
|
||||
<*> some parseInstruction <* eol <* eof
|
||||
|
||||
parseInput :: String -> IO Input
|
||||
parseInput filename = do
|
||||
|
|
|
@ -21,12 +21,12 @@ type Parser = Parsec Void String
|
|||
|
||||
parseMapLine :: Parser Line
|
||||
parseMapLine = do
|
||||
line <- some (char '.' <|> char ' ' <|> char '#') <* char '\n'
|
||||
line <- some (char '.' <|> char ' ' <|> char '#') <* eol
|
||||
return $ V.generate (length line) (line !!)
|
||||
|
||||
parseMap :: Parser Map
|
||||
parseMap = do
|
||||
lines <- some parseMapLine <* char '\n'
|
||||
lines <- some parseMapLine <* eol
|
||||
return $ V.generate (length lines) (lines !!)
|
||||
|
||||
parseInstruction :: Parser Instruction
|
||||
|
@ -35,11 +35,8 @@ parseInstruction = (Move . read <$> some digitChar)
|
|||
<|> (char 'R' $> R)
|
||||
|
||||
parseInput' :: Parser Input
|
||||
parseInput' = do
|
||||
m <- parseMap
|
||||
i <- some parseInstruction
|
||||
void $ optional (char '\n') <* eof
|
||||
return $ Input m i
|
||||
parseInput' = Input <$> parseMap
|
||||
<*> some parseInstruction <* eol <* eof
|
||||
|
||||
parseInput :: String -> IO Input
|
||||
parseInput filename = do
|
||||
|
|
Loading…
Add table
Reference in a new issue