с определенным набором таблиц, среди
Сканер работает с определенным набором таблиц, среди которых есть входные и выходные.
В общем случае сканер должен иметь две входные таблицы — таблицу лексем языка и таблицу классов литер. Таблица лексем языка содержит перечень всех лексем языка и соответствующих им целочисленных значений. Для нашей грамматики таблица может быть следующей:
Лексема |
Внутренний код |
Лексема |
Внутренний код |
ПРОГРАММА |
1 |
* |
23 |
|
|
:= |
24 |
НАЧ БЛОК |
3 |
) |
25 |
КОН_БЛОК |
4 |
НАЧ_ПРОГ |
26 |
REAL |
5 |
КОН_ПРОГ |
27 |
INT_BYTE |
6 |
/ |
28 |
DIV |
7 |
INT_WORD |
29 |
ЧИТАТЬ |
8 |
INT_DWORD |
30 |
ПИСАТЬ |
9 |
= |
31 |
ДЛЯ |
10 |
MOD |
32
|
ДЕЛАТЬ |
11 |
[ |
33 |
( |
12 |
] |
34 |
ТО |
13 |
< |
35 |
ID |
14 |
> |
36 |
CHJNT |
15 |
== |
37 |
CH_REAL |
16 |
>= |
38 |
|
17 |
=< |
39 |
> |
18 |
до |
40 |
1 |
19 |
ПОКА |
41 |
• |
20 |
довниз |
42 |
+ |
21 |
ЕСЛИ |
43 |
- |
22 |
до |
44 |
|
|
ПЕРЕЙТИ_НА* |
|
Таблица классов литер используется только в процессе сканирования и предназначена для выяснения класса литеры, когда она выбирается сканером из входного потока. Лучше всего эту таблицу организовать в виде массива, элементы которого отражены на используемую кодовую таблицу (например, таблицу ASCII). Значение каждого элемента таблицы классов литер определяется классом литеры в кодовой таблице. В общем случае можно определить следующие классы литер:
d - цифра;
1 — буква;
b — литеры, которые игнорируются, к ним может относится, например, пробел;
s1 — одиночные разделители: «.», «:», «(«, «)», «*»;
s2 — особые одиночные разделители: «.», «+», «-»,«:», «=», «<», «>».
Последние разделители отличаются тем, что они могут быть как собственно одиночными разделителями, так и входить в состав литер лексем, состоящих из нескольких литер. Например, разделитель «:» является не только одиночным, но и первой литерой двухлитерного разделителя «:=», а литеры «.», «+» и «-» являются составной частью лексемы «вещественное число».
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий