Общие синтаксические правила
языка описания шаблонов печати NDemia CashMatic.
- все символы, не требующие макрообработки, выводятся на печать.
- % (знак процента) называется мета-символом, если он встречается в тексте шаблона, то дальнейшая обработка текста зависит от непосредственно следующего за мета-символом знака.
- если за мета-символом следует знак процента ("%%") или непосредственно следует конец текста, то в выходной текст вставляется один знак процента.
- если за мета-символом следует левая круглая скобка ("%("), то это - макроимя. Собственно макроименем является текст от "%(" до правой круглой скобки (")") включительно (или до конца текста шаблона). Макроимя при обработке заменяется на определённый соответствующий ему текст, вычисленный программно. Верхний/нижний регистр букв в макроименах не различается. Неизвестные макроимена просто удаляются (т.е. их значения считаются пустыми).
- если за мета-символом следует левая фигурная скобка ("%{"), то это - макроблок. Конец макроблока - комбинация "%}" (обратите внимание, процент перед скобкой, не "}%") или конец текста шаблона. Макроблоки могут вкладываться друг в друга (по обычным правилам вложения скобочных конструкций). Обработка макроблока зависит от типа макроблока - см. Макроблоки.
- если за мета-символом следует любой другой знак, то эта пара знаков (процент и другой знак) может рассматриваться как короткое макроимя. Если это макроимя имеет определённое значение, то в выходной текст вставляется это значение, в противном случае данная пара знаков пропускается в выходной текст без обработки (не удаляется). Однако разработчик шаблона не должен на это полагаться, поскольку в будущих версиях могут быть определены новые комбинации знаков с какой-либо обработкой. При необходимости вывода на печать знака "%" его следует удваивать ("%%").
- обрабатывается только исходный текст, за один проход. Текст, полученный в результате макроподстановок, дополнительно не обрабатывается.
- все неуказанные символы, включая разделители (пробелы, переводы строк и т.п.) являются значащими (входят в обрабатываемый текст), поэтому дополнительные разделители (для улучшения читаемости текста шаблона) можно вставлять только в комментариях.