75 lines
1.3 KiB
Modula-2
75 lines
1.3 KiB
Modula-2
/**
|
|
* http://en.cppreference.com/w/cpp/language/operator_precedence
|
|
*/
|
|
|
|
// Prefix increment and decrement
|
|
UNARY(PLUS_PLUS, 3)
|
|
UNARY(MINUS_MINUS, 3)
|
|
|
|
// Unary plus and minus
|
|
UNARY(PLUS, 3)
|
|
UNARY(MINUS, 3)
|
|
|
|
// Logical NOT and bitwise NOT
|
|
UNARY(TILDE, 3)
|
|
UNARY(EXCLAMATION, 3)
|
|
|
|
// Multiplication, division, and remainder
|
|
BINARY(ASTERISK, 5)
|
|
BINARY(SLASH, 5)
|
|
BINARY(PERCENT, 5)
|
|
|
|
// Addition and subtraction
|
|
BINARY(PLUS, 6)
|
|
BINARY(MINUS, 6)
|
|
|
|
// Bitwise left shift and right shift
|
|
BINARY(LT_LT, 7)
|
|
BINARY(GT_GT, 7)
|
|
|
|
// For relational operators < and ≤ respectively
|
|
BINARY(LT, 8)
|
|
BINARY(LT_EQUAL, 8)
|
|
|
|
// For relational operators > and ≥ respectively
|
|
BINARY(GT, 8)
|
|
BINARY(GT_EQUAL, 8)
|
|
|
|
// For relational = and ≠ respectively
|
|
BINARY(EQUAL_EQUAL, 9)
|
|
BINARY(EXCLAMATION_EQUAL, 9)
|
|
|
|
// Bitwise AND
|
|
BINARY(AMPERSAND, 10)
|
|
|
|
// Bitwise XOR (exclusive or)
|
|
BINARY(CIRCUMFLEX, 11)
|
|
|
|
// Bitwise OR (inclusive or)
|
|
BINARY(PIPE, 12)
|
|
|
|
// Logical AND
|
|
BINARY(AMPERSAND_AMPERSAND, 13)
|
|
|
|
// Logical OR
|
|
BINARY(PIPE_PIPE, 14)
|
|
|
|
// Assignements
|
|
BINARY(EQUAL, 15)
|
|
BINARY(PLUS_EQUAL, 15)
|
|
BINARY(MINUS_EQUAL, 15)
|
|
BINARY(ASTERISK_EQUAL, 15)
|
|
BINARY(SLASH_EQUAL, 15)
|
|
BINARY(PERCENT_EQUAL, 15)
|
|
BINARY(LT_LT_EQUAL, 15)
|
|
BINARY(GT_GT_EQUAL, 15)
|
|
BINARY(AMPERSAND_EQUAL, 15)
|
|
BINARY(CIRCUMFLEX_EQUAL, 15)
|
|
BINARY(PIPE_EQUAL, 15)
|
|
|
|
/**
|
|
* New operators
|
|
*/
|
|
|
|
// ...
|