Ignore:
Timestamp:
04/28/04 18:53:07 (17 years ago)
Author:
piso
Message:

PARSE-DEFMACRO-LAMBDA-LIST

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/destructuring-bind.lisp

    r5641 r6651  
    22;;;
    33;;; Copyright (C) 2003-2004 Peter Graves
    4 ;;; $Id: destructuring-bind.lisp,v 1.11 2004-02-01 16:46:48 piso Exp $
     4;;; $Id: destructuring-bind.lisp,v 1.12 2004-04-28 18:53:07 piso Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    156156          (setf rest-of-args (cdr rest-of-args))
    157157          (push-let-binding (car rest-of-args) arg-list-name nil))
     158         ((and (cdr rest-of-args) (consp (cadr rest-of-args)))
     159          (pop rest-of-args)
     160          (let* ((destructuring-lambda-list (car rest-of-args))
     161           (sub (gensym "WHOLE-SUBLIST")))
     162      (push-sub-list-binding
     163       sub arg-list-name destructuring-lambda-list
     164       name error-kind error-fun)
     165      (parse-defmacro-lambda-list
     166       destructuring-lambda-list sub name error-kind error-fun)))
    158167         (t
    159168          (defmacro-error "&WHOLE" name))))
     
    174183          (setf restp t)
    175184          (push-let-binding (car rest-of-args) path nil))
     185         ((and (cdr rest-of-args) (consp (cadr rest-of-args)))
     186          (pop rest-of-args)
     187          (setf restp t)
     188          (let* ((destructuring-lambda-list (car rest-of-args))
     189           (sub (gensym "REST-SUBLIST")))
     190      (push-sub-list-binding sub path destructuring-lambda-list
     191                                               name error-kind error-fun)
     192      (parse-defmacro-lambda-list
     193       destructuring-lambda-list sub name error-kind error-fun)))
    176194         (t
    177195          (defmacro-error (symbol-name var) error-kind name))))
Note: See TracChangeset for help on using the changeset viewer.