Fix lexer errors in parser tests
Reuse lexer result after checking for lexing success
Replace Unicode character methods with specialized ASCII versions
Merge pull request #74 from jspam/031-lexer-errors-in-parser-tests

Fix lexer errors in parser tests
Implement precedence climbing
Compiler: Buffer output
Merge pull request #82 from Kha/buffer-output

Compiler: Buffer output
Integer -> Int
Merge pull request #83 from jspam/030-precedence-climbing

Implement precedence climbing
Precedence climbing, AST definition and AST construction
Merge pull request #79 from soc/issue-015

Precedence climbing, AST definition and AST construction
Merge pull request #78 from soc/topic/ascii

Replace Unicode character methods with specialized ASCII versions
AST: Expressions and Statements

* Remove unused Parameters class
* Separate expressions and statements
  * Add ExpressionStatement class. We _could_ let Expression inherit from Statement,
    but I don't think there will be many common code paths.
  * Rename EmptyTree to EmptyStatement. I'm hesitant to include an EmptyExpression,
    so replacing with Option[Expression] instead.
* Add missing ReturnStatement
* Fix signatures of Block, If, While, Apply, Select
* Fixup/implement affected Parser parts
Parser: Check AST in statements test cases

* Fix parser to make them pass
* Fix TypeConstructor signature. While we're at it, replace with
  TypeArray class, as discussed in chat
* reorder test cases by grammar section
Implement and test expressions

* Separate NewArrayExpr and NewObjectExpr
* Assignment is not a Statement
* Banish ListBuffer from SyntaxTree
Merge pull request #85 from Kha/ast

Implement remaining parser, fix AST where necessary
Implement pretty printer + tests

This also adds isStatic / isOperator flags to AST nodes and reenables
previously (accidentally) disabled handling of usage errors
Add attribute grammar for AST construction
Merge pull request #88 from jspam/034-attrib-grammar

Add attribute grammar for AST construction
Don't collapse empty classes in pretty printer