uCosminexus Interschema ユーザーズガイド
組み込み関数のインタフェース(戻り値,引数)をFUNCnnnキーで定義します。組み込み関数の定義数分だけキー定義の行を記述します。
- <この項の構成>
- (1) 書式
- (2) 説明
- (3) 注意
FUNCnnn=戻り値の型△名前(引数1の型,引数2の型,...)
注:△は,半角スペースを表しています。
- FUNCnnn
- nnnには,組み込み関数のIDを指定します。組み込み関数のIDは,001から999まで指定できます。組み込み関数のIDは必ず3桁で指定してください。先頭の0は省略できません。ここで指定したIDは,ほかのセクションで指定するIDと一致させる必要があります。
- 行をID順にソートする必要はありません。また,IDは連続していなくてもかまいません。ただし,必ず最大IDが[Userfunc_MaxId]セクションのMAXキーに定義されている必要があります。
- 戻り値の型
- 組み込み関数の戻り値の型を指定します。戻り値の型は,「表11-2 ユーザ組み込み関数で使用する型」に示す型の中から指定する必要があります。ただし,ET_PTR型,ET_ENVSTRING型は指定できません。
- 名前
- 組み込み関数の名前を指定します。名前には,半角英数字だけを使用できます。ただし,名前の先頭文字は英字にする必要があります。長さは64バイト以内で指定します。
- ここで指定した組み込み関数の名前が,FDLエディタ及びMDLエディタの[関数名]ダイアログの関数リストの関数名欄に表示されます。
- 名前の指定では,Interschemaが標準で提供している関数名やほかのユーザ組み込み関数名と同じ名前は指定できません。
- 関数名の先頭文字は,次のどれかの文字にしてください。
- U,u,W,w,X,x,Y,y,Z,z
- Interschemaが標準で提供している関数については,「6.7.3 関数」を参照してください。
- 引数の型
- 組み込み関数の引数の型を指定します。引数の型は,「表11-2 ユーザ組み込み関数で使用する型」に示す型の中から指定する必要があります。ただし,ET_PTR型は指定できません。また,Java言語の出口関数の場合,ET_STRING型は指定できません。
- 引数が複数個ある場合は,引数の数だけ半角コンマで区切って記述します。引数がない場合は,括弧だけを記述します。引数が可変個の場合は,繰り返し部分の先頭の型の後に「...」を記述します。ただし,可変個引数の繰り返し部分は引数の最後に記述する必要があります。また,繰り返し部分はすべて同じ型にする必要があります。可変個引数の定義例を,次に示します。
FUNC001=ET_INT USRFNC(ET_STRING,ET_INT,...※)
注※ ...は,ET_INT型の引数の繰り返しを表します。
- ユーザ組み込み関数で使用する型
- ユーザ組み込み関数で使用する型を次に示します。戻り値の型,及び引数の型は,次に示す型の中から指定してください。
表11-2 ユーザ組み込み関数で使用する型
型 |
意味 |
備考 |
ET_INT |
整数 |
C言語のlong型(32bit)として表現できる範囲の整数です。 |
ET_REAL |
実数 |
C言語のdouble型(32bit)として表現できる範囲の実数です。 |
ET_STRING |
文字列 |
− |
ET_STREAM |
バイト列 |
− |
ET_DTM |
日付時刻 |
日付,時刻,日付時刻型に対応します。 |
ET_PTR |
ポインタ型 |
出口関数引数だけで使用され,ユーザ組み込み関数の引数,及び戻り値では使用できません。 |
ET_ENVSTRING |
実行環境文字コード文字列型 |
実行環境の文字コードに変換された文字列です。ユーザ組み込み関数の引数だけで使用できます。 |
- (凡例)
- −:該当しません。
- このセクションを省略した場合,ユーザ組み込み関数は使用できません。
- FUNCnnnキーを省略した場合や記述に不備があった場合,そのキーで定義した組み込み関数は使用できません。
- 「戻り値の型」と「名前」の間には,半角スペースを一文字入れる必要があります。その他の場所にはスペースを入れないでください。
- 「=」の右辺の文字列は,255バイト以内で記述する必要があります。
- ユーザ組み込み関数の引数として指定できる要素は,標準で提供している関数と同じです。実引数の型と組み込み関数の引数の型が異なる場合の変換処理も標準組み込み関数と同じ規則に従います。ただし,整数型(ET_INT)の引数に小数が入力される場合は,小数部を切り捨てた整数に変換します。
- 整数型(ET_INT)引数にC言語のlong型で収まらない範囲の整数が入力された場合や,実数型(ET_REAL)引数にdouble型で収まらない範囲の実数が入力された場合は,変換時にエラーとなります。日付時刻型(ET_DTM)についても同様です。
- C言語の出口関数に対応する組み込み関数で,実行環境文字コード文字列型(ET_ENVSTRING)を使用する場合,[Userfunc_Option]セクションでオプションUSE02IFの指定が必要です。Java言語の出口関数に対応する組み込み関数では,このオプションの指定は不要です。
All Rights Reserved, Copyright (C) 2000, Information-technology Promotion Agency, Japan.
All Rights Reserved. Copyright (C) 2005, 2008, Hitachi, Ltd.
All Rights Reserved, Copyright (C) 1985-1998, Microsoft Corporation.