3. Операторы Парсера
Формат вызова
^if[логическое_выражение;код_если_выражение_истинно]
^if[логическое_выражение;код_если_выражение_истинно; код_если_выражение_ложно ]
Аргументы
логическое_выражение логическое выражение, результат которого служит критерием выбора вариантов.
код_если_выражение_истинно код, выполняемый, если логическое выражение истинно.
код_если_выражение_ложно код, выполняемый, если логическое выражение ложно.
Описание
Оператор вычисляет значение логического выражения (см. п. 1.7). Если логическое выражение истинно, то оператор возвращает значение аргумента код_если_выражение_истинно. Если логическое выражение ложно, то оператор возвращает значение аргумента код_если_выражение_ложно или, если оно не было передано, пустую строку.
Замечание. Аргумент, значение которого не требуется для вычисления значения оператора, не обрабатывается Парсером. Это следует иметь в виду, если у операторов, входящих в этот аргумент, имеются побочные эффекты, и не рассчитывать на них.
Примеры
^if[1<2;Один и правда меньше двух;Математика сбоит]
Формат вызова
^switch[выражение; ^case[значение1;вариант1] ... ^case[значениеN;вариантN] ^case[DEFAULT;вариант_по_умолчанию] ]
Аргументы
выражение выражение, значение которого служит критерием при выборе варианта.
значение1...значениеN значения, по которым выбираются варианты.
вариант1...вариантN варианты кода, сопоставленные значениям с соответствующими номерами.
вариант_по_умолчанию код, не сопоставленный ни одному из значений.
Описание
Оператор switch, в отличие от оператора if, позволяет выбирать между несколькими, а не только двумя вариантами кода. Критерием выбора является значение заданного выражения. Каждому значению из некоторого набора сопоставляется один вариант. Кроме того, можно задать код по умолчанию, который будет выбран в том случае, если значение выражения окажется вне заданного набора. Сопоставление некоторому значению варианта кода выполняется с помощью оператора case. В первом его аргументе передается значение выражения, а во втором сопоставленный ему вариант кода. Для того чтобы задать код по умолчанию, следует в качестве первого аргумента оператора case указать слово DEFAULT.
Примеры
|
^switch[^var[sex]; ^case[М;Мое почтенье, сударь!] ^case[Ж;Мое почтенье, сударыня!] ^case[DEFAULT;Ой, кто это?!] ]
|
|
|
|
Формат вызова
^default[строка;код_если_пусто]
Аргументы
строка проверяемая строка; возвращается оператором, если она не пуста.
код_если_пусто строка, возвращаемая оператором, если значение аргумента строка пусто.
Описание
Оператор возвращает значение аргумента строка, если оно не является пустой строкой. В противном случае возвращает значение аргумента код_если_пусто.
Примеры
^default[^form[name];Аноним]
Формат вызова
^ifdef[строка;код_если_не_пусто]
^ifdef[строка;код_если_не_пусто;код_если_пусто]
Аргументы
строка строка, о которой нужно узнать, пустая она или нет.
код_если_не_пусто код, выполняемый, если строка не пуста.
код_если_пусто код, выполняемый, если строка пуста.
Описание
Если строка не пуста, оператор возвращает значение аргумента код_если_не_пусто. В противном случае возвращается значение аргумента код_если_пусто. Если строка пуста, а значение аргумента код_если_пусто не указано, то возвращается пустая строка.
Примеры
^ifdef[^var[title];<H1>^var[title]</H1>;Без названия!]
Формат вызова
^eq[строка1;строка2;код_если_равно]
^eq[строка1;строка2;код_если_равно;код_если_неравно]
Аргументы
строка1, строка2 значения, проверяемые на равенство.
код_если_равно возвращается, если значения аргументов строка1 и строка2 равны.
код_если_неравно возвращается, если значения аргументов строка1 и строка2 не равны.
Описание
Проверит значения аргументов строка1 и строка2 на равенство. Если значения равны, возвращается значение аргумента код_если_равно, иначе код_если_неравно. Если равенство не соблюдается, а значение аргумента код_если_неравно не указано, возвращается пустая строка.
Примеры
^eq[1;2;никогда не будет возвращаться;всегда будет возвращаться]
Формат вызова
^cmp[целое_число1;целое_число2;код_если_меньше;код_если_равно;код_если_больше]
Аргументы
целое_число1;целое_число2 целочисленные значения, которые требуется сравнить.
код_если_меньше возвращается, если целое_число1 меньше, чем целое_число2.
код_если_равно возвращается, если целое_число1 и целое_число2 равны.
код_если_больше возвращается, если целое_число1 больше, чем целое_число2.
Описание
Оператор сравнивает значения аргументов целое_число1 и целое_число2. Если целое_число1 меньше, чем целое_число2, возвращается аргумент код_если_меньше, если больше код_если_больше, а в случае равенства возвращается код_если_равно.
Примеры
^cmp[^var[speed];100;медленно!;хм, неплохо - 100 км/час;спешишь на тот свет?]
Формат вызова
^start[начало_URI;код_если_совпадает;код_если_не_совпадает]
Аргументы
начало_URI строка, сравниваемая с началом URI страницы.
код_если_совпадает код, возвращаемый, если строка совпадает с началом URI текущей страницы.
код_не_совпадает код, возвращаемый, если строка не совпадает с началом URI текущей страницы.
Описание
Если URI текущей страницы начинается значением аргумента начало_URI, то оператор возвращает значение аргумента код_если_совпадает, иначе значение аргумента код_если_не_совпадает.
Примеры
|
^start[/admin; <BODY BGCOLOR=BLACK>; <BODY BGCOLOR=WHITE BACKGROUND=/i/very_beautiful.gif> ]
|
|
|
|
Формат вызова
^color[hex-код_первого_цвета;hex-код_второго_цвета]
Аргументы
hex-код_первого_цвета код нечетного цвета
hex-код_второго_цвета код четного цвета.
Описание
Оператор используется в основном для оформления полосатых таблиц. Если номер вызова оператора в контексте текущей таблицы нечетный, оператор возвращает hex-код первого цвета, а если четный hex-код второго цвета. Под hex-кодом в данном случае понимается последовательность из шести шестнадцатеричных цифр (три группы по две цифры), задающих цвет в палитре RGB.
Примеры
|
^context[cats; ^config[Черная кошка Белый кот Черная кошка Белый кот] <TABLE> ^menu[<TR BGCOLOR=^color[#FFFFFF;#505050]> <TD><FONT COLOR=#0F0F0F>^item[0]</FONT></TD> </TR> ] </TABLE> ]
|
|
|
|
|