-(defun ls-compile-block (sexps &optional return-last-p)
- (if return-last-p
- (code (ls-compile-block (butlast sexps))
- "return " (ls-compile (car (last sexps)) *multiple-value-p*) ";")
- (join-trailing
- (remove-if #'null-or-empty-p (mapcar #'ls-compile sexps))
- (concat ";" *newline*))))
+(defun ls-compile-block (sexps &optional return-last-p decls-allowed-p)
+ (multiple-value-bind (sexps decls)
+ (parse-body sexps :declarations decls-allowed-p)
+ (declare (ignore decls))
+ (if return-last-p
+ (code (ls-compile-block (butlast sexps) nil decls-allowed-p)
+ "return " (ls-compile (car (last sexps)) *multiple-value-p*) ";")
+ (join-trailing
+ (remove-if #'null-or-empty-p (mapcar #'ls-compile sexps))
+ (concat ";" *newline*)))))