mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-14 16:27:35 +02:00
Building out
This commit is contained in:
parent
9410df6b48
commit
a6cc263237
1 changed files with 16 additions and 10 deletions
|
@ -62,9 +62,10 @@
|
|||
(defined-by adbv:defined-by adbv:set-defined-by!)
|
||||
(assigned adbv:assigned adbv:set-assigned!)
|
||||
(assigned-locally adbv:assigned-locally adbv:set-assigned-locally!)
|
||||
(ref-by adbv:ref-by adbv:set-ref-by!)
|
||||
)
|
||||
(define (adb:make-var)
|
||||
(%adb:make-var #f #f #f #f))
|
||||
(%adb:make-var #f #f #f #t '()))
|
||||
|
||||
(define-record-type <analysis-db-function>
|
||||
(%adb:make-fnc simple unused-params)
|
||||
|
@ -97,15 +98,20 @@
|
|||
(lambda (expr)
|
||||
(analyze expr id))
|
||||
(ast:lambda-body))))
|
||||
;TODO: ((ref? exp) (if (and (not (member exp globals))
|
||||
;TODO: (is-mutable? exp))
|
||||
;TODO: `(cell-get ,exp)
|
||||
;TODO: exp))
|
||||
;TODO: ((set!? exp) `(,(if (member (set!->var exp) globals)
|
||||
;TODO: 'set-global!
|
||||
;TODO: 'set-cell!)
|
||||
;TODO: ,(set!->var exp)
|
||||
;TODO: ,(wrap-mutables (set!->exp exp) globals)))
|
||||
((ref? exp)
|
||||
(let ((var (adb:get/default exp (adb:make-var))))
|
||||
(adbv:set-ref-by! var (cons lid (adbv:ref-by var)))
|
||||
))
|
||||
((define? exp)
|
||||
(let ((var (adb:get/default exp (adb:make-var))))
|
||||
;; TODO:
|
||||
'TODO
|
||||
))
|
||||
((set!? exp)
|
||||
(let ((var (adb:get/default exp (adb:make-var))))
|
||||
;; TODO:
|
||||
'TODO
|
||||
))
|
||||
((if? exp) `(if ,(analyze (if->condition exp) lid)
|
||||
,(analyze (if->then exp) lid)
|
||||
,(analyze (if->else exp) lid)))
|
||||
|
|
Loading…
Add table
Reference in a new issue