* flex
* bison
* liblua5.2-dev
Судя из названия - основноя задача генерить код (используя некий язык "шаблонирования").
- var: переменная
- const: константа
<var[name]>
<var[name->subname]>
<var[name].methodName().anotherMethodName("arg", 100, <var[another]>)>
<const[name].methodName()>
- set: объявление переменной
<set name = (100 + 1) * 2>
<set name = "text">
<set name = <var[another]> + 1>
<if 1 == 1>TRUE</if>
<if 1 == 1>TRUE<else>FALSE</if>
<switch <var[foo]>>
<case "bar">BAR</case>
<case "baz">BAZ</case>
</switch>
<each <var[foo]> as <var[k]> <var[v]>>ITERATION</each>
- include: включение в текущий шаблон другого шаблона
<include name="/tmp/tpl.txt" input=<var[foo]> argName=<var[somename]> anotherArgName="text" andArgName=10>
- settings-param: настройки шаблона
<settings>
<param name=<var[input]>>
<param name=<var[somevar]>>
</settings>