call_expression - Call expression
An action might be called using a variable call expression. Thus, the compile action may call different procedures e.g. depending on the program language type (PROG_LANG). The command name might be constructed from different option or expression variables.
In order to call different procedures for the same action (e.g. debug and no-debug procedures), the call expression may refer to a procedure name, which has to be defined in the list of procedures for the action. In order to support generic call expressions, the call expression must result in a name which is defined as procedure in the procedures list of the action definition. When no procedure with the process name could be located in the procedure list, the name is directly used to call the requested process, i.e. in case of command or program it has to refer to the complete file name.
Usually, composed actions do not require a call expression. In order to select a specific sub action for execution, one may define a call expression. In this case, an action with the name of the resolved call expression is searched in the action list and only the action defined in the action list will be executed.
After evaluating the call expression, the value is stored in the PROCEDURE option variable and might be referenced in parameters.
// c:/Sample/ SampleGUI/bat/ s9 cpp .cmd
%PRJ_ROOT%/%PRJ_PATH%/bat/%ENV_NAME%%PROG_LANG%.cmd
-> c:/Sample/SampleGUI/bat/s9cpp.cmd
// referring to procedure name
%DEBUG%%ENV_NAME%%PROG_LANG%
-> ds9cpp // name of a procedure in the procedure list