Clean up
Introduce concept of TypeObject
Remove repetitive code
Use toString for debugging alone
Realign long strings in ParserTest for clarity
Use Java7 automatic resource management
Make StatementFactory fully static
Rename StatementFactory > NSISStatements
Create helper class StatementParser for parsing functional statements and let Parser to concentrate on file input/output
Move Parser.NEWLINE_MARKER to NSISStatements
Remove unnecessary indent from error-flagged function calls
StatementParser should rely on NSISStatements to create NSIS statements
Simplify creating new SimpleTypeObject instances
Move & rename NSISStatements.deString(TypeObject obj) to SimpleTypeObject.stripString(TypeObject obj)
FunctionMsgBox relies on NSISStatements and instruction StrCpy
Move NameGenerator outside of Environment
Move loading build-in functions and variables to BuiltinElements class
Extract constant for function null return variable name