我发现自己想写<prop1.subprop1:sometemplate>
来将模板应用到属性属性中的列表。要做到这一点,我必须制作两个级别的模板:我必须在prop1上调用外部模板,然后让它处理下一个属性。
数据模型:
class Clazz {
String name;
Class parent;
}
目标:
class(c) ::= <<
<c.parent.name> <! oops, not allowed !>
>>
所以我最终得到了
<c.parent:{ p | <p.name> }>
这有点笨拙。
然后我得到了这个:
class Attr {
List<String> requiredParameters;
Attr baseObject;
}
我想生成:
def __init__(self, reqparam1, ... rewqparamN)
第一个&#39; reqparam&#39;来自最深的项目。我试着编写以下内容,但ST在第二个模板中给出了语法错误,我尝试递归以构建列表。
self_and_list(list) ::= << self<if(first(list))>, <endif><list;separator=", "> >>
recurse_req(attr) ::= "<[<attr.baseObject:recurse_req()>, <attr.requiredParameters>]>"
self_and_req_params(attribute) ::= "<self_and_list(<attribute:recurse_req()>)>"