Stringtemplate 4 在StringTemplate中是否有引用属性的简明方法

Stringtemplate 4 在StringTemplate中是否有引用属性的简明方法,stringtemplate-4,Stringtemplate 4,我发现自己想要编写,将模板应用于属性的属性中的列表。为此,我必须创建两个级别的模板:我必须调用prop1上的外部模板,然后让它向下处理下一个属性 数据模型: class Clazz { String name; Class parent; } 目标: class(c) ::= << <c.parent.name> <! oops, not allowed !> >> 其中第一个“reqparam”来自最深的项目。我试图写以

我发现自己想要编写
,将模板应用于属性的属性中的列表。为此,我必须创建两个级别的模板:我必须调用prop1上的外部模板,然后让它向下处理下一个属性

数据模型:

class Clazz {
    String name;
    Class parent;
}
目标:

class(c) ::= <<
   <c.parent.name> <! oops, not allowed !>
>>
其中第一个“reqparam”来自最深的项目。我试图写以下内容,但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()>)>"
self_和_列表(列表):=>
递归请求(属性):=“”
self_和_req_参数(属性):=“”

你能给出一个更完整的例子吗?很难说清楚你的确切意思。@280Z28示例补充道。
class Attr {
   List<String> requiredParameters;
   Attr baseObject;
}
def __init__(self, reqparam1, ... rewqparamN)
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()>)>"