マクロの呼出し
マクロの呼出し方は次の3つ
1. ノーマルマクロ
関数テンプレートおよび項目データ内にて利用
$macro:マクロ名$
$macro:マクロ名(引数1[,引数2…])$
2. ラインマクロ
関数テンプレートおよび項目データ内にて利用
[[項目名->@マクロ名]]
・・・項目データが一行単位でマクロ変換
・・・注)項目名と同名のマクロがある場合、暗黙的に対応する。
3. ステートマクロ
アウトプット部で使用
//[PSGG OUTPUT START] indent(20) $/正規表現/->#マクロ名$
・・・ステート名を正規表現でフィルター後マクロ変換
ノーマルマクロと引数
ノーマルマクロの引数は、マクロ名を引数0とし括弧内の先頭を引数1とし後に続く。
例)
$hoge(a,b)$
上記の引数は…
引数0 : hoge
引数1:a
引数2:b
行変換時の引数分解
行マクロの引数解釈
1.カンマ区切りデータ
左から引数0、1、・・・となる。
例)
tokyo,osaka,yokohama
・・・引数0="tokyo" 引数1="osaka" 引数2="yokohama"
2.関数
関数名を引数0として、関数の引数を引数1、引数2・・・となる。
例)
hoge(tokyo,osaka)
・・・引数0="hoge" 引数1="tokyo" 引数2="yokohama"
マクロの定義場所
マクロの定義場所は3ヵ所
1. setting.ini内の[macro]カテゴリ
2. ユーザマクロファイル
3. 生成先ファイルの マクロ定義開始マーク( :psgg-macro-start)と終了マーク(:psgg-macro-end)の間
:psgg-macro-start
マクロ定義
:psgg-macro-end
マクロ定義方法
マクロ名=変換値
または
マクロ名=@@@
変換値
@@@
引数の使い方
{%数字}
例)
#マクロ
hoge=I will go to {%1} and {%2}.
#呼出し
$macro:hoge(tokyo,osaka)$
#変換
I will go to tokyo and osaka.
引数の使い方 ダブルクオート削除
{%~数字}
文字列前後のダブルクオーテーションを削除
例)
#マクロ
hoge=I will go to {%~0}.
#呼出し
$hoge:"tokyo and osaka"$
#変換
I will go to tokyo and osaka.
行マクロ
@マクロ名
項目値の行ごとに対応するマクロ
例)
#マクロ
@set=@@@
SetPosition({%0},{%1});
@@@
#テンプレート
[[points->@set]]
#pointsの値
100,50
100,150
100,200
#変換
SetPosition(100,50);
SetPosition(100,150);
SetPosition(100,200);
特別行マクロ
項目名と同じ行マクロがある場合、自動であてがわれる。
例)
#マクロ
@points=@@@
SetPosition({%0},{%1});
@@@
#テンプレート
[[points]]
#pointsの値
100,50
100,150
100,200
#変換
SetPosition(100,50);
SetPosition(100,150);
SetPosition(100,200);
行番号引数
{%N}
行マクロ時に、その行数を示す。
基数は0。