Rework compiler to properly handle operator precedence. This in turn improves code quality and extensibility a lot.