ГОСТ Р ИСО 13584-101—2010
Д и а п а зо н ва ри а нт а
vic w _ c o n tro t_ v a ria b le _ ra n g c
Д и а п а зо н н е за р е ги с т р и р о в а н н о го
ва ри а н т а v ie w _ c o n tro l_ v a ria b le _ ra n g e
(
0
:
0
)
[
0
:
0
]
[
0
:
0
]
[
0 2
)
Спецификация на языке EXPRESS
•)
RULE IS013584 101 variant_and_unregistered_variant_compatibility_rule
FOR
(abstract_functional_model_class);
LOCAL
variant_set: SET OF view_control_variable_range := (];
unreg_variant_set: SET OF view_control_variable_range := [ J;
is_variant, is_unreg_variant: BOOLEAN;
may_be_variant. may_be_unreg_variant: BOOLEAN;
variant_1„mandatory. unreg_variant_greater_than_0; BOOLEAN;
res.compatible_variant_and_unreg_variant; BOOLEAN :=TRUE;
END_LOCAL;
REPEAT i := 1TOSIZEOF(abstract_functional_model_ciass);
unreg_variant_set :=QUERY(vcvr <*
abstract_functional_model_class[i].v_c_v_range|
(vcvr.parameter_type.name_scope.code = ’basic_geometry’)
AND (vcvr.parameter_type.name_scope.defined_by.codo = ’0112/1///13S84_101_ 1*
AND (vcvr.parameter_type.code = ’unreg_varianr));
is_unreg_variant := (SIZEOF(QUERY(vcvr <*variant_set
|(vcvr.range_lobound =0)AND (vcvr.range_hibound = 0))) = 1);
may_be_unreg_variant ;= (SIZEOF(QUERY(vcvr<* variant_set
|(vcvr.range_lobound = 0)AND (vcvr.range_hibound > 0))) = 1);
variant_1_mandatory ;= (SIZEOF(QUERY(vcvr<* variant_set
|(vcvr.range_lobound = 1)))= 1);
is_variant := (SIZEOF(QUERY(vcvr <* unreg_variant_set
|(vcvr.range_lobound =0)AND (vcvr.range_hibound = 0))) = 1);
may_be_variant ;= (SIZEOF(QUERY(vcvr <* unreg_variant_set
|(vcvr.range_lobound = 0)AND (vcvr.range_hibound > 0))) = 1);
unreg_variant_greater_than_0 ;= (SIZEOF(QUERY(vcvr<*
unreg_variant_set |(vcvr.range_lobound >= 1))) = 1);
IF (is_variant AND variant_1„mandatory) OR (is_unreg_variant AND
unreg„variant_greater_than_0) OR (may_be unreg_variantAND may_be_variant)
THEN
res ;=TRUE;
ELSE
res := FALSE;
ENDJF;
Пример — Недопускаетсяприменятьследующ иедиапазоныварианта
vlew_control_varlable_ranges и незарегистрированного варианта:
variant_set ;= QUERY(vcvr <*
abstract_functional_model_class[i].v_c_v_range|
(vcvr.parametor_type.name_scope.cod
0
= ’basic_geometry’)
AND (vcvr.parameter_type.name_scope.defined_by.code = ’0112/1//У13584_101_1*
)
AND (vcvr.parameter_type.code =’variant’));
)
17