add operator precedence and associativity
add ~ to unary expresions and get rid of redundant cast expression section