Streamlined support for empty statements and expressions.
Removed unused pretty print method in the Node class.
Separated syntax tree structure from parser code.

This will allow for different parsers to work in a modular fashion as
well as make the code easier to maintain.

Code for parsing switch statements partially implemented.