Руководство по Ada (Ada 2022)
2.2 Лексические элементы, разделители и разграничители
Статические семантики
Текст программы состоит из текста одной или более компиляций. Текст каждой компиляции является последовательностью отдельных лексических элементов. Каждый лексический элемент образован последовательностью символов и является либо разделителем, либо идентификатором, либо ключевым словом, либо числовой_литерал, либо символьной_литерал, либо строковой_литерал, либо комментарием. Значение программы зависит только от конкретных последовательностей лексических элементов, образующих её компиляции, исключая комментарии.
Текст компиляции делится на строки. В общем случае представление конца строки определяется реализацией. Однако последовательность одного или более format_effector, отличных от символа с кодом 16#09# (ТАБУЛЯЦИЯ), обозначает по крайней мере один конец строки.
В некоторых случаях требуется явный разделитель для разделения смежных лексических элементов. Разделитель – это любой separator_space, format_effector или конец строки, как следует:
- A separator_space – это разделитель, за исключением комментария, строковой_литерал или символьной_литерал.
- Символ с кодом 16#09# (ТАБУЛЯЦИЯ) является разделителем, за исключением комментария.
- Конец строки всегда является разделителем.
Между любыми двумя смежными лексическими элементами, перед первым из каждой компиляции или после последнего, разрешается один или более разделителей. По крайней мере один разделитель необходим между идентификатором, ключевым словом или числовой_литерал и смежным идентификатором, ключевым словом или числовой_литерал.
Один или более other_format символов разрешены там, где разрешен разделитель; такие символы не влияют на смысл программы Ada.
Разделитель – это любой из следующих символов:
& ' ( ) * + , – . / : ; < = > @ [ ] |
или любой из следующих составных разделителей, каждый из которых состоит из двух смежных специальных символов
=> .. ** := /= >= <= << >> <>
Каждый из специальных символов, перечисленных для разделителей с одним символом, является отдельным разделителем, за исключением случая, когда этот символ используется как символ составного разделителя или как символ комментария, строковой_литерал, символьной_литерал или числовой_литерал.
Следующие имена используются при ссылке на составные разделители:
| разделитель | наименование |
|---|---|
| => | стрелка |
| .. | двойная точка |
| ** | двойная звездочка, возведение в степень |
| := | присваивание (произносится: «становится») |
| /= | неравенство (произносится: «не равно») |
| >= | больше или равно |
| <= | меньше или равно |
| << | левая скобка метки |
| >> | правая скобка метки |
| <> | рамка |
Требования к реализации
Реализация должна поддерживать строки длиной не менее 200 символов, не считая символов, используемых для обозначения конца строки. Реализация должна поддерживать лексические элементы длиной не менее 200 символов. Максимальная длина поддерживаемой строки и лексического элемента определяются реализацией.