From d2019bb2841c49540e5bdf065545ba8e943f59a3 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Fri, 16 Sep 2016 19:19:25 -0400 Subject: [PATCH] WIP --- cyclone.scm | 4 ++++ scheme/cyclone/macros.sld | 9 +++++++-- scheme/cyclone/util.sld | 4 ++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cyclone.scm b/cyclone.scm index 3548c07e..6cbda0f5 100644 --- a/cyclone.scm +++ b/cyclone.scm @@ -147,6 +147,10 @@ (error `(Unhandled expansion ,expanded)))))))) (trace:info "---------------- after macro expansion:") (trace:info input-program) ;pretty-print +; TODO: + ;(set! input-program (macro:cleanup input-program)) + ;(trace:info "---------------- after macro expansion cleanup:") + ;(trace:info input-program) ;pretty-print ;; Separate global definitions from the rest of the top-level code (set! input-program diff --git a/scheme/cyclone/macros.sld b/scheme/cyclone/macros.sld index ce26fed0..8d3f335a 100644 --- a/scheme/cyclone/macros.sld +++ b/scheme/cyclone/macros.sld @@ -101,6 +101,11 @@ (define (macro:cleanup expr) (define (clean expr bv) ;; Bound variables +(newline) +(display "/* macro:cleanup->clean\n ") +(write expr) +(newline) +(display "*/ ") (cond ((const? expr) expr) ;((prim? expr) expr) @@ -141,8 +146,8 @@ (map (lambda (e) (clean e bv)) expr)) (else - (error "macro cleanup unexpected expression: " expr))) - (clean expr '()))) + (error "macro cleanup unexpected expression: " expr)))) + (clean expr '())) ; TODO: get macro name, transformer ; TODO: let-syntax forms diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index 8b7e6bb9..ac14c1f3 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -605,8 +605,8 @@ (let ((renamed (gensym identifier))) (env:define-variable! renamed identifier use-env) ;(env:define-variable! renamed val mac-env) -(Cyc-write `(ER rename ,identifier to ,renamed) (current-output-port)) -(Cyc-display "\n" (current-output-port)) +;(Cyc-write `(ER rename ,identifier to ,renamed) (current-output-port)) +;(Cyc-display "\n" (current-output-port)) renamed) ;identifier ;; TESTING! )