SimReal - Hvordan lage en kalkulator? |
Alle operatorer tildeles en prioritetsverdi. Det viser seg å være nødvendig med to typer prioritet, en for infix-uttrykket og en for stakk-operatorene. På figuren er vist prioritetene for operatorene ^, *, /, +, ', (, ) og #. # er et spesialtegn som det er hensiktsmessig å la representere slutten av et uttrykk eller bunnen av operator-stakken. Parentes har selvfølgelig høyest prioritet. Vi ser at venstre-parentesen har høyest prioritet (4) i infix-uttrykket. At høyre-parentesen har lavest prioritet i infix-uttryket, henger sammen med at høyre-parenteser ikke trenger plasseres på operator-stakken. Straks en høyre-parentes påtreffes, poppes alle stakk-operatorene til og med tilhørende venstre-parentes opp. Matematiske funksjoner (sin, cos, ...) er ikke tatt med i denne prioritets-tabellen. Matematiske funksjoner vil ha høyest prioritet etter parenteser, hvilket betyr at med innføring av matematiske funksjoner (som selvfølgelig er nødvendig), så må parentes-prioriteten 4 økes slik at det blir plass til en funksjons-prioritet mellom venstre-parentes prioritet og opphøyd-i (^) prioritet. |