掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     マクロの中で変数を使いたい


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
tkouno
投稿日時: 2007-10-29 13:56
EA Administrator
投稿: 3939

マクロの中で変数を使いたい

○ご質問

?マクロの中で変数を使いたいのですが
正しく出力されず、意図しない内容がソースコードに
出力されます。

例:
$INDENT=" "
$ops=%classHasParent=="T" ? $INDENT $INDENT "super.finalize();" : ""%+"\n\t}"

→インデント変数の内容を2つ分追加したい

○回答

?マクロの中では変数は使用できません。申し訳ございません。
(この点はヘルプファイルに書かれていませんので、追記いたします。)
よって、以下のように修正のうえご利用ください。

(なお、Enterprise Architectが解釈できない内容がある場合には
そのまま出力しようといたします。その結果
ご指摘のように意図しない内容が出力されます。)


$ops=%classHasParent=="T" ? "$DUMMY$DUMMYsuper.finalize();" : ""%+"\
n\t}"
とし、

$opsの出力の行で
$ops
の代わりに
%REPLACE($ops,"$DUMMY",$INDENT)%
としてください。

つまり、一度$DUMMYという文字列として出力し
最後にREPLACEマクロで、変数の中身と置換するという手順になります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ