diff --git a/scheme/cyclone/macros.sld b/scheme/cyclone/macros.sld index 58511081..b08c9efb 100644 --- a/scheme/cyclone/macros.sld +++ b/scheme/cyclone/macros.sld @@ -67,7 +67,7 @@ ;; Assume evaluated macro (newline) (display "/* ") -(display (list 'evaluating-macro macro exp)) +(display (list 'evaluating-macro macro exp env-vars env-vals)) (display " */ ") (eval (list diff --git a/scheme/eval.sld b/scheme/eval.sld index eb49d750..0ce7a119 100644 --- a/scheme/eval.sld +++ b/scheme/eval.sld @@ -444,10 +444,6 @@ (loop (car procs) (cdr procs)))) (define (pre-analyze-application exp a-env) -(newline) -(display "/* ") -(display (list 'pre-analyze exp)) -(display " */ ") ;; Notes: ;; ;; look up symbol in env, and expand if it is a macro @@ -469,13 +465,28 @@ (expand (lambda (macro-op) (newline) (display "/* ") -(display (list 'expand macro-op (operands exp))) +(display (list 'expand macro-op (operands exp) +(car exp) +(macro? var) +(compound-macro? var) + (macro? macro-op) + (Cyc-get-cvar (cadr var)) ;; this is what is analyzed +(compound-macro? op) +)) (display " */ ") (analyze (apply macro-op - (list (cons macro-op (operands exp)) + (list (cons (car exp) (operands exp)) (lambda (sym) sym) (lambda (a b) (eq? a b)))) a-env)))) +(newline) +(display "/* ") +(display (list 'pre-analyze +(macro? var) +(compound-macro? var) +(compound-macro? op) +exp)) +(display " */ ") (cond ;; compiled macro ((macro? var)