module Main where import Logic.Parse (eof, mkInput, ParseError(..)) import Logic.Statement.Parse (stmt) import Logic.Statement.Eval (bucket) import Logic.Statement.Serialize (serializeLatexTruthTable) main :: IO () main = do line <- getLine case eof stmt $ mkInput line of Left err -> fail err Right statement -> do putStrLn $ show statement putStrLn $ show $ bucket statement putStr $ serializeLatexTruthTable statement where fail (ParseError pos message) = putStrLn $ "parse error at position " <> show pos <> ": " <> message