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))))
|
(not (null? (cdr exp))))
|
||||||
(analyze-lambda exp env))
|
(analyze-lambda exp env))
|
||||||
|
|
||||||
|
((tagged-list? 'import exp)
|
||||||
|
(analyze-import exp env))
|
||||||
|
|
||||||
;; experimenting with passing these back to eval
|
;; experimenting with passing these back to eval
|
||||||
((compound-procedure? exp)
|
((compound-procedure? exp)
|
||||||
(lambda (env) exp)) ;; TODO: good enough? update env?
|
(lambda (env) exp)) ;; TODO: good enough? update env?
|
||||||
|
@ -432,6 +435,13 @@
|
||||||
; ;(lambda (env)
|
; ;(lambda (env)
|
||||||
; (make-macro `(lambda ,vars ,@(lambda-body exp)))))
|
; (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)
|
(define (analyze-if exp a-env)
|
||||||
(let ((pproc (analyze (if-predicate exp) a-env))
|
(let ((pproc (analyze (if-predicate exp) a-env))
|
||||||
(cproc (analyze (if-consequent exp) a-env))
|
(cproc (analyze (if-consequent exp) a-env))
|
||||||
|
|
Loading…
Add table
Reference in a new issue