Changeset 12709
- Timestamp:
- Aug 28, 2009, 3:14:02 AM (15 years ago)
- File:
-
- 1 edited
-
trunk/source/lib/nfcomp.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/lib/nfcomp.lisp
r12679 r12709 1 ;; ;-*-Mode: LISP; Package: CCL -*-1 ;;-*-Mode: LISP; Package: CCL -*- 2 2 ;;; 3 3 ;;; Copyright (C) 1994-2001 Digitool, Inc … … 624 624 (fcomp-compile-toplevel-forms env) 625 625 (multiple-value-bind (body decls) (parse-body body env) 626 (let* ((env (augment-environment env :declare (decl-specs-from-declarations decls)))) 626 (let* ((decl-specs (decl-specs-from-declarations decls)) 627 (env (augment-environment env :declare decl-specs)) 628 (*fasl-compile-time-env* (augment-environment *fasl-compile-time-env* 629 :declare decl-specs))) 627 630 (fcomp-form-list body env processing-mode) 628 631 (fcomp-compile-toplevel-forms env)))) … … 630 633 (defun fcomp-macrolet (form env processing-mode &aux (body (%cdr form))) 631 634 (fcomp-compile-toplevel-forms env) 632 (let ((outer-env (augment-environment env 633 :macro 634 (mapcar #'(lambda (m) 635 (destructuring-bind (name arglist &body body) m 636 (list name (enclose (parse-macro name arglist body env) 637 env)))) 638 (car body))))) 639 (multiple-value-bind (body decls) (parse-body (cdr body) outer-env) 640 (let* ((env (augment-environment 641 outer-env 642 :declare (decl-specs-from-declarations decls)))) 643 (fcomp-form-list body env processing-mode) 644 (fcomp-compile-toplevel-forms env))))) 635 (flet ((augment-with-macros (e defs) 636 (augment-environment e 637 :macro 638 (mapcar #'(lambda (m) 639 (destructuring-bind (name arglist &body body) m 640 (list name (enclose (parse-macro name arglist body env) 641 e)))) 642 defs)))) 643 644 (let* ((macros (car body)) 645 (outer-env (augment-with-macros env macros))) 646 (multiple-value-bind (body decls) (parse-body (cdr body) outer-env) 647 (let* ((decl-specs (decl-specs-from-declarations decls)) 648 (env (augment-environment 649 outer-env 650 :declare decl-specs)) 651 (*fasl-compile-time-env* (augment-environment 652 (augment-with-macros 653 *fasl-compile-time-env* 654 macros) 655 :declare decl-specs))) 656 (fcomp-form-list body env processing-mode) 657 (fcomp-compile-toplevel-forms env)))))) 645 658 646 659 (defun fcomp-symbol-macrolet (form env processing-mode &aux (body (%cdr form))) 647 660 (fcomp-compile-toplevel-forms env) 648 (let* ((outer-env (augment-environment env :symbol-macro (car body)))) 661 (let* ((defs (car body)) 662 (outer-env (augment-environment env :symbol-macro defs))) 649 663 (multiple-value-bind (body decls) (parse-body (cdr body) env) 650 (let* ((env (augment-environment outer-env 651 :declare (decl-specs-from-declarations decls)))) 664 (let* ((decl-specs (decl-specs-from-declarations decls)) 665 (env (augment-environment outer-env 666 :declare decl-specs)) 667 (*fasl-compile-time-env* (augment-environment *fasl-compile-time-env* 668 :symbol-macro defs 669 :declare decl-specs))) 652 670 (fcomp-form-list body env processing-mode) 653 671 (fcomp-compile-toplevel-forms env)))))
Note:
See TracChangeset
for help on using the changeset viewer.
