1

<prop1.subprop1:sometemplate>プロパティのプロパティのリストにテンプレートを適用するために書きたいと思っています。これを行うには、2 つのレベルのテンプレートを作成する必要があります。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)

ここで、最初の「reqparam」は最も深い項目からのものです。次のように記述しようとしましたが、再帰的にリストを作成しようとした 2 番目のテンプレートで、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()>)>"
4

0 に答える 0