projects
/
advent-of-code-21.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tweaked some parsing code
[advent-of-code-21.git]
/
advent24
/
Main.hs
diff --git
a/advent24/Main.hs
b/advent24/Main.hs
index 2b85e46eebd9172b6f7d9d94c4b9e265d86e8a4b..e1836b22ca9cdf012344a6c3e60bd730d22c17d1 100644
(file)
--- a/
advent24/Main.hs
+++ b/
advent24/Main.hs
@@
-1,15
+1,15
@@
--- Writeup at https://work.njae.me.uk/202
1/12/29
/advent-of-code-2021-day-24/
+-- Writeup at https://work.njae.me.uk/202
2/04/23
/advent-of-code-2021-day-24/
-- Based on ideas by Daniel Lin,
-- taken from https://github.com/ephemient/aoc2021/blob/main/hs/src/Day24.hs
-- 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 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
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]
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)
argumentP :: Parser Argument
argumentP = (Reg <$> registerP) <|> (Lit <$> signed decimal)