blob: 0d417db1f51a37d807c800045c844a05ce057272 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
(define-module (backend generator allocate)
#:use-module (backend utils assign-stack)
#:export (expansion->allocate))
(define (expansion->allocate ast)
(define (allocate n)
(cond
((null? n) n)
((eq? (car n) 'tmp)
(list 'stack (make-location (cadr n))))
((list? (car n))
(cons (allocate (car n)) (allocate (cdr n))))
(#t
(cons (car n) (allocate (cdr n))))))
(allocate ast))
|