mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-11 23:07:36 +02:00
WIP
This commit is contained in:
parent
3c41a176f4
commit
9410df6b48
2 changed files with 13 additions and 3 deletions
|
@ -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))
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue