summaryrefslogtreecommitdiff
path: root/src/modules/tuple-generator/tuple-generator.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/tuple-generator/tuple-generator.scm')
-rw-r--r--src/modules/tuple-generator/tuple-generator.scm36
1 files changed, 0 insertions, 36 deletions
diff --git a/src/modules/tuple-generator/tuple-generator.scm b/src/modules/tuple-generator/tuple-generator.scm
deleted file mode 100644
index a2dde2d..0000000
--- a/src/modules/tuple-generator/tuple-generator.scm
+++ /dev/null
@@ -1,36 +0,0 @@
-(define-module (modules tuple-generator tuple-generator)
- #:use-module (ice-9 receive)
- #:use-module (modules utils t-factory)
- #:use-module (modules ast syntax-tree)
- #:use-module (modules ast assembly-tree)
- #:export (t-program))
-
-
-(define (t-program p)
- (make-program (t-function (program-function p))))
-
-(define (t-function f)
- (make-subroutine (t-id (function-id f))
- (t-stmt (function-stmt f))
- #f))
-
-(define (t-stmt s)
- (receive (src instrs) (t-expr (stmt-expr s))
- (append instrs
- (list (make-instruction (make-register 'eax) 'mov src #f)
- (make-instruction #f 'ret #f #f)))))
-
-(define (t-expr e)
- (cond
- ((unary? e)
- (receive (src instrs) (t-expr (unary-expr e))
- (let ((dest (make-temporary)))
- (values dest
- (append instrs
- (list (make-instruction dest 'mov src #f)
- (make-instruction dest (unary-operator e) #f #f)))))))
- (#t (values e '()))))
-
-
-(define (t-id i)
- (id-symbol i))