From 4097793f8a3a75c411fa49aeb49d35ce06b2f98c Mon Sep 17 00:00:00 2001 From: Da Shen Date: Sun, 21 Sep 2025 18:48:51 +0800 Subject: [PATCH] wip --- goldfish/liii/pretty-print.scm | 12 ++++++++++-- tests/goldfish/liii/pretty-print-test.scm | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/goldfish/liii/pretty-print.scm b/goldfish/liii/pretty-print.scm index e4ea5a6b..d169e1e7 100644 --- a/goldfish/liii/pretty-print.scm +++ b/goldfish/liii/pretty-print.scm @@ -123,8 +123,16 @@ (pretty-print-1 (caddr obj) port (+ column *pretty-print-spacing*))) (begin (write-char #\space port) - (write (caddr obj) port)))) - (write (cddr obj) port))) + (write (caddr obj) port))) + (if (pair? (cdddr obj)) + (begin + (write-char #\space port) + (write (cadddr obj) port) + (if (pair? (cddddr obj)) + (begin + (spaces port (+ column *pretty-print-spacing*)) + (stacked-list port (cddddr obj) (+ column *pretty-print-spacing*))))))) + (write (cddr obj) port))) (write-char #\) port)))) (hash-table-set! h 'define w-define) diff --git a/tests/goldfish/liii/pretty-print-test.scm b/tests/goldfish/liii/pretty-print-test.scm index 86caec89..056dccad 100644 --- a/tests/goldfish/liii/pretty-print-test.scm +++ b/tests/goldfish/liii/pretty-print-test.scm @@ -80,6 +80,7 @@ ; 使用 pp 测试简单的 define 表达式 (check (pp '(define x 10)) => "(define x 10)") +(check (pp '(define x (display 1) 2)) => "(define x (display 1) 2)") ; 使用 pp 测试函数定义(注意:pp 会格式化并添加换行) (check (pp '(define (f x) (+ x 1))) => "(define (f x) -- Gitee