next up previous contents
Next: EvalStatement Up: Computational statements Previous: StoreVariableStatement   Contents


A CallStatement represents a procedure call, storing the result to a variable.

    concrete CallStatement : Statement
         VariableSymbol* reference destination in destination_vars;
         Expression * owner callee_address in source_ops;
         vector<Expression * owner> arguments in source_ops;

destination variable to which the result of the procedure is stored. The type of the variable must be a QualifiedType that references the DataType in the callee_address ProcedureType's return_type. If the result_type is a VoidType, or the result type is not used, the destination field will be NULL.
callee_address Must be a pointer-to-ProcedureType and its value is the address of the procedure to call. The procedure type pointed to by the type of the callee_address must match the actual type of the procedure being called.
arguments A vector of actual operands. The number and types of the arguments must be compatible with the callee_address result type

SUIF Nightly Build