Пакет mnas-package/pkg определяет операции извлечения символов по типу их (видимости и наследования) и группировки символов по категориям, к которым прнадлежат связанные с ними сущности.
Основными функциями пакета mnas-package/pkg являются следующие функции:
- package-variables;
- package-methods;
- package-generics;
- package-functions;
- package-macroses;
- package-setf-functions;
- package-classes;
- package-symbols-by-category.
Все они имеют схожий набор параметров:
- package-name - имя пакета символы которого извлекаются. Его можно указывать в виде нескольких вариантов: 'mnas-package; :mnas-package; "MNAS-PACKAGE". В случае указания имени пакета как строки символы должны быть в верхнем регистре;
- external - отбирать (t) или не отбирать (nil) внешиние символы;
- internal - отбирать (t) или не отбирать (nil) внутренние символы;
- inherited - отбирать (t) или не отбирать (nil) заимствованные символы.
Функции
filter-functions
(symbols)
Описание: функция filter-functions возвращает список символов, являющихся сопряженными с функциями.
Переменые:
- symbols - список символов пакета.
filter-generics
(symbols)
Описание: функция filter-generics возвращает список символов сопряженных с обобщеными функциями.
Переменые:
- symbols - список символов пакета.
filter-macroses
(symbols)
Описание: функция filter-functions возвращает список символов сопряженных с макросами.
Переменые:
- symbols - список символов пакета.
filter-methods
(methods)
Описание: функция filter-methods возвращает список символов, являющихся сопряженными с setf-методами.
Переменые:
- symbols - список символов пакета.
filter-setf-functions
(symbols)
Описание: функция filter-functions возвращает список символов, являющихся сопряженными с setf-функциями.
Переменые:
- symbols - список символов пакета.
filter-setf-generics
(symbols)
Описание: функция filter-setf-generics возвращает список символов, являющихся сопряженными с обобщенными setf-функциями.
Переменые:
- symbols - список символов пакета.
filter-setf-methods
(methods)
Описание: функция filter-setf-methods возвращает список символов, являющихся сопряженными с setf-методами.
Переменые:
- symbols - список символов пакета.
filter-variables
(symbols)
Описание: функция filter-variables возвращает список символов, являющихся сопряженными со значениями.
Переменые:
- symbols - список символов пакета.
package-classes
(package-name &key (external t) (internal nil) (inherited nil) &aux (rez nil) (class nil) (package (find-package package-name)))
Описание: package-classes возвращает список классов пакета.
Пример использования:
(package-classes :mnas-package/example) => (#<STANDARD-CLASS MNAS-PACKAGE/EXAMPLE:<C>>)
(package-classes :mnas-package/example :external nil :internal t)
=> (#<STANDARD-CLASS MNAS-PACKAGE/EXAMPLE::<A>>
#<STANDARD-CLASS MNAS-PACKAGE/EXAMPLE::<B>>
#<STANDARD-CLASS MNAS-PACKAGE/EXAMPLE::<B-SHORT>>
#<STANDARD-CLASS MNAS-PACKAGE/EXAMPLE::<C-SHORT>>
#<STANDARD-CLASS MNAS-PACKAGE/EXAMPLE::<A-SHORT>>)
package-functions
(package-name &key (external t) (internal nil) (inherited nil))
Описание: функция package-functions возвращает список функций пакета package-name.
Пример использования:
(package-functions :mnas-package/example :internal t)
=> (#<FUNCTION MNAS-PACKAGE/EXAMPLE:BAZ-SHORT> #<FUNCTION MNAS-PACKAGE/EXAMPLE:BAZ>)
package-generics
(package-name &key (external t) (internal nil) (inherited nil))
Описание: функция package-generics возвращает список обобщенных функций пакета package-name.
Пример использования:
(package-generics :mnas-package/example :internal t)
=> (#<STANDARD-GENERIC-FUNCTION MNAS-PACKAGE/EXAMPLE:M-C-EXP (1)>
#<STANDARD-GENERIC-FUNCTION MNAS-PACKAGE/EXAMPLE:M-B-EXP (1)>
#<STANDARD-GENERIC-FUNCTION MNAS-PACKAGE/EXAMPLE:M-A-EXP (1)>
#<STANDARD-GENERIC-FUNCTION MNAS-PACKAGE/EXAMPLE::<C-C-INT>-C (1)>
#<STANDARD-GENERIC-FUNCTION MNAS-PACKAGE/EXAMPLE::<C-B-INT>-B (1)>
#<STANDARD-GENERIC-FUNCTION MNAS-PACKAGE/EXAMPLE::<C-A-INT>-A (1)>)
package-macroses
(package-name &key (external t) (internal nil) (inherited nil))
Описание: функция package-functions возвращает список макросов пакета package-name.
Пример использования:
(package-macroses :mnas-package/example :internal t)
=> (#<FUNCTION (MACRO-FUNCTION MNAS-PACKAGE/EXAMPLE::MAK-A-SHORT) {52D45ECB}>
#<FUNCTION (MACRO-FUNCTION MNAS-PACKAGE/EXAMPLE::MAK-A) {52D454BB}>)
package-methods
(package-name &key (external t) (internal nil) (inherited nil))
Описание: функция package-methods возвращает список методов пакета package-name.
Пример использования:
(package-methods :mnas-package/example :internal t)
(#<STANDARD-METHOD MNAS-PACKAGE/EXAMPLE::M-FOO :AROUND (MNAS-PACKAGE/EXAMPLE::<A> MNAS-PACKAGE/EXAMPLE::<B> T) {10019B69A3}>
...
#<STANDARD-METHOD MNAS-PACKAGE/EXAMPLE::M-FOO-SHORT (MNAS-PACKAGE/EXAMPLE::<A> MNAS-PACKAGE/EXAMPLE::<B> MNAS-PACKAGE/EXAMPLE:<C>) {1001C6CAC3}>)
package-setf-functions
(package-name &key (external t) (internal nil) (inherited nil))
Описание: функция package-functions возвращает список функций пакета package-name.
Пример использования:
(package-setf-functions :mnas-package/example :internal t)
=> (#<FUNCTION (SETF MNAS-PACKAGE/EXAMPLE::FOO)>)
package-setf-generics
(package-name &key (external t) (internal nil) (inherited nil))
Описание: функция package-functions возвращает список функций пакета package-name.
Пример использования:
(package-setf-functions :mnas-package/example :internal t)
=> (#<FUNCTION (SETF MNAS-PACKAGE/EXAMPLE::FOO)>)
package-setf-methods
(package-name &key (external t) (internal nil) (inherited nil))
Описание: функция package-setf-methods возвращает список setf-методов пакета package-name.
Пример использования:
(package-setf-methods :mnas-package/example :internal t)
(#<STANDARD-METHOD MNAS-PACKAGE/EXAMPLE::M-FOO :AROUND (MNAS-PACKAGE/EXAMPLE::<A> MNAS-PACKAGE/EXAMPLE::<B> T) {10019B69A3}>
...
#<STANDARD-METHOD MNAS-PACKAGE/EXAMPLE::M-FOO-SHORT (MNAS-PACKAGE/EXAMPLE::<A> MNAS-PACKAGE/EXAMPLE::<B> MNAS-PACKAGE/EXAMPLE:<C>) {1001C6CAC3}>)
package-symbols-by-category
(package-name &key (external t) (internal t) (inherited nil) &aux (external-lst nil) (internal-lst nil) (inherited-lst nil) (rez nil) (package (find-package package-name)))
Описание: package-symbols-by-category выполнят поиск символов, определенных пакетом package-name.
Пример использования:
(package-symbols-by-category 'mnas-package :internal nil) ;; отбор только внешних символов;
(package-symbols-by-category :mnas-package) ;; отбор внешних и внутренних символов;
(package-symbols-by-category "MNAS-PACKAGE" :internal nil :inherited t) ;; отбор только внешних и заимствованных символов;
package-variables
(package-name &key (external t) (internal nil) (inherited nil))
Описание: функция package-variables возвращает список символов пакета package-name.
Пример использования:
(package-variables :mnas-package :inherited t)