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