From 0882b902042baf5c0a3c31989777cc7a2c330e07 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Sun, 23 Sep 2018 18:23:27 -0400 Subject: [PATCH] Adding file temporarily for testing --- test-eval-compilation.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 test-eval-compilation.scm diff --git a/test-eval-compilation.scm b/test-eval-compilation.scm new file mode 100644 index 00000000..2a64e87d --- /dev/null +++ b/test-eval-compilation.scm @@ -0,0 +1,22 @@ +;; A temporary test file +(import (scheme base) (scheme write)) + +(define (analyze . opts) + (write 'test)) + +(define (analyze-if exp a-env rename-env local-renamed) + (let ((pproc (analyze (if-predicate exp) a-env rename-env local-renamed)) + (cproc (analyze (if-consequent exp) a-env rename-env local-renamed)) + (aproc (analyze (if-alternative exp) a-env rename-env local-renamed))) + (lambda (env) + (if (pproc env) + (cproc env) + (aproc env))))) +(define (if-predicate exp) (cadr exp)) +(define (if-consequent exp) (caddr exp)) +(define (if-alternative exp) + (if (not (null? (cdddr exp))) ;; TODO: add (not) support + (cadddr exp) + #f)) + +(write (analyze-if 'a 'b 'c 'd))