(define (classifier:lambda form senv hist)
(syntax-check '(_ mit-bvl + form) form)
- (compile-lambda scode-lambda-name:unnamed
- (cadr form)
- form senv hist))
+ (classify-lambda scode-lambda-name:unnamed
+ (cadr form)
+ form senv hist))
(define (classifier:named-lambda form senv hist)
(syntax-check '(_ (identifier . mit-bvl) + form) form)
- (compile-lambda (identifier->symbol (caadr form))
- (cdadr form)
- form senv hist))
+ (classify-lambda (identifier->symbol (caadr form))
+ (cdadr form)
+ form senv hist))
-(define (compile-lambda name bvl form senv hist)
+(define (classify-lambda name bvl form senv hist)
(let ((senv (make-internal-senv senv)))
;; Force order -- bind names before classifying body.
(let ((bvl
(define-classifier 'begin classifier:begin)
(define-classifier 'declare classifier:declare)
(define-classifier 'define-syntax classifier:define-syntax)
+ (define-classifier 'delay classifier:delay)
(define-classifier 'er-macro-transformer classifier:er-macro-transformer)
(define-classifier 'if classifier:if)
+ (define-classifier 'lambda classifier:lambda)
(define-classifier 'let-syntax classifier:let-syntax)
(define-classifier 'letrec-syntax classifier:letrec-syntax)
+ (define-classifier 'named-lambda classifier:named-lambda)
(define-classifier 'or classifier:or)
(define-classifier 'quote classifier:quote)
(define-classifier 'quote-identifier classifier:quote-identifier)
(define-classifier 'rsc-macro-transformer classifier:rsc-macro-transformer)
(define-classifier 'sc-macro-transformer classifier:sc-macro-transformer)
(define-classifier 'set! classifier:set!)
- (define-classifier 'the-environment classifier:the-environment)
- (define-classifier 'delay classifier:delay)
- (define-classifier 'lambda classifier:lambda)
- (define-classifier 'named-lambda classifier:named-lambda)))
\ No newline at end of file
+ (define-classifier 'the-environment classifier:the-environment)))
\ No newline at end of file
(else
(if (not (list? (cdr form)))
(syntax-error "Combination must be a proper list:" form))
- (expr-item
- (let ((items
- (classify-forms (cdr form)
- senv
- (hist-cdr hist))))
- (lambda ()
- (output/combination
- (compile-expr-item item)
- (map compile-expr-item items)))))))))
+ (combination-item item
+ (classify-forms (cdr form)
+ senv
+ (hist-cdr hist)))))))
(else
- (expr-item (lambda () (output/constant form))))))
+ (constant-item form))))
(define (classify-form-car form senv hist)
(classify-form (car form) senv (hist-car hist)))