Tweaked some parsing code main
authorNeil Smith <NeilNjae@users.noreply.github.com>
Tue, 14 Jun 2022 13:53:39 +0000 (14:53 +0100)
committerNeil Smith <NeilNjae@users.noreply.github.com>
Tue, 14 Jun 2022 13:53:39 +0000 (14:53 +0100)
advent21/Main.hs
advent22/Main.hs
advent24/Main.hs

index 01d23e7017fbf1db0370e9944f94728cc8905b36..3048dafe31fddacea739847b68029a8c7e7a4192 100644 (file)
@@ -113,7 +113,7 @@ mod1 a b = ((a - 1) `mod` b) + 1
 
 -- Parsing
 
-playerP = ("1" *> pure Player1) <|> ("2" *> pure Player2)
+playerP = (Player1 <$ "1") <|> (Player2 <$ "2")
 
 playerStateP = playerify <$> ("Player " *> playerP) <*> (" starting position: " *> decimal)
   where playerify name pos = (name, PlayerState {position = pos, score = 0})
index dc67b3f6cfc14e2826f6782ca8c2a620afa81d68..ca6bddd6a994ba4c4078d82ed612031118fa67b7 100644 (file)
@@ -99,7 +99,8 @@ cuboidP = cubify <$> (partiyP <* " ") <*> (boundsP `sepBy` ",")
                  }
         vecify [c1, c2, c3] = V3 c1 c2 c3
 
-partiyP = ("on" *> pure On) <|> ("off" *> pure Off)
+-- partiyP = ("on" *> pure On) <|> ("off" *> pure Off)
+partiyP = (On <$ "on") <|> (Off <$ "off")
 
 boundsP = (,) <$> (("x" <|> "y" <|> "z") *> "=" *> signed decimal) <*> (".." *> signed decimal)
 
index ae03fac557b1f58e00cf98ae73af067cd871aa34..e1836b22ca9cdf012344a6c3e60bd730d22c17d1 100644 (file)
@@ -217,10 +217,10 @@ eqlP = Eql <$> ("eql " *> registerP) <*> (" " *> argumentP)
 
 registerP, wP, xP, yP, zP :: Parser Register
 registerP = choice [wP, xP, yP, zP]
-wP = "w" *> pure W
-xP = "x" *> pure X
-yP = "y" *> pure Y
-zP = "z" *> pure Z
+wP = W <$ "w"
+xP = X <$ "x"
+yP = Y <$ "y"
+zP = Z <$ "z"
 
 argumentP :: Parser Argument
 argumentP = (Reg <$> registerP) <|> (Lit <$> signed decimal)