ВУЗ:
Составители:
15
ницы. Пробел может служить разделителем, в противном случае он игнори-
руется.
Сначала все лексические единицы сравнивают с элементами таблицы
терминальных символов, отличных от пробела. В случае совпадения ЛЕ
классифицируют как терминальный символ, и формируют стандартный сим-
вол типа TRM, который помещают затем в таблицу стандартных символов.
Если ЛЕ не является терминальным символом, при последующем анализе
она классифицируется как возможный идентификатор или литерал. Те ЛЕ,
которые подходят под описание идентификаторов, классифицируют как воз-
можные идентификаторы. Если ЛЕ не подходит ни к одной из этих катего-
рий, выдается сообщение об ошибке. Если ЛЕ идентификатор, опрашивается
таблица идентификаторов. Если в таблице этой единицы нет, то создается
новый элемент. Поскольку из атрибутов известно только имя, его и заносят в
таблицу. Остальная информация определяется и заносится следующими фа-
зами. В обоих случаях создают стандартный символ типа IDN и помещают в
таблицу стандартных символов.
Числа, строки символов заключенные в кавычки и другие самоопреде-
ленные данные, классифицируют как литералы. Затем опрашивают таблицу
литералов, если ЛЕ там нет, то создается новый элемент. В отличие от иден-
тификаторов, литералы позволяют определить их атрибуты и внутреннее
представление при просмотре. Таким образом, каждый новый элемент таб-
лицы состоит из литерала и его атрибутов. Не зависимо от того, создан но-
вый элемент таблицы литералов или нет, создают стандартный символ типа
LIT и помещают в таблицу стандартных символов.
Таблицы Литералов, Идентификаторов и Стандартных символов ис-
пользуются следующими фазами компилятора.
16
Пример лексического анализа написанной выше программы:
Таблица терминальных символов
Таблица 1
Символ Разделитель Другие
1. Program Нет
2. Var Нет
3. Integer Нет
4. Begin Нет
5. WriteLn Нет
6. End Нет
7. ; Да
8. , Да
9. : Да
10. :=
11. *
12. -
13. +
14. ( Да
15. ) Да
Таблица стандартных символов
Таблица 2
Тип Индекс ЛЕ
TRM 1 Program
IDN 1 WCM
TRM 7 ;
TRM 2 Var
IDN 2 Cost