EGL ソース形式の関数パーツ

EGL ファイルに関数を宣言することができます。詳細については、『EGL ソース形式』に説明します。

以下の例では、2 つの組み込み関数を含むプログラム・パーツを、独立型の関数および独立型のレコード・パーツ とともに示します。
  Program myProgram(employeeNum INT)
    {includeReferencedFunctions = yes}

    // プログラム・グローバル変数
      employees record_ws;
      employeeName char(20);

    // 必要組み込み関数
    Function main() 

      // 従業員名の初期化
      recd_init();

      // 渡された employeeNum に基づいて
      // 目的の従業員名を取得
      employeeName = getEmployeeName(employeeNum);
    end

    // 別の組み込み関数
    Function recd_init()
      employees.name[1] = "Employee 1";
      employees.name[2] = "Employee 2";
    end
  end

  // 独立型の関数
  Function getEmployeeName(employeeNum INT) returns (CHAR(20))

    // ローカル変数
    index BIN(4);
    index = syslib.size(employees.name);
    if (employeeNum > index)
      return("Error");
    else
      return(employees.name[employeeNum]);
    end

  end

  // 従業員の typeDef として機能するレコード・パーツ
  Record record_ws type basicRecord
    10 name CHAR(20)[2];
  end
関数パーツの構文図は、以下のとおりです。

関数パーツの構文図
Function functionPartName ... end
パーツを関数として識別し、パーツ名を指定します。命名の規則については、『命名規則』を参照してください。
parameter
関数全体で使用でき、呼び出し元の関数から値を受け取るメモリー領域となるパラメーター。 パラメーターを宣言するために使用する構文については、『関数パラメーター』を参照してください。
returns (returnType)
関数が呼び出し側に戻すデータを記述します。戻りの型の特性は、呼び出し側関数内の値を受け取る変数と同じでなければなりません。
{alias = name}
関数が nativeLibrary 型のライブラリー内にある場合にのみ有効です。このコンテキストでは、name は DLL ベースの関数名で、EGL 関数名にデフォルト設定されます。DLL ベースの関数を使用して EGL 関数に名前を付ける際に検証エラーが発生した場合、alias プロパティーを明示的に設定してください。
dataItemPartName
関数に可視であり、戻り値の typedef (形式のモデル) として機能する dataItem パーツ。
primitiveType
呼び出し側に戻されるデータのプリミティブ型。
length
呼び出し側に戻されるデータの長さ。length は、戻される値の文字数または桁数を表す整数です。
decimals
一部の数値型には、decimals を指定できます。これは、小数点以下の桁数を表す整数です。小数部の桁の最大数は、18 または length で宣言された桁数の小さいほうです。小数点は、データとともに保管されません。
"dateTimeMask"
TIMESTAMP 型および INTERVAL 型には、"dateTimeMask" を指定できます。これは、日時値の特定の位置に意味 (「年の桁」など) を割り当てるものです。このマスクは、データと一緒には格納されません。
statement
EGL ステートメント。詳細については、『EGL ステートメント』に説明します。ほとんどはセミコロンで終了します。
variableDeclaration
関数変数』で説明されている変数宣言。
containerContextDependent
宣言されている関数によって呼び出される関数を解決するために使用される名前空間を拡張するかどうかの指示。 デフォルトは no です。

このインディケーターは、VisualAge® Generator からマイグレーションされたコードの中で使用します。詳細については、『containerContextDependent』を参照してください。

関連する概念
EGL プロジェクト、パッケージ、およびファイル
関数パーツ
インポート
basicLibrary タイプのライブラリー・パーツ
nativeLibrary タイプのライブラリー・パーツ
パーツ
パーツの参照
EGL での変数の参照
EGL ステートメントおよびコマンドの構文図
Typedef

関連する参照項目
配列
containerContextDependent
EGL ステートメント
関数呼び出し
関数パラメーター
関数変数
INTERVAL
入出力エラー値
命名規則
プリミティブ型
TIMESTAMP

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005.