Auswertungsreihenfolge
Wenn in einem Makroausdruck mehrere Operationen miteinander verknüpft werden, haben die Operatoren unterschiedliche Prioritäten bezüglich der Auswertungsreihenfolge, z. B. anhand der allgemeinen Punkt- vor Strichrechnung.
Programmintern sind für die Auswertung folgende Prioritäten festgelegt:
Hinweis
Operationen derselben Stufe werden von links nach rechts abgearbeitet.
!not*/\%mod+-===!=<><><=>=~&&&and|||or
Um die implizite Auswertungsreihenfolge zu übersteuern oder im Sinne der besseren Lesbarkeit kenntlich zu machen, können die Prioritäten explizit definiert werden. Hierzu können runde Klammern um Unterausdrücke gesetzt werden. Diese Unterausdrücke werden dann vorrangig ausgewertet.
Die in Klammern gesetzte Ausdrücke können beliebig tief geschachtelt sein. Um keine Syntaxfehler zu verursachen, ist hierbei auf eine ausbalancierte Klammersetzung zu achten.
Beispiel: Bei einer Punkt- vor Strichrechnung ergibt der Ausdruck 1+2*3 mathematisch korrekt 7. Um diese Regel zu übersteuern und den Ausdruck von links nach rechts auszuwerten, um das Ergebnis 9 zu erhalten, muss (1+2)*3 geschrieben werden. Auf diese Weise wird die enthaltene Addition vorrangig ausgeführt.