Posted By: Endif (soudruzi, takhle tedy ne) on 'CZprogram'
Title:     Re: Gramatika aritmetickych vyrazu
Date:      Thu Sep 30 18:13:13 1999

Hi,
z praktickeho hlediska je vetsinou nejpohodlnejsi pouzit, jak navrhuje 
PajaSoft, nejakey generatorek. Yacc/bison umi tusim LALR(1) gramatiky, ktera 
staci (s nekolika workaroundama) na jazkyky typu Pascal, C, Java... Pokud bys 
potreboval neco vic, tak napr. JavaCC zvlada LL(k) gramatiky.

Ovsem u aritmetickych vyrazu, pokud je chces jenom vyhodnocovat, bude asi 
lepsi prevest je do postfixove notace za pouziti zasobniku, napr.:

   1 + 2 * 4  ---- se prevede ---->  [top stack] 1 2 + 4 *

   a nasledne zpracovat pomoci 2 registru:

   1) r1 = pop, r2 = pop (cili r1=1, r2=2), push(r1+r2) a na zasobniku bude:

      [top stack] 3 4 *

   2) r1 = pop, r2 = pop (cili r1=3, r2=4), push(r1*r2) a hotovka:

      [top stack] 12

Bye, Endy/Endif 
                         ... please wait - loading a virus into your computer.

Search the boards