Зворотний зв'язок

ОБЧИСЛЕННЯ ВИРАЗІВ У ПРОГРАМУВАННІ

lt := gett( Slx, lx1);

while ( lt = nam ) or

( ( lt = ops ) and (prior(lx1.sig) >= prior(lx.sig) ) do

begin

lt := pop( Slx, lx1);

put( Llx, lx1);

lt := gett( Slx, lx1)

end;

push( Slx, lx)

end;

nam : push( Slx, lx)

else ok := false

end; {case та while}

if ok then

while pop( Slx, lx1) <> par doput(Llx, lx1);

ipllx := ok

end;

Ця підпрограма має суттєвий недолік. Справа в тім, що вона не задає структурного, або синтаксичного, аналізу вхідного ланцюжка символів. Наприклад, недопустима вхідна послідовність лексем "1 2 3 + *" буде прочитана та оброблена як інфіксний вираз, за ним буде створено ЗПЗ "1 2 3 * +", а далі обчислено значення 7, що не має ніякого змісту.

Поняття, необхідні для аналізу структури виразів, розглядаються в розділі 21.

7. Уточнення алгоритму обчислення виразу

Напишемо функцію llxval обчислення значення виразу за його ЗПЗ, що подається послідовністю лексем. У цій функції використовуються засоби з модуля SLlx:

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

function isemllx ( Llx : Sqlx ) : boolean;

-процедура добування й вилучення першого елемента послідовності лексем із заголовком


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат