Справочник по Ada 95
2.2 Лексические элементы, разделители и разделители
Статическая семантика
Текст программы состоит из текстов одного или нескольких компиляций. Текст каждой компиляции представляет собой последовательность отдельных лексических элементов. Каждый лексический элемент формируется из последовательности символов и является либо разделителем, либо идентификатором, либо служебным словом, либо числовой_литералью, либо символьной_литералью, либо строковой_литералью, либо комментарием. Значение программы зависит только от конкретных последовательностей лексических элементов, формирующих её компиляции, за исключением комментариев.
Текст компиляции делится на строки. В общем случае представление конца строки определяется реализацией. Однако последовательность одного или нескольких эффекторов_формата, отличных от табуляции (HT), обозначает по крайней мере один конец строки.
В некоторых случаях требуется явный разделитель для разделения смежных лексических элементов. Разделителем является любой из пробела, эффектора формата или конца строки, как следует:
- Пробел является разделителем, за исключением случаев, когда он находится внутри комментария, строковой_литерали или символьной_литерали.
- Табуляция (HT) является разделителем, за исключением случаев, когда она находится внутри комментария.
- Конец строки всегда является разделителем.
Между любыми двумя смежными лексическими элементами, перед первым элементом каждой компиляции или после последнего, допускается один или несколько разделителей. Между идентификатором, служебным словом или числовой_литералью и смежным идентификатором, служебным словом или числовой_литералью требуется по крайней мере один разделитель.
Разделитель представляет собой любой из следующих специальных символов
& ' ( ) * + , - . / : ; < = > |
или один из следующих сложных разделителей, каждый из которых состоит из двух смежных специальных символов
=> .. ** := /= >= <= << >> <>
Каждый из специальных символов, указанных для разделителей с одним символом, является одним разделителем, за исключением случаев, когда этот символ используется в качестве символа сложного разделителя или как символ комментария, строковой_литерали, символьной_литерали или числовой_литерали.
При ссылке на сложные разделители используются следующие имена:
| разделитель | название | |||
| => | стрелка | |||
| .. | двойная точка | |||
| ** | двойная звездочка, возведение в степень | |||
| := | присваивание (произносится как: | |||
| ``становится'') | ||||
| /= | неравенство (произносится как: | |||
| ``не равно'') | ||||
| >= | больше или равно | |||
| <= | меньше или равно | |||
| << | левая скобка метки | |||
| >> | правая скобка метки | |||
| <> | рамка |
Требования к реализации
Реализация должна поддерживать строки длиной не менее 200 символов, не считая символов, используемых для обозначения конца строки. Реализация должна поддерживать лексические элементы длиной не менее 200 символов. Максимальная поддерживаемая длина строки и лексического элемента определяется реализацией.