(define $cond-expand
(spar-transformer->runtime
- (delay (scons-rule (cond-expand-pattern) generate-cond-expand))
- system-global-environment))
+ (delay (scons-rule (cond-expand-pattern) generate-cond-expand))))
(define (cond-expand-pattern)
(define clause-pattern
(lambda (bvl expr body-forms)
(scons-call (scons-close 'call-with-values)
(scons-lambda '() expr)
- (apply scons-lambda bvl body-forms)))))
- system-global-environment))
+ (apply scons-lambda bvl body-forms)))))))
(define $define-record-type
(spar-transformer->runtime
type-name
(scons-quote name)))
(default-object)))))
- field-specs)))))
- system-global-environment))
+ field-specs)))))))
\f
(define $define
(spar-transformer->runtime
(+ any))
(lambda (nested bvl body-forms)
(scons-define nested
- (apply scons-lambda bvl body-forms))))))
- system-global-environment))
+ (apply scons-lambda bvl body-forms))))))))
(define (optional-value-pattern)
`(or any (value-of ,unassigned-expression)))
(apply scons-named-lambda
(cons scode-lambda-name:let ids)
body-forms)
- vals))))))
- system-global-environment))
+ vals))))))))
(define (let-bindings-pattern)
`(subform (* (subform (list id ,(optional-value-pattern))))))
`(,(let-bindings-pattern)
(+ any))
(lambda (bindings body-forms)
- (expand-let* scons-let bindings body-forms))))
- system-global-environment))
+ (expand-let* scons-let bindings body-forms))))))
(define $let*-syntax
(spar-transformer->runtime
'((subform (* (subform (list id any))))
(+ any))
(lambda (bindings body-forms)
- (expand-let* scons-let-syntax bindings body-forms))))
- system-global-environment))
+ (expand-let* scons-let-syntax bindings body-forms))))))
(define (expand-let* scons-let bindings body-forms)
(fold-right (lambda (binding expr)
(apply scons-let
(map list temps vals)
(map scons-set! ids temps))
- (scons-call (apply scons-lambda '() body-forms)))))))
- system-global-environment))
+ (scons-call (apply scons-lambda '() body-forms)))))))))
(define $letrec*
(spar-transformer->runtime
(list id (unassigned-expression)))
ids)
(apply scons-begin (map scons-set! ids vals))
- (scons-call (apply scons-lambda '() body-forms)))))))
- system-global-environment))
+ (scons-call (apply scons-lambda '() body-forms)))))))))
\f
(define $case
(spar-transformer->runtime
(process-action (car else-clause)
(cdr else-clause))
(unspecific-expression))
- clauses))))))
- system-global-environment))
+ clauses))))))))
\f
(define $cond
(spar-transformer->runtime
(if else-actions
(apply scons-begin else-actions)
(unspecific-expression))
- clauses))))
- system-global-environment))
+ clauses))))))
(define cond-clause-pattern
'(subform (cons (and (not (ignore-if id=? else))
(if (pair? (cddr binding))
(caddr binding)
(car binding)))
- bindings)))))))))
- system-global-environment))
+ bindings)))))))))))
\f
(define-syntax $quasiquote
(er-macro-transformer
((pair? body-exprs)
(scons-and conjunct (apply scons-begin body-exprs)))
(else
- conjunct))))))
- system-global-environment))
+ conjunct))))))))
(define $access
(spar-transformer->runtime
(fold-right (lambda (name expr)
(scons-call keyword:access name expr))
expr
- names))))
- system-global-environment))
+ names))))))
(define $cons-stream
(spar-transformer->runtime
- (delay (scons-rule `(any any) scons-stream))
- system-global-environment))
+ (delay (scons-rule `(any any) scons-stream))))
(define $cons-stream*
(spar-transformer->runtime
(lambda (exprs)
(if (pair? (cdr exprs))
(car exprs)
- (reduce-right scons-stream unspecific exprs)))))
- system-global-environment))
+ (reduce-right scons-stream unspecific exprs)))))))
(define (scons-stream expr1 expr2)
(scons-call (scons-close 'cons)
(fold-right scons-stream
self
exprs)))
- self)))))
- system-global-environment))
+ self)))))))
\f
(define $define-integrable
(spar-transformer->runtime
(if (null? bvl)
body-forms
(cons (scons-declare (cons 'integrate bvl))
- body-forms)))))))))
- system-global-environment))
+ body-forms)))))))))))
(define $fluid-let
(spar-transformer->runtime
(scons-call (scons-close 'shallow-fluid-bind)
swap!
(apply scons-lambda '() body-forms)
- swap!)))))))
- system-global-environment))
+ swap!)))))))))
(define $parameterize
(spar-transformer->runtime
(scons-call (scons-close 'cons) id val))
ids
vals))
- (apply scons-lambda '() body-forms))))))
- system-global-environment))
+ (apply scons-lambda '() body-forms))))))))
\f
(define-syntax $local-declare
(syntax-rules ()