blob: 1542f1e5f6cdb40a305d1216ded9e3afd3abc744 (
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
(define-library (csc ir2)
(export
lambda-body
lambda-case-alternate
lambda-case-arguments
lambda-case-body
lambda-case-gensyms
lambda-case-rest
lambda-case?
make-lambda-case
; Re-exports from IR1.
lambda?
make-lambda
call-arguments
call-procedure
call?
constant-expression
constant?
if-alternate
if-consequent
if-test
if?
library-ref-library
library-ref-name
library-ref-public?
library-ref?
library-set-expression
library-set-library
library-set-name
library-set-public?
library-set?
make-call
make-constant
make-if
make-library-ref
make-library-set
make-sequence
make-toplevel-define
make-void
sequence-head
sequence-tail
sequence?
toplevel-define-expression
toplevel-define-name
toplevel-define?
void?)
(import (scheme base)
(only (csc ir1)
call-arguments
call-procedure
call?
constant-expression
constant?
if-alternate
if-consequent
if-test
if?
lambda-body
lambda?
library-ref-library
library-ref-name
library-ref-public?
library-ref?
library-set-expression
library-set-library
library-set-name
library-set-public?
library-set?
make-call
make-constant
make-if
make-lambda
make-library-ref
make-library-set
make-sequence
make-toplevel-define
make-void
sequence-head
sequence-tail
sequence?
toplevel-define-expression
toplevel-define-name
toplevel-define?
void?))
(begin
; This library defines the intermediate representation IR2.
; It's CPS time bitch.
; <closure-ref> idx
; Reference to a variable by index in the closure.
(define-record-type <closure-ref>
(make-closure-ref idx)
closure-ref?
(idx closure-ref-index))
; <lambda-case> arguments rest
|