Spec-Zone.ru › Ada 2005
Справочник по Ada 2005

4.4 Выражения

Выражение — это формула, определяющая вычисление или получение значения. В этом международном стандарте термин «выражение» относится к конструкции синтаксической категории выражение или любой из пяти других синтаксических категорий, определённых ниже.

Синтаксис

выражение ::=
отношение {и отношение} | отношение {и тогда отношение}
| отношение {или отношение} | отношение {или иначе отношение}
| отношение {исключающее ИЛИ отношение}
отношение ::=
простое_выражение [оператор_отношения простое_выражение]
| простое_выражение [не] в диапазон
| простое_выражение [не] в метка_подтипа
простое_выражение ::= [унарный_оператор_сложения] множитель {бинарный_оператор_сложения множитель}
множитель ::= сомножитель {оператор_умножения сомножитель}
сомножитель ::= операнд [** операнд] | abs операнд | не операнд
операнд ::=
числовая_константа | null | строковая_константа | агрегат
| имя | квалифицированное_выражение | аллокатор | (выражение)

Правила разрешения имён

Используемое как операнд имя должно указывать на объект или значение.

Статическая семантика

Каждое выражение имеет тип; он определяет вычисление или получение значения этого типа.

Динамическая семантика

Значение операнда, являющегося именем, обозначающим объект, равно значению объекта.

Разрешения реализации

При вычислении операнда, являющегося именем, обозначающим объект без ограничений числового подтипа, если значение объекта находится за пределами базового диапазона его типа, реализация может либо сгенерировать исключение Constraint_Error, либо вернуть значение объекта.

Примеры

Примеры операндов:
4.0 -- вещественная константа
Pi -- именованное число
(1 .. 10 => 0) -- агрегат массива
Sum -- переменная
Integer'Last -- атрибут
Sine(X) -- вызов функции
Color'(Blue) -- квалифицированное выражение
Real(M*N) -- преобразование
(Line_Count + 10) -- выражение в скобках
Примеры выражений:
Volume -- операнд
не Destroyed -- сомножитель
2*Line_Count -- множитель
-4.0 -- простое выражение
-4.0 + A -- простое выражение
B**2 - 4.0*A*C -- простое выражение
R*Sin(θ)*Cos(φ) -- простое выражение
Password(1 .. 3) = "Bwv" -- отношение
Count в Small_Int -- отношение
Count не в Small_Int -- отношение
Index = 0 или Item_Hit -- выражение
(Cold и Sunny) или Warm -- выражение (необходимы скобки)
A**(B**C) -- выражение (необходимы скобки)


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API