マクロの呼出し
マクロの呼出し方は次の3つ
1. ノーマルマクロ
関数テンプレートおよび項目データ内にて利用
$macro:マクロ名$
$macro:マクロ名(引数1[,引数2…])$

2. ラインマクロ
関数テンプレートおよび項目データ内にて利用
[[項目名->@マクロ名]]
・・・項目データが一行単位でマクロ変換
・・・注)項目名と同名のマクロがある場合、暗黙的に対応する。

3. ステートマクロ
アウトプット部で使用
//[PSGG OUTPUT START] indent(20) $/正規表現/->#マクロ名$
・・・ステート名を正規表現でフィルター後マクロ変換
ノーマルマクロと引数
ノーマルマクロの引数は、マクロ名を引数0とし括弧内の先頭を引数1とし後に続く。
例)
$macro: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

※ 1,2の手法が面倒なので、3の手法が追加された。
マクロ定義方法
マクロ名=変換値
または
マクロ名=@@@
変換値
@@@
引数の使い方
{%数字}
例)
#マクロ
hoge=I will go to {%1} and {%2}.
#呼出し
$macro:hoge(tokyo,osaka)$
#変換
I will go to tokyo and osaka.
引数の使い方 ダブルクオート削除
{%~数字}
文字列前後のダブルクオーテーションを削除
例)
#マクロ
hoge=I will go to {%~1}.
#呼出し
$macro: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。
マクロ定数
$statemachine$    //そのまま
$stateMachine$    //ロワーカメル
$StateMachine$    //アッパーカメル
$state_machine$  //スネーク
ステートマシン名に変換。
ステートマシン名はsetting.iniのstatemachineにて定義。
キャメル変換マクロ
$uc:文字列$  //アッパーキャメル
$lc:文字列$   //ローワーキャメル`