ГОСТ Р ИСО 13584-31—2010
Спецификация на языке EXPRESS:
*>
FUNCTION tree_api_group_structure(group :api_group) : BOOLEAN;
LOCAL
i : INTEGER;
j : INTEGER;
assigned_group : BAG [1:?] OF api_group;
ENU_LOCAL;
— Determine the bag of the api_groups that are assigned to the
-- group argument.
assigned_groupr- a3sigr.ed_api_group (group);
-- Determine that the bag has elements.
IF SI2EOF(assigned_group) > 0 THEN
— Check each element of the bag against each element.
REPEAT i1 TO H1INDEX(assigned_group);
REPEAT j1 TO HIINDEX(assigned_group);
-- If the two elements are the same
-- return false.
IF ((assigr.ed group[i]assigned_group(j}) AND (i<> j)) THEN
RETURN (FALSE);
END_IF;
END_R£PEAT;
END_REP£AT;
END_TF;
— Return true when all elements are checked and
-- no error conditions found.
RETURN (TRUE);
END_FUNCTION;
(*
6.3.4.1.1 Функция assigned_api_group
Функция assigned_api_group используется функцией tree_api_group_structure для рекурсивного
вычисления групп интерфейса прикладного программирования api_group, назначенных для аргумента
group.
Спецификация на языке EXPRESS:
л)
FUNCTION assigned_api_group(group : api_group) : BAG 10:?] OF api_group;
LOCAL
i: INTEGER;
assignment: SET OF api_group_assignment;
assigned_iterns : BAG OF api_grouped_item;
local_assigned_groups : BAG OF api_group;
assigned_groups : BAG OF api_group;
£NU_LOCAL;
assigned_iterns[];
local_assigr.ed_groups [];
-- Determine the subset of the api_group_assignments that assign items to
— the group argument .
assignmentUSED1N (group, ’API_ABSTRACT_SCHEMA.API_GROUP ASSIGNMENT\*
+ ’GROUP_ASSIGNMENT.ASS1GNED_GR0UP’);
-- gathers all the api_groupeed_iterns
REPEAT i 1 TO HIINDEX(assignment);
assigned_iterns assigned_iterns + assignment(ij.items;
£NU_REPEAT;
-- Determine the subset of api_groupeed_item that are api_groups.
local_assigned_groups QUERY{z <* assigned_items |
’AP1_ABSTRACT_SCHE1’IA.AP1_GR0LP’ IN
TYPEOF(z)
) ;
108