.:Публикации:. [www.karlson.ru]


Вперед: Именование и вызовы Вверх: Приложение А. Синтаксис внутреннего Назад: Атомарные понятия   Содержание

Синтаксис операторов

Внутренний язык системы внедрен в SGML-комментарии со следующим синтаксисом:
<!-- аргумент0 аргумент1 аргумент2 ... аргументn -->
В системе возможен альтернативный синтаксис:
<!-- аргумент0 аргумент1 аргумент2 ... аргументn-1 --
....

(HTML-код)

...

<!-- /аргумент0 -->
Тогда HTML-код воспринимается системой как аргументn. Можно явно указать, в качестве какого аргумента подставлять HTML-код. Более того, в HTML-код можно вставлять тэги так, чтобы в вызове можно было бы писать несколько HTML-фрагментов (разумеется, когда передается строка, она также может содержать HTML-тэги), пример:
<!-- if testsomething -->

... then-way..

<!-- else -->

... else-way...

<!-- /if -->
В качестве аргумента0 записывается имя вызываемого модуля, аргументы присваиваются слотам модуля с теми же порядковыми номерами. Между аргументами можно вставлять т.н. слоты (см. далее). Чтобы вкладывать вызовы в друг друга, применяется LISP-подобный синтаксис:
<!-- if (module1 arg1 arg2) module2 (module3 (module4 arg3)) -->
вызов
(module1 arg1 arg2)
синтаксически эквивалентен
module1(arg1, arg2)
(между именем вызываемого модуля и скобкой не должно быть пробелов; запятые не обязательны). В таком синтаксисе предыдущий пример переписывается в формате:
<!-- if(module1(arg1, arg2), module2(module3(module4(arg3))) -->
Эти два вида синтаксиса можно комбинировать:
<!-- if module1(arg1, arg2) module2(module3(module4 arg3)) -->


...домик на крыше...,поиск,гостевая книга,cv. Be free, use Linux!