summaryrefslogtreecommitdiffstats
path: root/tests/016/enum.tl
blob: b8817f4b8d90ffaaccb67d7de601a1dd6576c314 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(load "../common.tl")

(mtest
  (macroexpand '(defenum)) (progn)
  (macroexpand '(defenum nil)) :error
  (macroexpand '(defenum t)) :error
  (macroexpand '(defenum :key)) :error
  (macroexpand '(defenum (a "x"))) :error
  (macroexpand '(defenum a (b "x"))) :error
  (macroexpand '(defenum a)) (progn (defsymacro a 0))
  (macroexpand '(defenum a b)) (progn (defsymacro a 0) (defsymacro b 1))
  (macroexpand '(defenum a (b 2))) (progn (defsymacro a 0) (defsymacro b 2))
  (macroexpand '(defenum (a 5) b)) (progn (defsymacro a 5) (defsymacro b 6))
  (macroexpand '(defenum (a 5) (b 7))) (progn (defsymacro a 5) (defsymacro b 7))
  (macroexpand '(defenum a (b #\b))) (progn (defsymacro a 0) (defsymacro b #\b))
  (macroexpand '(defenum (a #\a) b)) (progn (defsymacro a #\a) (defsymacro b #\b))
  (macroexpand '(defenum (a #\a) (b #\x))) (progn (defsymacro a #\a) (defsymacro b #\x))
  (macroexpand '(defenum a b c)) (progn (defsymacro a 0) (defsymacro b 1) (defsymacro c 2)))

(mtest
  (enumlet (a b c) (list a b c)) (0 1 2)
  (enumlet ((a 10) b c) (list a b c)) (10 11 12)
  (enumlet ((a #\a) b c) (list a b c)) (#\a #\b #\c))