ГОСТ Р ИСО 13584-20—2006
Неформальное утверждение
IP1 — операнд index должен иметь значение типа INTEGER, которые больше нуля и меньше или
равнодлине строки, заданной операндом STRING.
6.5.5 Объектsubstring_expression
Объект substring_expression включает в себя семантику оператора индексирования подстроки
([:]) по ИСО 10303-11.
П р и м е ч а н и е — У строкового оператора substring_expression есть три операнда: строковое значение
(представленное атрибутом operand) индексируется значением индекса (представленного атрибутами Indexl и
Index2). Оператор substring_expression вычисляет строковое значение длиной (index2 — Indexl ♦ 1). В резуль тате
строковое значение эквивалентно последовательности символов, расположенных с позиции Indexl по пози цию
Index2.
EXPRESS-спецификаиия
*>
ENTITY substring_expression
SUBTYPE OF (string_expression. multiple_arity_generic_expression);
DERIVE
operand:generic_expression:=
SELRmuttiple_arity_generic_expression.operands[1];
indexl :generic_expression:=
SELRmultiple_arity_generic_expression.operands[2J;
index2:generic_expression:=
SELRmultiple_arity_generic_expression.operands[3];
WHERE
WR1: (’IS013584_EXPRESSIONS_SCHEMA.STRING_EXPRESSION’
INTYPEOF(operand))
AND (’IS013584_EXPRESSIONS_SCHEMA.NUMERIC_EXPRESSION’
INTYPEOF(index1))
AND (’ISOI3584_EXPRESSIONS_SCHEMA.NUMERIC_EXPRESSION’
IN TYPEOF(index2));
WR2: SIZEOF (SELRmultiple_arity_generic_expression.operands)=3;
WR3: is_int_expr (indexl);
WR4: is int expr (index2);
END_ENTITY;
(*
Определения атрибутов
operand — объект string_expression, из которого выделяется подстрока;
indexl — объектnumeric_expression, которыйпоказываетнижнюю границуподстрокив operand;
index2 — объект numeric_expression, который показывает верхнюю границу подстроки в
operand.
Формальные утверждения
WR1 — операнддолженбытьобъектом string_expression; indexl иindex2должны бытьобъекта
ми numcric_cxprcssion.
WR2 — список операндов объекта substring_expression долженсодержать три элемента.
WR3 — операнд indexl должен иметьзначение типа INTEGER.
WR3 — операнд index2должен иметьзначение типа INTEGER.
Неформальные утверждения
IP1 — операнды indexl и index2 должны иметь значения типа INTEGER, которые больше нуля и
меньше или равныдлине строки, заданнойоперандом STRING.
IP2 — значение indexl должно быть меньше или равно значению index2.
6.5.6 Объектconcat_expression
Объект concat_expression включает в себя семантику оператора конкатенации (+) по
ИСО 10303-11, относящуюся ктипуданных STRING.
35