ГОСТ Р ИСО 13584-20—2006
IF’IS013584_GENERIC_EXPRESSI0NS_SCHEMA.BINARY_GENERIC_EXPRESSI0N’
IN TYPEOF (arg1)
THEN
RETURN
(acyclic(arg1Vbinary_generic_expression.operands[1],arg2+[arg1])
AND
E
ND
acyclic(arg1\binary_generic_expression.operands[2].arg2^[arg1J));
JF;
IF
’IS013584_GENERIC_EXPRESSI0NS_SCHEMA.MULTIPLE_ARITY_GENERIC_EXPRESSI0N’
IN TYPEOF (arg1)
THEN
result :=TRUE;
REPEAT i:=1 TO
SIZEOF(arg1Vmultiple_arity_generic_expression.operands);
result :=result AND
acyclic(arg1\multiple_arity_generic_expression.operands[i]. arg2+[arg1]);
END_REPEAT;
RETURN (result);
ENDJF;
END_FUNCTION; - acyclic
Г
5.3.2 Функция used_variables
Функция usod_variablcs просматривает весь граф обобщенного выражения, собирая все исполь
зованные переменные, и после этого возвращает их. Данная функция проходит весь ориентированный
ациклический граф, представляющий generic_expression.
П р и м е ч а н и е — Эта функция не используется е схеме IS013584_generlc_expreeslons_schema. Она
является ресурсом,предназначенным для использования всхемах,которые используютIS013584_generlc_expres-
slons_schema или ее возможные конкретизации. Например, эта функция используется в некоторых стандартах
комплекса ИСО 13584 для записи ограничений на переменные, встречающиеся в выражениях.
EXPRESS-спеииФикаиия
*>
FUNCTION used_variables (arg:generic_expression):
SET OF generic_variable;
LOCAL
result; SET OF generic_variable := Q;
END_LOCAL;
IF’IS013584_GENERIC_EXPRESSI0NS_SCHEMA.GENERIC_VARIABLE‘
IN TYPEOF (arg)
THEN
RETURN ([arg]);
END_IF;
IF’IS013584_GENERIC_EXPRESS10NS_SCHEMA.UNARY_GENERIC_EXPRESSI0N’
IN TYPEOF (arg)
THEN
RETURN (used_variables (arg\unary_generic_expression.operand));
ENDJF;
10