63 |
;;; when the compiler begins to process a closure. A local macro definition |
;;; when the compiler begins to process a closure. A local macro definition |
64 |
;;; is a list ( macro-name expansion-function). |
;;; is a list ( macro-name expansion-function). |
65 |
|
|
66 |
(defun c1flet (args &aux body ss ts is other-decl info (*decls* *decls*) |
(defun c1flet (args &aux body ss ts is other-decl info |
67 |
(defs1 nil) (local-funs nil) (closures nil) (*info* (copy-info *info*))) |
(defs1 nil) (local-funs nil) (closures nil) (*info* (copy-info *info*))) |
68 |
(when (endp args) (too-few-args 'flet 1 0)) |
(when (endp args) (too-few-args 'flet 1 0)) |
69 |
|
|
175 |
(c2expr body) |
(c2expr body) |
176 |
) |
) |
177 |
|
|
178 |
(defun c1labels (args &aux body ss ts is other-decl info (*decls* *decls*) |
(defun c1labels (args &aux body ss ts is other-decl info |
179 |
(defs1 nil) (local-funs nil) (closures nil) |
(defs1 nil) (local-funs nil) (closures nil) |
180 |
(fnames nil) (processed-flag nil) (*funs* *funs*) (*info* (copy-info *info*))) |
(fnames nil) (processed-flag nil) (*funs* *funs*) (*info* (copy-info *info*))) |
181 |
(when (endp args) (too-few-args 'labels 1 0)) |
(when (endp args) (too-few-args 'labels 1 0)) |
307 |
) |
) |
308 |
|
|
309 |
(defun c1macrolet (args &aux body ss ts is other-decl |
(defun c1macrolet (args &aux body ss ts is other-decl |
310 |
(*funs* *funs*) (*vars* *vars*) (*decls* *decls*)) |
(*funs* *funs*) (*vars* *vars*)) |
311 |
(when (endp args) (too-few-args 'macrolet 1 0)) |
(when (endp args) (too-few-args 'macrolet 1 0)) |
312 |
(dolist** (def (car args)) |
(dolist** (def (car args)) |
313 |
(cmpck (or (endp def) (not (symbolp (car def))) (endp (cdr def))) |
(cmpck (or (endp def) (not (symbolp (car def))) (endp (cdr def))) |