FUNCTION used_variables
(arg : generic_expression) : SET [0:?] OF generic_variable;
LOCAL result : SET OF generic_variable := []; END_LOCAL;
IF 'ISO13584_GENERIC_EXPRESSIONS_SCHEMA.GENERIC_VARIABLE' IN TYPEOF (arg) THEN RETURN ([arg]); END_IF;
IF 'ISO13584_GENERIC_EXPRESSIONS_SCHEMA.UNARY_GENERIC_EXPRESSION' IN TYPEOF (arg) THEN RETURN (used_variables (arg\unary_generic_expression.operand)); END_IF;
IF 'ISO13584_GENERIC_EXPRESSIONS_SCHEMA.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 'ISO13584_GENERIC_EXPRESSIONS_SCHEMA.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
|