diff options
Diffstat (limited to 'Macexp.scm')
-rwxr-xr-x[-rw-r--r--] | Macexp.scm | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/Macexp.scm b/Macexp.scm index bb0e877..9b217a3 100644..100755 --- a/Macexp.scm +++ b/Macexp.scm @@ -182,7 +182,8 @@ (genname name) name) (genname (identifier->symbol name))))) - identity)) + (lambda (name env) + name))) ;; Local bindings -> (identifier pretty-name (usage-context ...)) ;; This will change. @@ -492,13 +493,15 @@ (cond ((identifier? form) (let ((expanded (@macroexpand1 form env))) - (cond ((eq? form expanded) form) + (cond ((eq? expanded form) + form) ((not expanded) (let* ((b (lookup form env)) (name (binding->name b))) (binding-add-context! b context) name)) - (else expanded)))) + (else + (expand expanded env context))))) ((number? form) form) ((char? form) form) ((boolean? form) form) @@ -541,6 +544,7 @@ (memq 'verbose opt))) ;; Debugging fodder. +#+(or) (begin (define (read* filename) (call-with-input-file filename |