module Main where import GCLParser.Parser import GCLParser.GCLAlgebra import GCLLexer.Lexer import System.Environment import WLP.LogicalExpression import WLP.WLPCalculator main :: IO () main = do [fp] <- getArgs file <- readFile fp let tokens = lexer file let parsed = parseGCL tokens putStrLn (show parsed) case parsed of Left xs -> return () Right program -> do -- We gotta turn the AST into a logical formula based on the wlp let wlpFormula = foldProgram programToWLPAlgebra program putStrLn . show $ wlpFormula