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