ГОСТ Р ИСО 10303-14—2015
Приложение Е
(справочное)
Функция unnest оператора пути
СледующийтекстнаязыкеEXPRESSреализуетфункциюunnest, накоторуюданыссылкив10.8и10.9:
FUNCTION unr.est(src :GENERIC) !AGGREGATE OFGENERIC;
LOCAL
result :AGGREGATEOFGENERIC [:;
trr.p:AGGREGATE OFGENERIC;
END_LOCAL;
IF SL2EOF((’LIST*, ’BAG’, ’SET’, ’ARRAY’, ’AGGREGATE’) - TYPEOF(src)) > C
THEN
REPEAT i :-lTOHIINDEX(src);
trap ur.nest<src[i]);
REPEAT j 1TOHIINDEX(tmp);
result result +tir.p]jj;
ENU_REPEAT;
END_R£PEAT;
ELSE
IF SIZEOF{[’STRING’, ’BINARY’, ’LOGICAL’, ’NUMBER’] *TYPEOF(src)) -0
THEN --entity instance
result result +src;
END_IF;
EN3JLF;
RETURN (result);
ENb_FUNCTlON;
62