Common Lisp Package: XML.LOCATION.COMPAT

Internal compatibility package.

README:

FUNCTION

Private

%MAKE-KEY/SORTED (MIXINS)

Return a key for the dynamic class described by MIXINS.

%MAKE-KEY/UNSORTED (MIXINS)

Return a key for the dynamic class described by MIXINS.

%PARSE-DOC-AND-OPTIONS (DOC-AND-OPTIONS)

Parse DOC-AND-OPTIONS which is expected to be a list of the form ([DOC] (:NAME VALUE)*). Return a list of the form (DOC :NAME1 VALUE1 ...) in which DOC may be nil.

%PROCESS-SUPERCLASS-SPECS (SPECS)

Parse superclass specs SPECS and return two values: superclasses that should be inserted at the start of the list of direct superclasses and superclasses that should inserted at the end of the list of direct superclasses.

Undocumented

%ENSURE-CLASS-NAME (CLASS-OR-NAME)

ENSURE-FIND-CLASS (CLASS-OR-NAME)

MACRO

Public

DEFINE-DYNAMIC-CLASS-FAMILY (NAME &REST DOC-AND-OPTIONS)

Define a family of classes in the category NAME. Classes in the family are fully specified by their respective sets of superclasses. No further structure is added. For a family named NAME, the following things are defined: + *NAME-classes* [variable] + make-NAME-class [generic function] + make-NAME-class list [method] + ensure-NAME-class [function] + NAME-classes [function] Unless the :package option is supplied, all names will be interned in NAME's package. Using the :package option, a different package can be specified. When supplied, the value of the :package option is evaluated. Valid options and their respective defaults are: + package [(package-name (symbol-package name))] The package in which defined variables and functions will be placed. + metaclass ['standard-class] The metaclass that should be used for classes in the family. + common-superclasses [nil] A list of superclasses that should be added to all classes in the family. List elements can either be classes or lists of the form (PLACEMENT CLASS) where PLACEMENT is either :start or :end and CLASS is a class. PLACEMENT controls where a superclass is inserted into the list of superclasses. The default placement is :end. + sort-mixins? [nil] If non-nil, the list of mixin classes is sorted (according to their `class-name's as strings) prior to looking for or creating a dynamic class. Generated documentation is available for the symbol NAME using type :dynamic-class-family.