X-Git-Url: https://git.njae.me.uk/?p=advent-of-code-20.git;a=blobdiff_plain;f=advent19%2Fsrc%2Fadvent19.hs;h=a1fd6ccd8b34d3a4211750fa2d2f5010d6882795;hp=01e872d01e998c41ec3778ff031b6e3236ba2e06;hb=refs%2Fheads%2Fmain;hpb=cc6239892b5dea639d6787a53bffef90a5cf2841 diff --git a/advent19/src/advent19.hs b/advent19/src/advent19.hs index 01e872d..a1fd6cc 100644 --- a/advent19/src/advent19.hs +++ b/advent19/src/advent19.hs @@ -12,9 +12,7 @@ import Data.Either data Rule = Letter Char - -- | Then2 Rule Rule - -- | Then3 Rule Rule Rule - | Then [Rule] + | Then [Rule] | Or Rule Rule | See Int deriving (Show, Eq) @@ -29,7 +27,6 @@ main = let (rules, messages) = parse inputP text print $ part1 rules messages print $ part2 rules messages - -- print $ part2 text setup fname = do text <- readFile fname @@ -66,6 +63,7 @@ makeParser m (See i) = makeParser m (m!i) -- Parse the input +inputP = (,) <$> rulesP <* blankLines <*> messagesP rulesP = M.fromList <$> ruleP `sepBy` endOfLine ruleP = (,) <$> decimal <* (string ": ") <*> ruleBodyP @@ -76,9 +74,6 @@ orRuleP = Or <$> thenRuleP <* (string " | ") <*> thenRuleP thenRuleP = Then <$> seeRuleP `sepBy` (string " ") seeRuleP = See <$> decimal - -inputP = (,) <$> rulesP <* blankLines <*> messagesP - messagesP = (munch1 isAlpha) `sepBy` endOfLine blankLines = skipMany1 endOfLine