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.