Call
A call expression applies a function value to its arguments.
Process
At runtime:
- the callee is evaluated;
- the arguments are evaluated, left to right; and
- the callee is applied to the arguments' values, and its result is the call's value.
Assertions
- The callee has a function type.
- The number of arguments equals the number of parameters.
- Each argument has its parameter's type, and its expected type is the parameter's type.
A call whose callee has no runtime representation occurs at compile time.
Syntax
call_operation = left_paren, [ expression, { comma, expression } ], right_paren ;