#include <symbols.h>
Klassendiagramm für SymOperator:

Öffentliche Methoden | |
| SymOperator (string op="", int prio=2, string hlp="no help available") | |
| int | getPrio () const |
| void | processCommon () |
| Prozessiert einen eingegebenen Operator. | |
| void | processAddSub () |
| Prozessiert "+" und "-". | |
| SymOperator * | checkConstMode (const SymOperator *lastSymP) const |
| virtual Number | calcVal (const Number &a, const Number &b)=0 |
Geschützte Attribute | |
| int | mPrio |
|
||||||||||||||||
|
|
|
||||||||||||
|
Implementiert in OpPow, OpRoot, OpMod, OpGcd, OpLcm, OpAdd, OpSub, OpMul, OpDiv, OpRp, OpPr, OpNpr und OpNcr. |
|
|
|
|
|
|
|
|
Prozessiert "+" und "-". Hier ist ein Sonderfall implementiert: Wenn unmittelbar vor Eingabe des Operators eine Prozentrechnung ausgefuehrt wurde, wird sofort ein Aufschlag oder Abschlag berechnet. Beispiel: "100*3%+" ergibt sofort 103, ohne dass "=" gedrueckt werden muesste. Nach dem "%" steht im Zahlen-Stack nur die 3. In AcPrc::process() wurde in mPrcWhole die 100 gespeichert. Diese beiden Operanden werden in der richtigen Reihenfolge auf den Stack gebracht, "+" oder "-" auf den Symbol- Stack und OthEqu::process() ausgefuehrt. |
|
|
Prozessiert einen eingegebenen Operator. Wenn der Symbolstack leer ist, wird der Operator einfach auf den Stack gelegt. Wenn nicht, muss erst ueberprueft werden, ob der vorherige Operator hoehere oder gleiche Prioritaet hat; falls ja, wird diese Operation zuerst ausgefuehrt; daraufhin ist ggf. ein neuer Operator oben, mit dem der Vergleich rekursiv erneut durchgefuehrt wird. |
|
|
|
1.4.1