summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-08-08 11:49:44 +0200
committerLudovic Courtès <ludo@gnu.org>2022-08-08 11:54:25 +0200
commit6db3b34d7203639ef4286c237a6e536259f92352 (patch)
tree88a40baac71601b892657f5def4a516bf93209a5
parentff9522fb69b9f4a31a5b766029e26dc53a2d1cf8 (diff)
downloadguix-6db3b34d7203639ef4286c237a6e536259f92352.tar.gz
read-print: Add 'case' and 'cond' special forms.
* guix/read-print.scm (%special-forms): Add 'case' and 'cond'.
* tests/read-print.scm: Add tests.
-rw-r--r--guix/read-print.scm2
-rw-r--r--tests/read-print.scm15
2 files changed, 17 insertions, 0 deletions
diff --git a/guix/read-print.scm b/guix/read-print.scm
index df25eb0f50..9d666d7f70 100644
--- a/guix/read-print.scm
+++ b/guix/read-print.scm
@@ -255,6 +255,8 @@ expressions and blanks that were read."
   ;; symbol must appear within a (modify-phases ...) expression.
   (vhashq
    ('begin 1)
+   ('case 2)
+   ('cond 1)
    ('lambda 2)
    ('lambda* 2)
    ('match-lambda 1)
diff --git a/tests/read-print.scm b/tests/read-print.scm
index 004fcff19f..b484e28022 100644
--- a/tests/read-print.scm
+++ b/tests/read-print.scm
@@ -142,6 +142,21 @@ expressions."
     (* z z)))")
 
 (test-pretty-print "\
+(case x
+  ((1)
+   'one)
+  ((2)
+   'two))")
+
+(test-pretty-print "\
+(cond
+  ((zero? x)
+   'zero)
+  ((odd? x)
+   'odd)
+  (else #f))")
+
+(test-pretty-print "\
 #~(string-append #$coreutils \"/bin/uname\")")
 
 (test-pretty-print "\