21 lines
530 B
Haskell
21 lines
530 B
Haskell
module Main where
|
|
|
|
import Logic.Parse (eof, mkInput, ParseError(..))
|
|
import Logic.Statement.Parse (stmt)
|
|
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
|
|
putStr $ serializeLatexTruthTable statement
|
|
where
|
|
fail err@(ParseError pos message) =
|
|
putStrLn $
|
|
"parse error at position "
|
|
<> show pos
|
|
<> ": "
|
|
<> message
|