Expressions
Primary expressions
primary-expression:
literal
simple-name
( expression )
member-access
invocation-expression
element-access
this
base
object-creation-expression
array-creation-expression
sizeof ( type )
typeof ( type )
Unary expressions
unary-expression:
primary-expression
+ unary-expression
- unary-expression
! unary-expression
~ unary-expression
cast-expression
Arithmetic operations
multiplicative-expression:
unary-expression
multiplicative-expression * unary-expression
multiplicative-expression / unary-expression
multiplicative-expression % unary-expression
additive-expression:
multiplicative-expression
additive-expression + multiplicative-expression
additive-expression - multiplicative-expression
Shift operations
shift-expression:
additive-expression
shift-expression << additive-expression
shift-expression >> additive-expression
Relational operations
relational-expression:
shift-expression
relational-expression < shift-expression
relational-expression <= shift-expression
relational-expression > shift-expression
relational-expression >= shift-expression
equality-expression:
relational-expression
equality-expression == relational-expression
equality-expression != relational-expression
Logical operations
and-expression:
equality-expression
and-expression & equality-expression
exclusive-or-expression:
and-expression
exclusive-or-expression ^ and-expression
inclusive-or-expression:
exclusive-or-expression
inclusive-or-expression | exclusive-or-expression
Assignments
assigment:
unary-expression = expression
unary-expression += expression
unary-expression -= expression
unary-expression *= expression
unary-expression /= expression
unary-expression %= expression
unary-expression &= expression
unary-expression |= expression
unary-expression ^= expression
unary-expression <<= expression
unary-expression >>= expression