mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-12 15:27:36 +02:00
Initial support for (import) in eval
This commit is contained in:
parent
0cbcadc382
commit
a36d68a323
1 changed files with 10 additions and 0 deletions
|
@ -375,6 +375,9 @@
|
|||
(not (null? (cdr exp))))
|
||||
(analyze-lambda exp env))
|
||||
|
||||
((tagged-list? 'import exp)
|
||||
(analyze-import exp env))
|
||||
|
||||
;; experimenting with passing these back to eval
|
||||
((compound-procedure? exp)
|
||||
(lambda (env) exp)) ;; TODO: good enough? update env?
|
||||
|
@ -432,6 +435,13 @@
|
|||
; ;(lambda (env)
|
||||
; (make-macro `(lambda ,vars ,@(lambda-body exp)))))
|
||||
|
||||
(define (analyze-import exp env)
|
||||
(lambda (env)
|
||||
;; TODO: allow %import to take env
|
||||
(write `(%import ,(cdr exp)))
|
||||
(apply %import (cdr exp))
|
||||
'ok))
|
||||
|
||||
(define (analyze-if exp a-env)
|
||||
(let ((pproc (analyze (if-predicate exp) a-env))
|
||||
(cproc (analyze (if-consequent exp) a-env))
|
||||
|
|
Loading…
Add table
Reference in a new issue