EXTRACT-LAMBDA-LIST and EXTRACT-SPECIALIZER-NAMES implemented.

This commit is contained in:
Juan Jose Garcia Ripoll 2012-04-22 01:00:56 +02:00
parent c78c6a49c6
commit a2460f3a4b
3 changed files with 10 additions and 2 deletions

View file

@ -46,6 +46,8 @@ ECL 12.2.2:
- ENSURE-CLASS-USING-CLASS now registers the class with
FIND-CLASS. ENSURE-CLASS relies on E-C-U-C doing that.
- EXTRACT-LAMBDA-LIST and EXTRACT-SPECIALIZER-NAMES implemented.
;;; Local Variables: ***
;;; mode:text ***
;;; fill-column:79 ***

View file

@ -1677,8 +1677,8 @@ cl_symbols[] = {
{CLOS_ "ENSURE-GENERIC-FUNCTION-USING-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL},
{CLOS_ "EQL-SPECIALIZER", CLOS_ORDINARY, NULL, -1, OBJNULL},
{CLOS_ "EQL-SPECIALIZER-OBJECT", CLOS_ORDINARY, NULL, -1, OBJNULL},
{CLOS_ "EXTRACT-LAMBDA-LIST", CLOS_ORDINARY, NULL, -1, OBJNULL},
{CLOS_ "EXTRACT-SPECIALIZER-NAMES", CLOS_ORDINARY, NULL, -1, OBJNULL},
{CLOS_ "EXTRACT-LAMBDA-LIST", CLOS_ORDINARY, NULL, 1, OBJNULL},
{CLOS_ "EXTRACT-SPECIALIZER-NAMES", CLOS_ORDINARY, NULL, 1, OBJNULL},
{CLOS_ "FINALIZE-INHERITANCE", CLOS_ORDINARY, NULL, -1, OBJNULL},
{CLOS_ "FIND-METHOD-COMBINATION", CLOS_ORDINARY, NULL, -1, OBJNULL},
{CLOS_ "FORWARD-REFERENCED-CLASS", CLOS_ORDINARY, NULL, -1, OBJNULL},

View file

@ -210,6 +210,12 @@
(values name (nreverse qualifiers) (first args) (rest args)))
(push (pop args) qualifiers))))
(defun extract-lambda-list (specialized-lambda-list)
(values (parse-specialized-lambda-list specialized-lambda-list)))
(defun extract-specializer-names (specialized-lambda-list)
(nth-value 2 (parse-specialized-lambda-list specialized-lambda-list)))
(defun parse-specialized-lambda-list (specialized-lambda-list)
"This function takes a method lambda list and outputs the list of required
arguments, the list of specializers and a new lambda list where the specializer