aboutsummaryrefslogtreecommitdiffhomepage
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/Main.hs27
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>"