Tweaked some parsing code
[advent-of-code-21.git] / advent24 / Main.hs
index b1ca376eb7238e21fa4c451a9f6b087ad46e26c9..e1836b22ca9cdf012344a6c3e60bd730d22c17d1 100644 (file)
@@ -2,14 +2,14 @@
 -- Based on ideas by Daniel Lin, 
 --   taken from https://github.com/ephemient/aoc2021/blob/main/hs/src/Day24.hs
 
-import Debug.Trace
+-- import Debug.Trace
 
 import Data.Text (Text)
 import qualified Data.Text.IO as TIO
 import Data.Attoparsec.Text -- hiding (take, takeWhile)
 import Control.Applicative
-import qualified Data.Map as M
-import Data.Map ((!))
+import qualified Data.Map.Strict as M
+import Data.Map.Strict ((!))
 import Data.List
 import Control.Monad
 import Data.Maybe
@@ -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)