Improved formatting and comments
Added syntax examples for preprocessors
Minor refactoring
Fixed tests and added trivial test