From 53f1b00552be4057af7c0ef19d708bb2bbf86952 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Sun, 3 May 2009 01:21:03 +0200 Subject: PLT: simple macroexpand. --- scheme/plt/geiser.ss | 2 ++ scheme/plt/geiser/eval.ss | 7 +++++++ 2 files changed, 9 insertions(+) (limited to 'scheme') diff --git a/scheme/plt/geiser.ss b/scheme/plt/geiser.ss index dd6b7c3..bbb083d 100644 --- a/scheme/plt/geiser.ss +++ b/scheme/plt/geiser.ss @@ -29,6 +29,7 @@ geiser/compile geiser/load-file geiser/compile-file + geiser/macroexpand geiser/completions geiser/symbol-location geiser/autodoc @@ -44,6 +45,7 @@ (define (geiser/autodoc . x) #f) (define geiser/completions completions) (define geiser/symbol-location symbol-location) + (define geiser/macroexpand macroexpand) (define (geiser/make-repl-reader) (compose (make-repl-reader (current-prompt-read)) current-namespace))) diff --git a/scheme/plt/geiser/eval.ss b/scheme/plt/geiser/eval.ss index 0490c1e..2345e14 100644 --- a/scheme/plt/geiser/eval.ss +++ b/scheme/plt/geiser/eval.ss @@ -30,6 +30,7 @@ compile-in load-file compile-file + macroexpand make-repl-reader) (require scheme/enter srfi/13) @@ -115,6 +116,12 @@ (define compile-file load-file) +(define (macroexpand form . all) + (let ((all (and (not (null? all)) (car all)))) + (with-output-to-string + (lambda () + (pretty-print (syntax->datum ((if all expand expand-once) form))))))) + (define (make-repl-reader builtin-reader) (lambda (ns) (last-namespace ns) -- cgit v1.2.3