ГОСТ Р И С 010303-11 — 2009
TYPE bag_of_natural = BAG OF natural;
ENDTYPE;
TYPE set_of_up_to_five_positive = SET [0:5] OF positive;
ENDTYPE;
При этом совместимымиявляются следующие типы данных:
Тип данных
Совместим с типами данных
REAL
INTEGER, REAL NUMBER, natural, positive
natural
REAL. NUMBER, natural, positive
positive
REAL. NUMBER, natural, positive
bag_of_natural
BAG OF REAL BAG OF NUMBER. BAG OF natural.
BAG OF positive. SET OF REAL. SET OF NUMBER.
SET OF natural. SET OF positive. bag_of_natural,
set_of_up_to_five_positive
set_of_up_to_five_positive
BAG OF REAL BAG OF NUMBER. BAG OF natural.
BAG OF positive, SET OF REAL. SET OF NUMBER.
SET OF natural. SET OF positive, bag_of_natural,
12.12 Выбираемые типы данных в выражениях
При проверке схемы парсер уровня 2 должен идентифицировать совместимость типов операндов и
операторов в выражениях. Выражение, содержащее тип данных
SELECT,
может бытьдопустимым только
для некоторых типов данных из списка выбора и не допустимым для остальных типов данных из списка
выбора. Ранее вданном раздело были определены допустимые типы данных в выражениях, кроме типов
данных
SELECT
;установленные ниже правила относятся конкретно кданным типам данных.
Тип данных, возвращаемый выражением, содержащим операнды, объявленный типданных которых
является выбираемым типомданных, является выбираемым типом данных, содержащим все возможные
типы данных, возвращенные допустимыми выражениями из указанных операндов.
Невыбираемые типы данных в выбираемом типе данных - это невыбираемые типы данных каждого
типа данных из списка выбора выбираемого типа данных; новыбираемым типом данных в типе данных,
который не является выбираемым, является сам данный тип данных.
12.12.1 Выбираемые типы данных в унарных выражениях
В данном пункте определена обработка выбираемых типовданных в выражениях с одним операн
дом. к которым относятся операторы ;♦,
NOT
и
QUERY;
a) Если все невыбираемые типы данных в списке выбора объявленного типа операнда допустимы в
контексте данного выражения, то выражение являетсядопустимым идолжно возвращать допустимый ре
зультат.
b
) Если некоторые, но не все невыбираемые типы данных всписке выбора объявленного типа операн
да допустимы в контекстеданного выражения, то выражение является допустимым, но может выдать ошибку,
если в выражении вычисляются значения типов данных, являющихся недопустимыми.
c) Если ни один из невыбираемых типов данных в списке выбора объявленного типа операнда не
является допустимым в контексте данного выражения, то выражение является недопустимым и всегда
будет возвращать недопустимый результат.
12.12.2 Выбираемые типы данных в бинарных выражениях
В данном пункте определена обработка выбираемых типов данных в выражениях с двумя
операндами;
a) Еслидля каждого невыбираемого типаданных всписке выбора объявленного типа левого операн
да существуетдопустимое выражение с каждым невыбираемым типомданных всписке выбора объявлен
ного типа правого операнда, то данное выражение является допустимым и должно возвращать допусти
мый результат.
b
) Если некоторые, но не все невыбираемые типы данных в списке выбора объявленного типа левого
операнда и. по крайней мере, один невыбираемый тип данных правого операнда допустимы в контексте
данного выражения, то выражение является допустимым, но может выдать ошибку, если в выражении
вычисляются значения типов данных, являющихся недопустимыми.
91