Читання лексем виразу, Детальна інформація

Читання лексем виразу
Тип документу: Реферат
Сторінок: 7
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 14.1
Скачувань: 1146
function getlx ( var lx : Tlx ) : boolean;

Implementation

кількість імен функцій}

var Namf : array [ 1..fnum ] of st8;

Bcon, Bnam, Bops, Bpar, Blex : set of char;

procedure glxinit; … end;

… { Допоміжні для getlx означення}

function getlx; … end;

Begin

glxinit

End.

Одразу наведемо процедуру ініціалізації:

procedure glxinit;

begin

Bcon := [ '0'..'9' ]; Bnam := [ 'a'..'z' ];

Bops := [ '+', '*', '-', '/' ]; Bpar := [ '(', ')' ];

Blex := Bcon + Bnam + Bops + Bpar;

Namf[1] := 'sin'; Namf[2] := 'cos'

end;

3. Функція getlx

Будемо вважати, що вираз записано в тексті, між його лексемами можуть бути пропуски в довільній кількості, і що вираз може займати кілька рядків тексту. Інших уточнень поки що не робимо. Текст читається по одному символу, і нехай

читання й повернення наступного символу тексту задає функція getc.

Нехай останній прочитаний символ тексту, який ми називаємо поточним, зберігається в глобальній у модулі змінній tempc. Вона ініціалізується символом ' ' (пропуск), тобто перед виразом штучно додається пропуск.

Добування лексеми починається з пошуку її першого символу у вхідній послідовності. Нехай

пошук першого символу описується функцією getbglx.

З її виклику повертається або перший символ лексеми, або, коли лексеми вичерпано, символьна стала chr(0), яку можна вважати "фіктивним символом". Іменування цієї сталої ім'ям finch додамо до означень модуля.

'+', '*', '-', '/' '(', ')' інший символ

con nam ops par err



Подальша обробка лексеми залежить від її різновиду й визначається її першим символом. Нехай позначає цифру з діапазону '0'..'9', а – літеру з 'a'..'z'. Залежність різновиду від першого символу лексеми (за її наявності) подамо так:

The online video editor trusted by teams to make professional video in minutes