- •Содержание
- •1. Организация таблицы идентификаторов
- •1.1. Исходные данные
- •1.2. Назначение таблиц идентификаторов
- •1.3. Метод простого рехэширования
- •1.4. Метод цепочек
- •1.5. Результаты
- •2. Проектирование лексического анализатора
- •2.1. Исходные данные
- •3. Проектирование синтаксического анализатора
- •3.1. Исходные данные
- •3.2. Построение синтаксического анализатора
- •3.3. Результаты
- •Список использованной литературы
- •Приложение а Исходный текст программы
- •Приложение б Граф состояний лексического анализатора
Приложение б Граф состояний лексического анализатора
Рис. 1 Приложения Б. Граф состояний лексического анализатора без ключевых слов
Рис. 2 Приложения Б. Граф состояний лексического анализатора с ключевыми словами
|
prog 1 |
end. 2 |
; 3 |
if 4 |
then 5 |
else 6 |
endif 7 |
begin 8 |
end 9 |
for 10 |
to 12 |
downto 13 |
do 14 |
a 15 |
c 16 |
:= 17 |
or 18 |
and 19 |
not 20 |
< 21 |
> 22 |
= 23 |
( 23 |
) 24 |
- 25 |
+ 26 |
* 27 |
/ 28 |
┴к |
prog
|
|
= |
< |
< |
|
|
|
< |
|
< |
|
|
|
< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> |
; |
|
> |
> |
< |
|
|
|
< |
> |
< |
|
|
|
< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if |
|
|
|
|
= |
|
|
|
|
|
|
|
|
< |
< |
|
< |
< |
< |
< |
< |
< |
< |
|
< |
< |
< |
< |
|
then |
|
|
|
< |
|
= |
= |
< |
|
< |
|
|
|
< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else |
|
|
|
< |
|
|
= |
< |
|
< |
|
|
|
< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
endif |
|
> |
> |
|
|
> |
> |
|
> |
< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
begin |
|
|
< |
< |
|
|
|
< |
= |
< |
|
|
|
< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end |
|
> |
> |
|
|
> |
> |
|
> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for |
|
|
|
|
|
|
|
|
|
|
= |
= |
|
< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
= |
< |
< |
|
|
|
|
|
|
|
< |
|
< |
< |
< |
< |
|
downto |
|
|
|
|
|
|
|
|
|
|
|
|
= |
< |
< |
|
|
|
|
|
|
|
< |
|
< |
< |
< |
< |
|
do |
|
> |
> |
< |
|
> |
> |
< |
> |
< |
|
|
|
< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
|
> |
> |
|
> |
> |
> |
|
> |
> |
> |
> |
> |
|
|
= |
> |
> |
> |
> |
> |
> |
|
> |
> |
> |
> |
> |
|
c |
|
> |
> |
|
> |
> |
> |
|
> |
> |
> |
> |
> |
|
|
|
> |
> |
|
> |
> |
> |
|
> |
> |
> |
> |
> |
|
:= |
|
> |
> |
|
|
> |
> |
|
> |
|
> |
> |
|
< |
< |
|
|
|
|
|
|
|
< |
> |
< |
< |
< |
< |
|
or |
|
|
|
|
> |
|
|
|
|
|
|
|
|
< |
|
|
> |
< |
< |
< |
< |
< |
< |
> |
< |
< |
< |
< |
|
and |
|
|
|
|
> |
|
|
|
|
|
|
|
|
< |
< |
|
< |
> |
< |
< |
< |
< |
< |
> |
< |
< |
< |
< |
|
not |
|
|
|
|
> |
|
|
|
|
|
|
|
|
< |
< |
|
< |
> |
< |
< |
< |
< |
< |
> |
< |
< |
< |
< |
|
< |
|
|
|
|
> |
|
|
|
|
|
|
|
|
< |
< |
|
< |
> |
|
|
|
|
< |
> |
< |
< |
< |
< |
|
> |
|
|
|
|
> |
|
|
|
|
|
|
|
|
< |
< |
|
< |
> |
|
|
|
|
< |
> |
< |
< |
< |
< |
|
= |
|
|
|
|
> |
|
|
|
|
|
|
|
|
< |
< |
|
< |
> |
|
|
|
|
< |
> |
< |
< |
< |
< |
|
( |
|
|
|
|
|
|
|
|
|
|
|
|
|
< |
< |
|
< |
< |
< |
< |
< |
< |
< |
= |
< |
< |
< |
< |
|
) |
|
> |
> |
|
> |
> |
> |
|
> |
> |
> |
> |
> |
|
|
|
> |
> |
|
> |
> |
> |
|
> |
> |
> |
> |
> |
|
- |
|
> |
> |
|
> |
> |
> |
|
> |
> |
> |
> |
> |
< |
< |
|
> |
> |
|
> |
> |
> |
< |
> |
> |
> |
> |
> |
|
+ |
|
> |
> |
|
> |
> |
> |
|
> |
> |
> |
> |
> |
< |
< |
|
> |
> |
|
> |
> |
> |
< |
> |
> |
> |
> |
> |
|
* |
|
> |
> |
|
> |
> |
> |
|
> |
> |
> |
> |
> |
< |
< |
|
> |
> |
|
> |
> |
> |
< |
> |
> |
> |
> |
> |
|
/ |
|
> |
> |
|
> |
> |
> |
|
> |
> |
> |
> |
> |
< |
< |
|
> |
> |
|
> |
> |
> |
< |
> |
> |
> |
> |
> |
|
┴н |
< |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|