4. Скриптинг Lua
Сам по себе язык GML является статичным. На нем можно описать диаграмму или
график без элементов динамики, т.е. значения тегов представляют собой определенные
числа или фиксированные строки. Кроме того, внутреннее представление
GML-текста в виде дерева также остается неизменным. Заставить графический отчет "играть",
т.е. добавить в него динамику, можно за счет скриптинга в языке GML. Другими
словами значения тегов представляют собой небольшие вычисляемые фрагменты на языке
скрипта, результаты вычислений которых и используются в тегах в качестве их
значений. Кроме того, появляется возможность динамически менять внутреннее представление
GML-текста, удаляя старые или добавляя новые ветви дерева с помощью скрипта.
Выбор языка Lua в качестве скриптинга языка GML определяется рядом причин:
- Движок Lua обладает исключительно высоким быстродействием при весьма
скромном размере (180K);
- Сам язык сочетает в себе простой синтаксис с высочайшей выразительной
мощью;
- Lua является кросс-платформенным языком, как и Java.
- Lua свободно распростаняется в исходных кодах и не является
коммерческим.
Синтаксически скрипты выделяются в GML-тексте с помощью фигурных скобок '{' и '}'.
БНФ-нотация с учетом данного расширения выглядит следующим образом:
<Value> ::= <Integer> | <Real> | <String> | '[' <List> ']'
| '{' <Script> '}'