15 lines
384 B
Scheme
15 lines
384 B
Scheme
(define-module (scmvm language cps)
|
|
#:use-module (scmvm assembler)
|
|
#:use-module (ice-9 match)
|
|
#:export (compile-cps))
|
|
|
|
(define (compile-atom asm atom)
|
|
(cond
|
|
[(number? atom) (emit-literal asm atom)]))
|
|
|
|
(define (compile-cps asm soup)
|
|
(when (not (null? soup))
|
|
(match (car soup)
|
|
[(? (negate pair?) atom) (compile-atom asm atom)])
|
|
(compile-cps asm (cdr soup))))
|