Transform concrete grammar into abstract algebra
Merge pull request #84 from Kha/AST-algebra

Transform concrete grammar into abstract algebra
Implement simple symbol table
Fix bug in PrettyPrinter, add roundtrip and idempotency tests
Merge pull request #95 from TehMillhouse/prettyprint_fix

Fix bug in PrettyPrinter, add roundtrip and idempotency tests
Merge pull request #94 from Kha/simple-symbol

Implement simple symbol table
Modify syntax tree for naming and typing

 - Introduce new trait Typed for an AST element that has a type
 - Introduce new trait Ref for an AST element that references another
   AST element (more specifically, a Decl).
Make LocalVariableDeclStatement a TypedDecl
Merge pull request #97 from jspam/036-ast-changes-for-naming

Modify syntax tree for naming and typing
Implement the type(checke)r
Add test for correct return type
Declare builtin types and values
Merge pull request #98 from Kha/builtins

Declare builtin types and values
Merge pull request #96 from jspam/035-typer

Basic implementation of the type(checke)r
Prohibit usage of void in local variable declarations and field declarations
Prohibit usage of void in parameter declarations
Add test for typechecking local variable declarations
Replace TypeBasic(...) with type constants
Allow assigning null to references only
Make Typer accept only a Program, not a SyntaxTree