Unparse now handles booleans.

This commit is contained in:
Jens Axel Søgaard 2012-07-05 00:02:13 +02:00
parent 4c8e1866e5
commit 8638dc1b75
2 changed files with 10 additions and 0 deletions

View File

@ -861,12 +861,15 @@
(concurrent-substitute u ts rs))
(define (Equal u1 u2)
(define out
(cond
[(and (number? u1) (number? u2))
(= u1 u2)]
[(and (string? u1) (string? u2))
(string=? u1 u2)]
[else (construct 'Equal (list u1 u2))]))
(displayln (list 'Equal u1 u1 '=> out))
out)
(define (Expand u)
; [Cohen, Elem, p.253]

View File

@ -95,6 +95,10 @@
; Note: Set expressions are compound expressions.
(format "~a(~a)" (operator form)
(string-append* (add-between (map/first? #t unparse (operands form)) ",")))])]
[(eq? form #t)
"true"]
[(eq? form #f)
"false"]
[else
; TODO: pass value unchanged: stuff like #void, #eof, special values etc.
(format "~a" (object-name form))
@ -184,4 +188,7 @@
(check-equal? (unparse '(Set 1 2 3)) "Set(1,2,3)")
; Equal
(check-equal? (unparse '(Equal x 2)) "x=2")
; Booleans
(check-equal? (unparse #t) "true")
(check-equal? (unparse #f) "false")
)