logic/Main.hs
2025-08-08 04:57:54 +00:00

23 lines
604 B
Haskell

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