Вперед: Работа с переменными из
Вверх: Приложение А. Синтаксис внутреннего
Назад: Синтаксис операторов
  Содержание
Полное имя модуля:
имя_библиотеки::имя1-имя2-имя3
Вложение модулей друг в друга обозначается знаком минус.
Для обозначения текущей библиотеки имя библиотеки можно опускать. Если
система не находит модуль в текущей библиотеке, перебираются все
библиотеки, от которых наследуется данный модуль. Перебор производится
слева-направо, снизу-вверх. Таким образом, в последнюю очередь
запрашивается библиотека CORE (разумеется, нужно создавать таблицу
модулей, чтобы все время не перебирать это дерево).
Если опустить два двоеточия, система пытается добавить имя вызываемого
модуля к текущему имени (так, если из модуля internet-contents
вызывается модуль body, система ищет модуль internet-contents-body),
если он не найден, система ищет собственно модуль с таким именем (т.е.
::body).
Все порядковые аргументы в вызовах присваиваются слотам с
соответствующими номерами. Именованные слоты перечисляются через знак
минус. Если после слота через знак равенства пишется значение, оно и
присваивается данному слоту. Иначе содержимое слота текущего модуля
просто проталкивается вызываемому модулю.
<!-- модуль -слот1 -слот2="значение1" "аргумент1" -->
Модулю "модуль" передается "слот1" , значение которого наследуется от
текущего модуля, слоту "слот2" передается значение "значение1" , первый
аргумент модуля (он же слот "1" ) равен "аргумент1" .
Разумеется, в слотах можно писать не только символьные значения, но и
вызовы, обращения к переменным и слотам и т.д.
|