blob: 084e9aefc072395cfa57ff4864d7de0606f99ebd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
(import (scheme base)
(only (csc encoding) encode)
(only (csc testing)
assert-equal
test)
(csc linker))
(test link-if
(assert-equal
(encode '((const 5) (const 1) (if 2) (const 5) add exit))
(link '((const 5) (const 1) (if "label1") (const 5) add (label "label1") exit))))
(test link-backwards-if
(assert-equal
(encode '((const 10) (const 5) add (if -3)))
(link '((const 10) (label "label1") (const 5) add (if "label1")))))
(test link-call
(assert-equal
(encode '((call 3) (const 10) exit (const 5) exit))
(link '((call "label1") (const 10) (label "label0") exit (label "label1") (const 5) exit))))
|