X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=advent20%2FMain.hs;fp=advent20%2FMain.hs;h=c3a9cf3e7bd858f19515eb52e0548dcafe03bbaa;hb=a7b02636b8045a73a4dff090c1b932cfa1afd9bd;hp=931c8673e922a0983a992ea81d91167d0bb3605b;hpb=bc689ec22856749b96406382eac0345f2f71cb40;p=advent-of-code-23.git diff --git a/advent20/Main.hs b/advent20/Main.hs index 931c867..c3a9cf3 100644 --- a/advent20/Main.hs +++ b/advent20/Main.hs @@ -9,7 +9,7 @@ import Data.Attoparsec.Text hiding (take) import Control.Applicative import Data.List import qualified Data.Map.Strict as M -import Data.Map ((!)) +import Data.Map.Strict ((!)) import qualified Data.Sequence as Q import Data.Sequence ((|>), (><), Seq( (:|>), (:<|) ) ) import Control.Lens hiding (Level) @@ -179,13 +179,13 @@ moduleP, broadcastP, flipFlopP, conjunctionP :: Parser (Module, Name) nameP :: Parser Name configLinesP = configLineP `sepBy` endOfLine -configLineP = (,) <$> (moduleP <* " -> ") <*> (nameP `sepBy` ", ") +configLineP = (,) <$> moduleP <* " -> " <*> nameP `sepBy` ", " moduleP = broadcastP <|> flipFlopP <|> conjunctionP broadcastP = (Broadcast, "broadcaster") <$ "broadcaster" -flipFlopP = (FlipFlop False, ) <$> ("%" *> nameP) -conjunctionP = (Conjunction M.empty, ) <$> ("&" *> nameP) +flipFlopP = (FlipFlop False, ) <$ "%" <*> nameP +conjunctionP = (Conjunction M.empty, ) <$ "&" <*> nameP -- namesP = nameP `sepBy` ", " nameP = many1 letter