NDemia Новости CashMatic Рубли Форум

Синтаксические правила для макроблоков


см. также: Шаблоны печати Синтаксис Макроблоки


Язык описания шаблонов печати NDemia CashMatic, синтаксические правила для макроблоков:
  • непосредственно за началом макроблока ("%{") следует заголовок макроблока, заголовок начинается с имени типа макроблока. Именем типа считается весь текст от первого знака после "%{" либо до первого двоеточия (":", невключительно), либо до левой круглой скобки ("("), либо до конца текста шаблона. Выполняемая обработка макроблока зависит от его типа.
  • если непосредственно за именем типа макроблока следует левая круглая скобка ("("), то далее весь текст до правой круглой скобки (")") считается параметром макроблока. Параметр макроблока может содержать любые символы, включая мета-символы, двоеточия и т.п., концом параметра является только правая круглая скобка (")"), возможность вложений скобок поддерживается (т.е. общее число открывающих скобок в параметре должно соответствовать числу закрывающих). Непосредственно за правой круглой скобкой (")") должно следовать двоеточие (":"). Выполняемая обработка текста параметра макроблока зависит от типа макроблока.
  • если тип блока неизвестен, то блок полностью включается в выходной текст как есть, включая скобочные комбинации ("%{" и "%}") и весь текст между ними. Если в блоке есть вложенные блоки, то к ним применяются обычные правила обработки, в зависимости от их типов. Разработчик шаблонов не должен полагаться на порядок обработки блоков неизвестного типа, поскольку в будущих версиях могут быть введены новые синтаксические правила.
  • текстом макроблока считается текст, начинающийся с первого знака после двоеточия, закрывающего тип макроблока, до последнего знака, предшествующего концу макроблока (закрывающей комбинации "%}" или концу текста шаблона).
  • в результате обработки текст макроблока включается в выходной текст от 0 до N раз (в зависимости от типа макроблока, параметра или параметров макроблока, и других условий). При многократном включении (циклический макроблок) текст включается каждый раз последовательно (первый символ i+1-го включения следует за последним символом i-того включения).
  • внутри макроблока могут меняться набор и значения действующих макроимён и типов макроблоков. При многократном включении (циклический макроблок) набор и значения действующих макроимён и типов макроблоков могут меняться в каждом проходе.
  • внутри макроблока могут быть вложены другие макроблоки. Обработка вложенных макроблоков выполняется столько раз, сколько раз включается в выходной текст охватывающий макроблок (от 0 до N).
  • конец строки включается в текст макроблока как символ. Конец макроблока не является концом строки, если текст макроблока должен включать в себя строку целиком или несколько целых строк, то конец макроблока должен находиться на следующей строке шаблона.
  • макроблок с пустым типом (начинающийся с комбинации "%{:") вставляется в выходной текст один раз, с удалением начальной комбинации "%{:", конечной комбинации "%}" и обработкой содержащихся внутри макроимён и макроблоков (это положение гарантируется для будущих версий языка описания шаблонов, блоки с пустым типом могут использоваться для дополнительной разметки шаблонов в любых целях, определяемых разработчиками шаблонов и прикладных программ).
тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2025 ndemia@ndemia.com