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

4.2 Литералы

A literal представляет значение буквально, то есть с помощью обозначения, подходящего для его типа. Литерал — это либо числовой_литерал, либо символьный_литерал, либо литерал null, либо строковый_литерал.

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

Этот абзац был удалён.
Для имени, состоящего из символьного_литерала, ожидаемый тип должен быть типом одного символа, в этом случае он интерпретируется как безаргументный вызов_функции, возвращающий соответствующее значение типа символа, или его ожидаемый профиль должен соответствовать безаргументной функции с результатом типа символа, в этом случае он интерпретируется как имя соответствующей безаргументной функции, объявленной в рамках определения типа символа (см. 3.5.1). В любом случае, символьный_литерал обозначает спецификацию_литерала_перечисления.
Ожидаемый тип для первичного элемента, являющегося строковым_литералом, должен быть типом одной строки.

Правила легальности

A символьный_литерал, который является именем, должен соответствовать определяющему_символьному_литералу ожидаемого типа или типа результата ожидаемого профиля.
Для каждого символа строкового_литерала с заданным ожидаемым типом строки должен быть соответствующий определяющий_символьный_литерал типа компонента ожидаемого типа строки.
Этот абзац был удалён.

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

Целочисленный литерал имеет тип universal_integer. Вещественный литерал имеет тип universal_real. Литерал null имеет тип universal_access.

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

Вычисление числового литерала или литерала null возвращает представленное значение.
Вычисление строкового_литерала, являющегося первичным элементом, возвращает массив значений, содержащий значение каждого символа последовательности символов строкового_литерала, как определено в 2.6. Границы этого массива определяются по правилам для позиционных_массивов (см. 4.3.3), за исключением того, что для нулевого строкового литерала верхняя граница является предшественником нижней границы.
Для вычисления строкового_литерала типа T, производится проверка, что значение каждого символа строкового_литерала принадлежит подтипу компонента T. При вычислении нулевого строкового литерала проверяется, что его нижняя граница больше нижней границы базового диапазона типа индекса. Если любая из этих проверок не выполняется, возникает исключение Constraint_Error.
ПРИМЕЧАНИЯ
6 Литералы перечисления, которые являются идентификаторами, а не символьных_литералов, следуют обычным правилам для идентификаторов при использовании в именах (см. 4.1 и 4.1.3). Символьные_литералы, используемые как имена_селекторов, следуют обычным правилам для расширенных имён (см. 4.1.3).

Примеры

Примеры литералов:
3.14159_26536 -- вещественный литерал
1_345 -- целочисленный литерал
'A' -- символьный литерал
"Some Text" -- строковый литерал


Spec-Zone.ru

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