From 18eed21246c34afa0888ecb90f183144e4c2c5bc Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Thu, 30 Nov 2017 19:02:15 -0500 Subject: [PATCH] WIP, added debugging --- scheme/eval.sld | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/scheme/eval.sld b/scheme/eval.sld index 8f70f2ab..f2f16aee 100644 --- a/scheme/eval.sld +++ b/scheme/eval.sld @@ -401,9 +401,9 @@ ((and (syntax? exp) (not (null? (cdr exp)))) (analyze-syntax exp env)) - ;;((and (tagged-list? 'let-syntax exp) - ;; (not (null? (cdr exp)))) - ;; (analyze-let-syntax exp env)) + ((and (tagged-list? 'let-syntax exp) + (not (null? (cdr exp)))) + (analyze-let-syntax exp env)) ((and (if? exp) (not (null? (cdr exp)))) (analyze-if exp env)) @@ -451,10 +451,15 @@ 'ok))) (define (analyze-let-syntax exp a-env) - ;; TODO: probably just create a fresh env for renames - ;; TODO: expand, do we need to clean as well? - ;; TODO: run results back through analyze: (analyze (expand env? rename-env? -) + (let* ((rename-env (env:extend-environment '() '() '())) + (expanded (expand exp (macro:get-env) rename-env)) + ) + ;; TODO: probably just create a fresh env for renames + ;; TODO: expand, do we need to clean as well? + ;; TODO: run results back through analyze: (analyze (expand env? rename-env? +(write `(DEBUG ,expanded)) +(newline) + (analyze expanded a-env))) (define (analyze-syntax exp a-env) (let ((var (cadr exp))) @@ -841,7 +846,8 @@ (current-error-port)) (newline (current-error-port))) ;(log exp) - ;(trace:error `(expand ,exp)) +(write `(expand ,exp)) +(newline) (cond ((const? exp) exp) ((prim? exp) exp)