blob: 129fcd2b176c9df2ee3eea3acdb87ce051b7ac22 (
plain)
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
|
(define-module (backend ast ir)
#:export (prog-ir
srout-ir
mov-ir
stack-ir
reg-ir
imm-ir
tmp-ir
ret-ir
neg-ir
not-ir
plus-ir
minus-ir
mult-ir
div-ir
mod-ir))
;;; Commentary:
;;;
;;; Nodes which exist to do nothing when evaluated.
;;;
;;; Code:
(define-syntax def-ir-nodes
(syntax-rules ()
((_ names ...)
(begin
(define (names . args)
(cons 'names args)) ...))))
(define-syntax def-ir-syms
(syntax-rules ()
((_ names ...)
(begin
(define names
'names) ...))))
(def-ir-nodes
prog-ir
srout-ir
instr-ir
mov-ir
stack-ir
reg-ir
imm-ir
tmp-ir)
(def-ir-syms
ret-ir
neg-ir
not-ir
plus-ir
minus-ir
mult-ir
div-ir
mod-ir)
|