diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/Main.hs | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/app/Main.hs b/app/Main.hs index 6e1c43f..60a44f0 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -4,16 +4,31 @@ module Main import Lib import System.Environment ( getArgs ) +import Term +import Transpile -main :: IO () --- main = mapM_ (bruteForce "...") [1 .. 10] -main = do - args <- getArgs - file <- readFile (head args) +transpile :: String -> IO () +transpile path = do + file <- readFile path + let term = fromBLC file + let ski = transpileSKI term + let birb = transpileBirb ski + putStrLn $ concatMap show birb + +reduce :: String -> IO () +reduce path = do + file <- readFile path let termified = fromBirbs file let rebirbified = fromTerm termified putStrLn $ "input: " ++ rebirbified normalBirbs <- nf termified let retermified = fromTerm normalBirbs putStrLn $ "reduced: " ++ retermified - return () + +main :: IO () +main = do + args <- getArgs + case args of + ["transpile", path] -> transpile path + ["reduce" , path] -> reduce path + _ -> putStrLn "Usage: birb [transpile|reduce] <file>" |