This commit is contained in:
Justin Ethier 2016-05-10 21:23:31 -04:00
parent 3c41a176f4
commit 9410df6b48
2 changed files with 13 additions and 3 deletions

View file

@ -22,14 +22,14 @@
(import (scheme base) (import (scheme base)
(scheme cyclone util) (scheme cyclone util)
(scheme cyclone ast) (scheme cyclone ast)
(scheme cyclone optimize-cps)
(scheme cyclone transforms) (scheme cyclone transforms)
(srfi 69)) (srfi 69))
(export (export
analyze-cps analyze-cps
;adb:init! ;adb:init!
adb:get key adb:get
adb:set! key val adb:get/default
adb:set!
;; Variables ;; Variables
adb:make-var adb:make-var
%adb:make-var %adb:make-var
@ -53,6 +53,7 @@
; ;(set! *adb* (make-hash-table))) ; ;(set! *adb* (make-hash-table)))
; 'TODO) ; 'TODO)
(define (adb:get key) (hash-table-ref *adb* key)) (define (adb:get key) (hash-table-ref *adb* key))
(define (adb:get/default key default) (hash-table-ref/default *adb* key default))
(define (adb:set! key val) (hash-table-set! *adb* key val)) (define (adb:set! key val) (hash-table-set! *adb* key val))
(define-record-type <analysis-db-variable> (define-record-type <analysis-db-variable>
(%adb:make-var global defined-by assigned assigned-locally) (%adb:make-var global defined-by assigned assigned-locally)
@ -85,6 +86,13 @@
(adb:set! (adb:set!
id id
(adb:make-fnc)) ;; TODO: anything to record???? params? (adb:make-fnc)) ;; TODO: anything to record???? params?
(for-each
(lambda (arg)
(let ((var (adb:get/default arg (adb:make-var))))
(adbv:set-global! var #f)
(adbv:set-defined-by! var lid)
(adb:set! arg var)))
(ast:lambda-formals->list exp))
(for-each (for-each
(lambda (expr) (lambda (expr)
(analyze expr id)) (analyze expr id))

View file

@ -67,6 +67,8 @@
lambda-formals-type lambda-formals-type
lambda-formals->list lambda-formals->list
lambda-num-args lambda-num-args
ast:lambda-formals-type
ast:lambda-formals->list
list->lambda-formals list->lambda-formals
pair->list pair->list
list->pair list->pair