ГОСТ Р ИСО 13584-25—2010
END_REPEAT:
RETURN(result);
END_FUNCTION;— compatible_aggregateJype_and_value
Г
7.4.5 Функция compatible_final_typo_and_value
Функция compatible_final_type_and_valu
0
обеспечивает выполнение проверки совместимости ти
пов data_typo и primitive_value.
Даннаяфункция проверяет соответствующий типданных, который ассоциирован стипом typ.
Для integer_value. real_value. numbor_value. booloanvalue. translatable_string_value и
ontity_lnstance_value управление непередается за пределы данной функции.
Для экземпляров словарных классов (dic_class_instance) и значений спецификации уровня
(level_spec_value) вызываются соответственно функции compatible_class_and_class и compatible_
level_type_and_instance.
Данная функция возвращает значение FALSE (ложно), если ни один из этих типов не является воз
можнымтипом параметра val.
Спецификация EXPRESS:
*>
FUNCTION compatiblejinaljype_and_value(
typ: data Jype: val: primitive_value): LOGICAL:
LOCAL
set_string: SET OF STRING := []:
setjnteger: SET OF INTEGER := [];
codejype: non_quantitative_code_type;
intjype: non_quantitativeJntJype;
END LOCAL;
IF(’IS013584_INSTANCE_RES0URCE_SCHEMA.INTEGER_VALUE’ INTYPEOF(val))
THEN
IF (CISO13584_IEC61360_DICTIONARY_SCHEMA.- ♦
■NON_QUANTITATIVE_INT_TYPE’ INTYPEOF(typ)))
THEN
setjnteger := Q;
codejype := typ;
REPEAT j := 1 TO SIZEOF(code_type.domain.its_values);
setjnteger := setjnteger ♦
oodejype.domain.its_values[j].value_code;
END_REPEAT;
RETURN(val IN set_mteger);
ELSE
RETURN((’ISO13584_IEC613б0_DICTIONARY_SCHEMA.INT_TYPE,
INTYPEOF(typ))OR
((•|SO13584_IEC61360_DICTIONARY_SCHEMA.NUMBER TYPE’
INTYPEOF(typ))
ANDNOT(’ISO13584_IEC61360_DICTlONARY_SCHEMA.REAL_TYPE’
INTYPEOF(typ)))):
ENDJF;
ENDJF:
IF(’IS013584JNSTANCE_RES0URCE_SCHEMA.REAL_VALUE’ INTYPEOF(val))
THEN
RETURN((’ISO13584JEC61360_DICTIONARY_SCHEMA.REAL_TYPE’
IN TYPEOF(typ)) OR
(CISO13584_IEC61360_DICTIONARY_SCHEMA.NUMBER_TYPE’
INTYPEOF(typ))
ANDNOT(’IS013584JEC61360_DICTIONARY_SCHEMA.INT_TYPE’
IN TYPEOF(typ))));
ENDJF:
21