関数コール

構文

function_call ::= id "(" [expression ("," expression)*] ")"

セマンティクス

関数コール式は、関数を呼び出すために使用され、現在のバージョンでは、組込み(システム)関数のみを呼び出すことができます。構文的には、関数コールは、呼び出す関数を名前で識別するidで始まり、その後にカンマで区切られた0個以上の引数式の括弧で囲まれたリストが続きます。

各関数には、結果の順序タイプおよび各パラメータの順序タイプを指定するシグネチャがあります。関数コール式の評価は、各引数の評価から始まります。各引数式の結果は、対応するパラメータ・タイプのサブタイプである必要があります。それ以外の場合は、パラメータ・タイプに昇格できる必要があります。後者の場合、引数値は実際には予想されたタイプにキャストされます。最後に、タイプ・チェックおよび必要な昇格が行われた後、昇格された可能性のある引数値を使用して関数の実装が呼び出されます。

現在、次のタイプの昇格がサポートされています。
  • INTEGERは、FLOATまたはDOUBLEに昇格できます。
  • LONGは、FLOATまたはDOUBLEに昇格できます。
  • STRINGはENUMに昇格できますが、キャストが成功するのは、文字列値が入力文字列と同じであるトークンがENUM型に含まれている場合のみです。

現在使用可能な関数のリストは、組込み関数の章に示されています。