#FUNC で始まるセクションです。ここではユーザーが作成する関数を定義します。
ユーザー定義関数は16384個まで定義可能です。それ以上定義した場合、コンパイルエラーになります。
定義の仕方は以下の通りです。
#FUNC 型 関数名([VAR] [引数[,[VAR] 引数...]) 複文
型は関数の戻り値の型を指定します。以下の3つの内のいずれか1つを指定します。
| int | 数値 |
| str | 文字列 |
| bool | 論理値 |
関数名はA-Z,0-9,_で構成される、60文字までの文字列です。ただし、先頭に数字は使用できません。また、システムで予約されている判定式や手続きと同じ名前は使用できません。引数は省略することもできます。また関数名は大文字・小文字を区別しません。
例)
#FUNC str GetMyName($hoge)
{
return('My name is '+$hoge);
}
#FUNC int Kaijou(#i)
{
var #c,#r;
#r=1;
FOR #c=1 TO #i DO {
#r=#r*#c;
};
return(#r);
}
#FUNC bool IsBar()
{
if (#MUNI==#MONI) {
return(TRUE);
} else {
return( #HOGE==#HUGA );
}
}
引数、FORWARD宣言、再帰呼び出しについては#SUBと同じ扱いになります。
#SUBと違い、#FUNCの場合は戻り値を指定できます。戻り値はreturn手続きを使用します。