Статус документа
Статус документа

ГОСТ Р ИСО 10303-14-2015 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 14. Методы описания. Справочное руководство по языку EXPRESS-X (Переиздание)

Приложение E
(справочное)

     
Функция unnest оператора пути


Следующий текст на языке EXPRESS реализует функцию unnest, на которую даны ссылки в 10.8 и 10.9:

FUNCTION unnest (src : GENERIC) : AGGREGATE OF GENERIC;

LOCAL

result : AGGREGATE OF GENERIC := [ ];

tmp : AGGREGATE OF GENERIC;

END_LOCAL;

IF SIZEOF ( [ 'LIST', 'BAG', 'SET', 'ARRAY', 'AGGREGATE' ] * TYPEOF (src)) > 0

THEN

REPEAT i := 1TO HIINDEX (src);

tmp := unnest (src [i]);

REPEAT j := 1 TO HIINDEX (tmp);

result := result + tmp [j];

END_REPEAT;

END_REPEAT;

ELSE

IF SIZEOF ( [ 'STRING', 'BINARY', 'LOGICAL', 'NUMBER' ] * TYPEOF (src) ) = 0

THEN -- entity instance

result := result + src;

END_IF;

END_IF;

RETURN (result);

END_FUNCTION;