Н. Джехани - Язык Ада (1988) (1160771), страница 61
Текст из файла (страница 61)
тивном случае они могут быть восприняты как одна). Разделителем может быть символ пробе. па, символ управления форматом или конец строчки. Символ пробела не является разделителем в комментарии, строковом литерале ипи символьном литерале. Символ управления форматом (кроме символа горизонтальной табуляции, когда он употребляется в комментариях) всегда является разделителем. Конец строчки всегда является разделителем. Язык не определяет, что является концом строчки.
Если в данной реализации конец строчки обозначается одним или несколькими символами, то эти символы должны быть символами управления форматом, отличными от симво. па горизонтальной табуляции. Во всяком случае, последовательность из одного ипи нескольких символов управления форматом, отличных от символа горизонтальной табуляции, должна заменить по крайней мере один конец строчки. Один ипи несколько разделителей допустимы между соседними, перед первой или после последней лексемы.
По крайнеи мере один разделитель необходим между идентификатором или числовым литералом и соседними идентификаторами ипи числовыми литералами. Ограничитель — это один из следующих специальных символов из набора основных символов; 8 ' () * ь, ':; < = > 1 или один из следующих составных ограничителей, представляющих собой пару специальных символов; Каждый специальный символ является простым ограничителем, за исключением тех случаев, когда он встречается в составном ограничителе, в комментарии, в строковом, символьном или числовом литералах.
Остальные формы лексем описаны в других разделах данной главы, кавычки номер (решетка) коммерческое И (амперсанд) апостроф круглая скобка (левая) круглая скобка (правая) звездочка, умножение плюс запятая дефис, минус точка, период дробная черта, деление двоеточие точка с запятой меньше равно 2.2. ЛЕКСЕМЫ, РАЗДЕЛИТЕЛИ И ОГРАНИЧИТЕЛИ =» ":= '= = «= < » <> больше подчеркивание вертикальная черта восклицательный знак доллар процент вопросительный знак коммерческое эт квадратная скобка (левая) обратная дробная черта квадратная скобка (правая) сиркюмфпекс слабое ударение фигурная скобка (левая) фигурная скобка (правая) типьда Глава 2 Примечание. Каждая лексема должна располагаться в одной строчке, поскольку конец строчки — разделитель.
Символы кавычки, решетки, подчеркивания и два соседних дефиса не являются ограничителями, но могут входить в лексемы в качестве ее частей. Наименования составных ограничителеи даны ниже: Ограничитель Наименование стрелка двойная точка двойная звездочка, возведение в степень присваивание (читается: Становится равным») неравенство (читается: «Не равно») больше ипи равно меньше ипи равно левая скобка метки правая скобка метки бокс (ипи коробка) < = << >> <> Ссылки: зарезервированное слово 2.9, идентификатор 2.3, комментарий 2.7, компиля.
ция10.1, символ пробела 2.1, символ управления 2.1, символьный литерал 2.5, специальный символ 2.1, строковый литерал 2.6, числовой литерал 2.4. 2.3. ИДЕНТИФИКАТОРЫ Идентификаторы используются в качестве имен и зарезервированных слов. идентификатор:;= буква Цподчеркивание) буква или цифра) буква ипи цифра::= буква ) цифра буква с = прописная буква ) строчная буква Все символы идентификатора существенны, включая символ подчеркивания между соседними буквами ипи цифрами. Идентификаторы, различающиеся только размерами букв, считаются совпадающими.
Примеры: СЧЕТЧИК СНОБОЛ 4 Х дай символ Эвелина Марион Х1 СчетчикСтраниц ЗАПАСТИ СЛЕДУЮЩИЙ ЭЛЕМЕНТ Примечание. Пробел внутри идентификатора недопустим, поскольку он является разделителем. Ссылки: зарезервированное слово 2.9, имя 4.1, прописная буква 2.1, разделитель 2.2, сим. воп пробела 2.1, строчная буква 2.1, цифра 2.1. 2.4. ЧИСЛОВЫЕ ЛИТЕРАЛЫ Ссылки: литерал 4.2, универсальный вещественный тип 3.5.6, универсальный .целый тип 3.5.4. 2.4.1.
ДЕСЯТИЧНЫЕ ЛИТЕРАЛЫ Десятичный литерал — это числовой литерал, выраженный в общепринятой десятичной системе (основание по умолчанию равно десяти). десятичный литерал з = целое [.целое] [порядок) целое::= цифра ([подчеркивание] цифра) порядок::= Е [+] целое ) Š— целое Числовые литералы подразделяются на два класса: вещественные литералы и целые литералы. Вещественный литерал — это чисповои литерал, который включает точку; целый литерал — это числовой литерал без точки.
Вещественные литералы являются литералами типа универсальный вещественный. Целые литералы — литералы типа универсальный. целый. чисповои литерал с = десятичный литерал ) литерал с основанием Лексика Символ подчеркивания между соседними цифрами десятичного литерала не влияет на значение числового литерала. Буква Е в порядке может быть строчной ипи прописной буквой с одним и тем же назначением. Дпя получения значения десятичного литерала с порядком следует умножить значение десятичного литерала без порядка на степень десяти, заданную порядком. Порядок для цело. го литерала не должен содержать знак минус. Примеры: 12 0 1Е6 123 456 — — целые литералы 12.0 0.0 0,156 3.14159 26 — — вещественные литералы 1.34Е-12 1.0Е+6 — — вещественные литералы с порядком Примечание: Ведущие нули допускаются. Пробел в числовом литерале недопустим даже между составными частями порядка, поскольку пробел является разделителем.
Нулевой порядок дпя целого литерала допустим. Ссылки: прописная буква 2.1, разделитель 2.2, символ пробела 2.1, строчная буква 2.1, цифра 2.1, числовой литерал 2.4. 2.4.2. ЛИТЕРАЛЫ С ОСНОВАНИЕМ Литерал с основанием — это ~половой литерал, в котором явно указано основание.
Основание должно принимать значение от 2 до 16. литерал-с основанием::= основание № целое с основанием [.целое с основанием] № [порядок) основание::= целое целое с основанием::= расширенная цифра Яподчеркивание] расширенная цифра! расширенная цифра::= цифра ( буква Символ подчеркивания, закпюченныи между соседними цифрами литерала с основанием, не влияет на значение этого числового литерала. Основание и порядок записываются в десятичной системе.
В качестве расширенных цифр от 10 до 15 допускаются только латинские буквы от А до Р. Буква в литерале с основанием (расширенная цифра ипи буква Е в порядке) может быть строчной или прописной с одним и тем же смыслом. Предполагается обычный смысл обозначения литерала с основанием; в частности, значение каждой расширенной цифры литерала с основанием должно быть меньше основания. Для получения значения литерала с основанием и порядком следует умножить значение литерала с основанием без порядка на основание, возведенное в указанную порядком степень.
Примеры: 2»1111 1111№ 15»БР№ 016№ОРГ» — — целые литералы со значением 255 16№Е№Е1 2»1110 0000№ — — целые литералы со значением 224 16№Р.РР№Е+2 2№1.1111 1111 111№Е11 — — действительные литералы со значением 40950 Ссылки: буква 2.3, порядок 2.4.1, прописная буква 2.1, строчная буква 2.1, цифра 2.1, числовой литерал 2,4. 25. СИМВОЛЬНЫЕ ЛИТЕРАЛЫ Символьный литерал — это один из 95 графических символов (включая пробел], заключенный между двумя символами апострофа. Символьный литерал имеет значение символьного типа.
символьный литерал с= 'графический символ' Примерьг. 'А' Ссьюки: графическии символ 2.1, литерал 4.2, символ пробела 2.1, символьный тип 3.5.2. зо' Главе 2 2.6. СТРОКОВЫЕ ЛИТЕРАЛЫ Строковый литерал образуется из последовательности (возможно, пустой) графических символов, заключенной между двумя символами кавычки — строковыми скобками. строковый литерал х= "(графическии символ) ' Строковый литерал имеет значение последовательности значении символов, соответствующих графическим символам строкового литерала, кроме внешних символов кавычки.
Для представления кавычки в последовательности значений символов необходимо в соответству. ющем месте внутри строкового литерала поместить пару соседних символов кавычки (это означает, что строковый литерал, включающий два соседних символа кавычки, никогда не рассматривается как два строковых литерала). Длина строкового литерала — это количество значений символьного типа в представлен. нои последовательности (каждые два соседних символа кавычки в строке считаются одним символом). Примеры: "Дневное сообщение;" — — пустой строковый литерал "А """ — — три строковых литерала длиной 1 "Символы, такие как 6, % и ), допустимы в строковых литералах" Примечание.
Строковый литерал должен помещаться на одной строчке, поскольку он является лексемой (см. 2.2). Более длинные последовательности значений графических символов могут быть получены катенацией строковых литералов. Равным образом катенация констант, описанных в пакете АЗС(1, может быть использована дпя получения поспедовательиости значений символьного типа, которая включает значения неграфических символов (так называемых управляющих символов). Ниже даны примеры использования катенации: ПЕРВАЯ ЧАСТЬ ПОСЛЕДОВАТЕЛЬНОСТИ СИМВОЛОВ," 6 КОТОРАЯ ПРОДОЛЖАЕТСЯ НА СЛЕДУЮЩЕЙ СТРОЧКЕ" "последовательность, которая включает 6 АЗСЛ.АСК 6 "управляющий символ Ссылки: графический символ 2.1, значение символа 3.5.2, конец строчки 2.2, константа 3.2.1, лексема 2.2, операция катенации 4.5.3, описание 3.1, предопределенный пакет АЗС!! С.
22. КОММЕНТАРИИ Комментарий начинается с двух соседних дефисов и продолжается до конца строчки. Комментарий может помещаться в любой строчке программы. Присутствие или отсутствие комментария не влияет ни на правильность, ни на неправильность программы. Более того, комментарии не влияют на смысл программы; их единственное назначение — сделать про.