ВУЗ:
Составители:
Рубрика:
〈 переменная〉 → ид.
〈 значение〉 → конст.
Лексический анализатор преобразует исходный текст правил с помощью таблиц элементов алфавита в
последовательность лексем в виде кода слов, констант и символов.
Исходный текст считывается пословно из файла в строковую переменную, которая анализируется с помощью таблиц
слов, констант алфавита и идентификаторов, заданных пользователем. Определяется тип переменной (слово, константа,
идентификатор, символ), ищется её место в соответствующей таблице алфавита или, если там она отсутствует, в таблице
идентификаторов пользователя. На выходе код каждой переменной записывается в трёхмерный массив (в первую ячейку –
номер правила, во вторую ячейку – номер слова в правиле, в третью – тип таблицы и номер в таблице).
Примеры кодировочных таблиц представлены в табл. 25 – 28.
Например, результат работы лексического анализатора для первого правила (в скобках через запятую указаны номер
кодировочной таблицы и номер слова в таблице) имеет вид:
Правило 1
(1,0) (3,0) (2,0) (4,0) (1,3) (3,1) (2,0) (4,1) (1,2) (3,0) (2,0) (4,0) (1,3) (3,1) (2,0) (4,2) (1,2) (3,0) (2,0) (4,3) (1,3)
(3,1) (2,0) (4,1) (1,1) (3,2) (2,0) (4,4) (2,1)
Таблица 25
Зарезервированные слова
Номер Наименование
0 ЕСЛИ
1 ТО
2 ИЛИ
3 И
Таблица 26
Символы
Номер Наименование
0 =
1 ;
2 .
3 (
4 )
Таблица 27
Идентификаторы
Номер Наименование
0 Вес_ткани
1 Температура_процесса
2 Схема
Таблица 28
Константы
Номер Наименование
0 малый
1 малая
2 средняя
3 средний
4 I
5 Большая
6 Большой
7 II
8 III
Синтаксический анализатор, используя метод операторного предшествования, преобразует последовательность лексем
во внутреннее представление знаний. В разработанной системе в качестве внутреннего представления используется
постфиксная запись. Матрица отношений предшествования приведена в табл. 29.
Таблица 29
ЕСЛИ = И ИЛИ ТО ; . ИД КОНСТ ( )
ЕСЛИ
< < <
=
< <
=
> > > > >
<
>
И
< <
> >
<
<
ИЛИ
< < < > >
<
>
ТО
<
> > <
;
.
ИД
>
К
> > > > >
>
(
<
<
<
=
)
>