Operator Precedence Expressions could be written in an unambiguous, fully parenthesized form. However, this is less convenient for the programmer.
Precedence specifies which operations in a flat expression are to be performed first. B * C is performed first in A + B * C; * takes precedence over +, * > · +.
Associativity specifies which operations are to be performed first when adjacent operators have the same precedence. A + B is performed first in A + B + C since + is left-associative. B ** C is performed first in A ** B ** C since ** is right-associative.
Typical precedence values [ not Pascal]:
10 . (highest precedence) 9 ^ 8 - (unary) 7 * / 6 + - 5 = <> >= > <= < 4 not 3 and 2 or 1 := (lowest precedence)