From e1774107060324bbf834968882093c461fada34e Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 2 Sep 2015 01:41:30 -0400 Subject: [PATCH] Cut-over to expand2 --- cyclone.scm | 6 +++--- scheme/cyclone/macros.sld | 12 ++++-------- scheme/cyclone/transforms.sld | 4 ++-- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/cyclone.scm b/cyclone.scm index 5e5aa6c1..91475e0f 100644 --- a/cyclone.scm +++ b/cyclone.scm @@ -102,7 +102,7 @@ ;(set! input-program (add-libs input-program)) ;; JAE DEBUG code, remove (or refactor) once working -(trace:info "JAE DEBUG - compiled macros") +;(trace:info "JAE DEBUG - compiled macros") ;(trace:info ; (filter ; (lambda (v) @@ -124,8 +124,8 @@ *defined-macros*))) (macro:load-env! *defined-macros* (create-environment '() '())) ;TODO: try this again, make sure macro is loaded: -(trace:info (list 'defined-macros *defined-macros*)) -(trace:info (list 'macro-env (macro:get-env))) +;(trace:info (list 'defined-macros *defined-macros*)) +;(trace:info (list 'macro-env (macro:get-env))) ;; END JAE DEBUG (set! input-program (expand input-program (macro:get-env))) diff --git a/scheme/cyclone/macros.sld b/scheme/cyclone/macros.sld index 18b0af94..193d53f5 100644 --- a/scheme/cyclone/macros.sld +++ b/scheme/cyclone/macros.sld @@ -87,10 +87,10 @@ (define (macro:expand2 exp macro mac-env) (let* ((compiled-macro? (or (macro? (Cyc-get-cvar (cadr macro))) (procedure? (cadr macro))))) - (newline) - (display "/* ") - (display (list 'macro:expand2 exp macro compiled-macro?)) - (display "*/ ") + ;(newline) + ;(display "/* ") + ;(display (list 'macro:expand2 exp macro compiled-macro?)) + ;(display "*/ ") ;; Invoke ER macro (cond @@ -108,10 +108,6 @@ (list 'quote exp) (Cyc-er-rename mac-env) Cyc-er-compare?) -; TODO: this is broken because mac-env only contains macros, but -; we need global-env to handle functions (like null?, caddr, etc). -; not sure what the answer is yet... might need to base macro-env -; on global-env, and ensure symbol is a macro before expanding mac-env))))) ; TODO: get macro name, transformer diff --git a/scheme/cyclone/transforms.sld b/scheme/cyclone/transforms.sld index 478f0746..5ba06f97 100644 --- a/scheme/cyclone/transforms.sld +++ b/scheme/cyclone/transforms.sld @@ -793,8 +793,8 @@ (let ((val (env:lookup (car exp) env #f))) (if (tagged-list? 'macro val) (expand ; Could expand into another macro - (macro:expand 'val exp env *defined-macros*) - ;(macro:expand2 exp val env) + ;(macro:expand 'val exp env *defined-macros*) + (macro:expand2 exp val env) env) (map (lambda (expr) (expand expr env))