Обчислення иразів у програмуванні, Детальна інформація

Обчислення иразів у програмуванні
Тип документу: Реферат
Сторінок: 18
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 32.5
Скачувань: 934
par : (prt : char);

err : (wrlx : st8 )

end;

function getlx ( var lx : Tlx ) : boolean;

Implementation

const fnum = 2; {кількість імен функцій}

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;

9.3. Функція getlx

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

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

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

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

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

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

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

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