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

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

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

Щоб добути знак операції чи дужку, досить узяти поточний символ.

Добування сталих та імен (елементів типу real і st8) опишемо функціями відповідно getcon і getnam.

Побудуємо функції getcon і getnam так, щоб після виконання їх виклику поточним був символ, наступний за останнім символом добутої лексеми. У такому разі до обробки знаків операцій і дужок додамо указання переходу до наступного поточного символу tempc := getc. Імена, що не є іменами функцій із масиву Namf, будемо вважати помилковими лексемами. Якщо лексема подається змінною lx типу Tlx, то залежно від першого символу лексеми потрібно виконати такі дії:

\xF0AE lx.stl := con; lx.numb := getcon;

\xF0AE lx.name := getnam;

if lx.name представлено в Namf then lx.stl := nam

else lx.stl := err;

'+', '*', '-', '/' \xF0AE lx.stl := ops; lx.sig := tempc; tempc := getc;

'(', ')' \xF0AE lx.stl := par; lx.prt := tempc; tempc := getc;

інше \xF0AE lx.stl := err; lx.wrlx := tempc; tempc := getc;

В усіх випадках повертається значення true – ознака наявності лексеми. За символу finch повертається false. Наведена залежність є основою функції getlx:

function getlx ( var lx : Tlx ) : boolean;

begin

getlx := true; tempc := getbglx;

if tempc in Bcon then

begin

lx.stl := con; lx.numb := getcon

end

else

if tempc in Bnam then

begin

lx.name := getnam;

if isfn ( lx.name ) then lx.stl := nam

else lx.stl := err

end

else

if tempc in Bops then

begin

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