FUNCTION compatible_es_values
(esval1 : elementary_space_enumerators, esval2 : elementary_space_enumerators) : BOOLEAN;
LOCAL esval1_is_numeric, esval2_is_numeric : LOGICAL; END_LOCAL; IF (esval1 = esval2) OR (esval1 = es_generics) OR (esval2 = es_generics) THEN RETURN (TRUE); END_IF; esval1_is_numeric := (esval1 >= es_numbers) AND (esval1 <= es_integers); esval2_is_numeric := (esval2 >= es_numbers) AND (esval2 <= es_integers); IF (esval1_is_numeric AND (esval2 = es_numbers)) OR (esval2_is_numeric AND (esval1 = es_numbers)) THEN RETURN (TRUE); END_IF; IF esval1_is_numeric XOR esval2_is_numeric THEN RETURN (FALSE); END_IF; IF ((esval1 = es_logicals) AND (esval2 = es_booleans)) OR ((esval1 = es_booleans) AND (esval2 = es_logicals)) THEN RETURN (TRUE); END_IF; -- All other cases are incompatible RETURN (FALSE); END_FUNCTION; -- compatible_es_values
|