From c72d831021051afe144907d6cb594d8d6e0281aa Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sun, 6 Jul 2014 01:41:37 -0700 Subject: 1 --- mu.arc | 22 +++++++++++++++++----- mu.arc.t | 6 ++++-- x.mu | 10 ++++++---- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/mu.arc b/mu.arc index 3c02fcec..6990d35c 100644 --- a/mu.arc +++ b/mu.arc @@ -1,5 +1,12 @@ -(= types* (table)) -(= memory* (table)) +(def clear () + (= types* (table)) + (= memory* (table)) + (= function* (table))) +(clear) + +(def add-fns (fns) + (each (name . body) fns + (= function*.name body))) (def run (instrs) (each instr instrs @@ -12,9 +19,14 @@ add (= memory*.oarg1 (+ memory*.arg1 memory*.arg2)) + ; else + (prn "aaa") ; user-defined functions go here )))) -(each file (cut argv 1) -;? (prn file) - (run readfile.file) +(awhen cdr.argv + (each file it + ;? (prn file) + (add-fns readfile.file)) + ;? (prn function*) + (run function*!main) (prn memory*)) diff --git a/mu.arc.t b/mu.arc.t index 72cbad74..85dd1cc5 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -1,8 +1,10 @@ (load "mu.arc") -(run '( +(clear) +(add-fns '((test1 (1 <- loadi 1) (2 <- loadi 3) - (3 <- add 1 2))) + (3 <- add 1 2)))) +(run function*!test1) (if (~iso memory* (obj 1 1 2 3 3 4)) (prn "F - load and add instructions work")) diff --git a/x.mu b/x.mu index 06b62c25..6fbfaec0 100644 --- a/x.mu +++ b/x.mu @@ -1,4 +1,6 @@ -(1 <- loadi 1) -(2 <- loadi 3) -(3 <- add 1 2) -(prn 3) +(main + (1 <- loadi 1) + (2 <- loadi 3) + (3 <- add 1 2) + (x <- prn a) +) -- cgit 1.4.1-2-gfad0