diff options
Diffstat (limited to 'src/modules/tuple-generator/tuple-generator.scm')
-rw-r--r-- | src/modules/tuple-generator/tuple-generator.scm | 36 |
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)) |