(defmethod <имя-функции>
[<индекс>]
[<комментарии>]
(<ограничения-параметра>*
[<групповой-параметр>])
<действие>*)
<ограничения-параметров>::= <простая-переменная> │
(<простая-переменная>
<ограничение-по-типу>*
[<ограничение-по-запросу>])
<групповой-параметр>::= <составная-переменная> │
(<составная-переменная>
<ограничение-по-типу>*
[<ограничение-по-запросу >])
<ограничение-по-типу>::= <имя-класса>
<ограничение-по-запросу>::= <глобальная-переменная> |
<вызов-функции>
Определение П1.31. Синтаксис конструктора defclass
(defclass <имя-класса> [<комментарии>]
(is-a <список-суперклассов>+)
[<роль-класса>]
[<активность~класса >]
<слот>*
<объявление-обработчика-сообщений>*)
<роль-класса>::= (role concrete | abstract)
<активность-класса>::= (pattern-match reactive I non-reactive)
<слот>::= (slot <имя> <грани>*) |
(single-slot <имя> <грани>*) |
(multislot <имя> <грани>*)
<грань>::= < значение-по-умолчанию > |
<грань-хранения> |<грань-доступа> |
<грань-распространения> │
<грань-источника> │
<грань-сопоставления-образцов> |
<грань-видимости> |
<грань-создания-аксессоров> |
<грань-переопределения-сообщений> |
<ограничения-атрибутов>
<значение-по-умолчанию>::=(default?DERIVE |?NONE |
<выражение>*) |
(default-dynamic <выражение>*)
<грань-хранения>::=(storage local | shared)
<грань-доступа>::=(access read-write | read-only │initialize-only)
<грань-распространения>::=(propagation inherit │ no-inherit)
<грань-источника>::=(source exclusive | composite)
<грань-сопоставления-образцов>::=(pattern-match reactive | non-reactive)
<грань-видимости>::=(visibility private │ public)
<грань-создания-аксессоров>::=(create-accessor?NONE | read | write| read – write)
<грань-переопределения-сообщений>::=(override-message ?DEFAULT | <имя-сообщения>)
<объявление-обработчика-сообщений>::=(message-handler <имя-обработчика> [тип-обработчика])
< тип-обработчика >::= primary │around│before│after
Определение П 1.32. Синтаксис конструктора defmessage-handler
defmessage-handler <имя-класса>
<имя-сообщения>
[<тип-обработчика>]
[<комментарии>]
(<обязательные-параметры>
[<групповой-параметр>])
<действия>)
< тип-обработчика >::= around│before│ primary │after
<обязательный-параметр>::=<простое-значение>
<групповой-параметр>::=<составное-значение>