FUNCTION Used_variables
(arg : Generic_expression) : SET [0:?] OF Generic_variable;
LOCAL result : SET OF Generic_variable := []; END_LOCAL;
IF 'GENERIC_EXPRESSION_ARM.GENERIC_VARIABLE' IN TYPEOF (arg) THEN RETURN ([arg]); END_IF;
IF 'GENERIC_EXPRESSION_ARM.UNARY_GENERIC_EXPRESSION' IN TYPEOF (arg) THEN RETURN (Used_variables (arg\Unary_generic_expression.operand)); END_IF;
IF 'GENERIC_EXPRESSION_ARM.BINARY_GENERIC_EXPRESSION' IN TYPEOF (arg) THEN RETURN(Used_variables(arg\Binary_generic_expression.operands[1]) + Used_variables (arg\Binary_generic_expression.operands[2])); END_IF;
IF 'GENERIC_EXPRESSION_ARM.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF (arg) THEN REPEAT i := 1 TO SIZEOF(arg\Multiple_arity_generic_expression.operands); result := result + Used_variables( arg\Multiple_arity_generic_expression.operands[i]); END_REPEAT; RETURN (result); END_IF; RETURN ([ ]); END_FUNCTION; -- Used_variables
|