working on the evaluator

This commit is contained in:
Danny Yoo 2011-03-09 13:39:41 -05:00
parent 5f42959da5
commit 55a7de098f

View File

@ -27,16 +27,25 @@
(define e (make-evaluate (define -E (make-evaluate
(lambda (a-statement op) (lambda (a-statement+inspector op)
(let ([code (let* ([a-statement (car a-statement+inspector)]
[inspector (cdr a-statement+inspector)]
[code
(string-append (string-append
"(function() { " "(function() { "
runtime runtime
"return function(success, fail, params){" (assemble-statement a-statement) "success(String(MACHINE.val)); };" "return function(success, fail, params){" (assemble-statement a-statement)
(format "success(String(~a)); };" inspector)
"});")]) "});")])
(display code op))))) (display code op)))))
(define (E a-statement (inspector "MACHINE.val"))
(evaluated-value (-E (cons a-statement inspector))))
(test (evaluated-value (e (make-AssignImmediateStatement 'val (make-Const 42))))
(test (E (make-AssignImmediateStatement 'val (make-Const 42)))
"42") "42")
(test (E (make-AssignImmediateStatement 'val (make-Const "Danny")))
"Danny")