EGL 源格式的函数部件

可以在 EGL 文件中声明函数,如 EGL 源格式中所述。

以下示例显示了一个带有两个嵌入函数的程序部件,其中还包含一个独立函数和一个独立记录部件:
  Program myProgram(employeeNum INT)
    {includeReferencedFunctions = yes}

    // program-global variable
      employees record_ws;
      employeeName char(20);

    // a required embedded function
    Function main()

      // initialize employee names
      recd_init();

      // get the correct employee name
      // based on the employeeNum passed
      employeeName = getEmployeeName(employeeNum);
    end

    
    // another embedded function
    Function recd_init()
      employees.name[1] = "Employee 1";
      employees.name[2] = "Employee 2";
    end

      end

    
  // standalone function
  Function getEmployeeName(employeeNum INT) returns (CHAR(20))

    // local variable
    index BIN(4);
    index = syslib.size(employees.name);
    if (employeeNum > index)
      return("Error");
    else
      return(employees.name[employeeNum]);
    end

    
  end

    
  // record part that acts as a typeDef for employees
  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
返回给调用程序的数据的长度。长度是一个整数,它表示返回的值中的字符或数字的数量。
decimals
对于某些数字类型,可以指定 decimals,它是用来表示小数点后的位数的整数。最大小数位数是以下两个数字中较小的那一个:18 或声明为 length 的位数。小数点不与数据存储在一起。
"dateTimeMask"
对于 TIMESTAMP 和 INTERVAL 类型,可指定“dateTimeMask”,它会赋予日期时间值中的给定位置特别的意义(如“年份位”)。掩码不会与数据存储在一起。
statement
EGL 语句,如 EGL 语句中所述。大多数情况下以分号结尾。
variableDeclaration
变量声明,如函数变量中所述。
containerContextDependent
指示是否扩展用于解析函数的名称空间,这些函数是由正被声明的函数调用的。缺省值为 no

此指示符将在从 VisualAge® Generator 迁移的代码中使用。有关详细信息,请参阅 containerContextDependent

相关概念
EGL 项目、包和文件
函数部件
Import
类型为 basicLibrary 的库部件
类型为 nativeLibrary 的库部件
部件
对部件的引用
引用 EGL 中的变量
EGL 语句和命令的语法图
Typedef

相关参考
数组
containerContextDependent
EGL 语句
函数调用
函数参数
函数变量
INTERVAL
I/O 错误值
命名约定
基本类型
TIMESTAMP

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.