diff options
author | tomsmeding <tom.smeding@gmail.com> | 2017-12-09 10:48:58 +0100 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2017-12-09 10:48:58 +0100 |
commit | 897fb17dd6a045a7056e6d6babbbb24748f698f6 (patch) | |
tree | 65f0659483ba2239d07e30b3547379625f5b5cae /test.hs |
Initial
Diffstat (limited to 'test.hs')
-rw-r--r-- | test.hs | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -0,0 +1,16 @@ +import System.Exit + +import Compiler +import Optimiser +import Parser +import VM + +main :: IO () +main = do + -- let Right p = parseProgram "(print (lambda (n) ((lambda (helper) (if (<= n 0) 0 (if (<= n 2) 1 (helper helper 1 1 (- n 2))))) (lambda (recur a b n) (if (<= n 0) b (recur recur b (+ a b) (- n 1)))))))" + -- let Right p = parseProgram "(print ((lambda (n) ((lambda (helper) (if (<= n 0) 0 (if (<= n 2) 1 (helper helper 1 1 (- n 2))))) (lambda (recur a b n) (if (<= n 0) b (recur recur b (+ a b) (- n 1)))))) 6))" + let Right p = parseProgram "(do (define f (lambda (n) (+ n 1))) (print (f 10)))" + prog <- either die return (compileProgram p) + let opt = optimise prog + print opt + vmRun opt |