` | PARSER | документация |

parser

faqfaq
авторыавторы
документациядокументация

в действиив действии
куда говоритькуда говорить
жаргонжаргон

скачатьскачать

примерыпримеры
форумфорум

документация

3. Операторы Парсера

3.3. Ветвление кода

3.3.1. Выбор одного варианта из двух. Оператор if

Формат вызова

^if[логическое_выражение;код_если_выражение_истинно]

^if[логическое_выражение;код_если_выражение_истинно;
                         код_если_выражение_ложно
]

Аргументы

логическое_выражение — логическое выражение, результат которого служит критерием выбора вариантов.

код_если_выражение_истинно — код, выполняемый, если логическое выражение истинно.

код_если_выражение_ложно — код, выполняемый, если логическое выражение ложно.

Описание

Оператор вычисляет значение логического выражения (см. п. 1.7). Если логическое выражение истинно, то оператор возвращает значение аргумента код_если_выражение_истинно. Если логическое выражение ложно, то оператор возвращает значение аргумента код_если_выражение_ложно или, если оно не было передано, пустую строку.

Замечание. Аргумент, значение которого не требуется для вычисления значения оператора, не обрабатывается Парсером. Это следует иметь в виду, если у операторов, входящих в этот аргумент, имеются побочные эффекты, и не рассчитывать на них.

Примеры

^if[1<2;Один и правда меньше двух;Математика сбоит]

3.3.2. Выбор одного варианта из нескольких. Оператор switch

Формат вызова

^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;Ой, кто это?!]
]

3.3.3. Проверка строки на пустоту. Оператор default

Формат вызова

^default[строка;код_если_пусто]

Аргументы

строка — проверяемая строка; возвращается оператором, если она не пуста.

код_если_пусто — строка, возвращаемая оператором, если значение аргумента строка пусто.

Описание

Оператор возвращает значение аргумента строка, если оно не является пустой строкой. В противном случае возвращает значение аргумента код_если_пусто.

Примеры

^default[^form[name];Аноним]

3.3.4. Проверка строки на пустоту. Оператор ifdef

Формат вызова

^ifdef[строка;код_если_не_пусто]

^ifdef[строка;код_если_не_пусто;код_если_пусто]

Аргументы

строка — строка, о которой нужно узнать, пустая она или нет.

код_если_не_пусто — код, выполняемый, если строка не пуста.

код_если_пусто — код, выполняемый, если строка пуста.

Описание

Если строка не пуста, оператор возвращает значение аргумента код_если_не_пусто. В противном случае возвращается значение аргумента код_если_пусто. Если строка пуста, а значение аргумента код_если_пусто не указано, то возвращается пустая строка.

Примеры

^ifdef[^var[title];<H1>^var[title]</H1>;Без названия!]

3.3.5. Проверка значений на равенство. Оператор eq

Формат вызова

^eq[строка1;строка2;код_если_равно]

^eq[строка1;строка2;код_если_равно;код_если_неравно]

Аргументы

строка1, строка2 — значения, проверяемые на равенство.

код_если_равно — возвращается, если значения аргументов строка1 и строка2 равны.

код_если_неравно — возвращается, если значения аргументов строка1 и строка2 не равны.

Описание

Проверит значения аргументов строка1 и строка2 на равенство. Если значения равны, возвращается значение аргумента код_если_равно, иначе — код_если_неравно. Если равенство не соблюдается, а значение аргумента код_если_неравно не указано, возвращается пустая строка.

Примеры

^eq[1;2;никогда не будет возвращаться;всегда будет возвращаться]

3.3.6. Сравнение целочисленных значений. Оператор cmp

Формат вызова

^cmp[целое_число1;целое_число2;код_если_меньше;код_если_равно;код_если_больше]

Аргументы

целое_число1;целое_число2 — целочисленные значения, которые требуется сравнить.

код_если_меньше — возвращается, если целое_число1 меньше, чем целое_число2.

код_если_равно — возвращается, если целое_число1 и целое_число2 равны.

код_если_больше — возвращается, если целое_число1 больше, чем целое_число2.

Описание

Оператор сравнивает значения аргументов целое_число1 и целое_число2. Если целое_число1 меньше, чем целое_число2, возвращается аргумент код_если_меньше, если больше — код_если_больше, а в случае равенства возвращается код_если_равно.

Примеры

^cmp[^var[speed];100;медленно!;хм, неплохо - 100 км/час;спешишь на тот свет?]

3.3.7. Сравнение строки c началом URI страницы. Оператор start

Формат вызова

^start[начало_URI;код_если_совпадает;код_если_не_совпадает]

Аргументы

начало_URI — строка, сравниваемая с началом URI страницы.

код_если_совпадает — код, возвращаемый, если строка совпадает с началом URI текущей страницы.

код_не_совпадает — код, возвращаемый, если строка не совпадает с началом URI текущей страницы.

Описание

Если URI текущей страницы начинается значением аргумента начало_URI, то оператор возвращает значение аргумента код_если_совпадает, иначе — значение аргумента код_если_не_совпадает.

Примеры

^start[/admin;
       <BODY BGCOLOR=BLACK>;
       <BODY BGCOLOR=WHITE BACKGROUND=/i/very_beautiful.gif>
]

3.3.8. Вывод “полосатых” HTML-таблиц. Оператор color

Формат вызова

^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>
]


E-mail: mailbox@parser.ruCopyright © 1997-2001 Студия Артемия Лебедева
`