Redone day 7 with the Graphite graph library
[advent-of-code-20.git] / advent19 / src / advent19.hs
index 01e872d01e998c41ec3778ff031b6e3236ba2e06..a1fd6ccd8b34d3a4211750fa2d2f5010d6882795 100644 (file)
@@ -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