25 lines
966 B
Scheme
25 lines
966 B
Scheme
(begin
|
|
;;; arcana/parse ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal
|
|
(arcana/parse
|
|
(list
|
|
(cons 'TOKEN_ROUND_OPEN "(")
|
|
(cons 'TOKEN_IDENT "displayln")
|
|
(cons 'TOKEN_ROUND_OPEN "(")
|
|
(cons 'TOKEN_IDENT "+")
|
|
(cons 'TOKEN_NUM "123")
|
|
(cons 'TOKEN_NUM "456")
|
|
(cons 'TOKEN_ROUND_CLOSE ")")
|
|
(cons 'TOKEN_ROUND_CLOSE ")")))
|
|
'(displayln (+ 123 456)))
|
|
|
|
;;; arcana/typeof ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(assert-equal 'null (arcana/typeof '()))
|
|
(assert-equal 'procedure (arcana/typeof +))
|
|
(assert-equal 'pair (arcana/typeof (cons 123 456)))
|
|
(assert-equal 'boolean (arcana/typeof #false))
|
|
;(assert-equal 'char (arcana/typeof #\n))
|
|
(assert-equal 'symbol (arcana/typeof 'foo))
|
|
(assert-equal 'string (arcana/typeof "foo"))
|
|
(assert-equal 'number (arcana/typeof 123))
|
|
)
|