Add compound expressions and if expressions.
Add parameterized types.
Add tuples and unit.
Fix parsing bug in INDEX where we would not be able to array index or cast the result of a function call.
Add the ability to parse accesses of fields of structs.
Add function declarations and returns to the parser.
Parse function declarations that include parameterized types.
Add a bunch of traits to Lexer to make LexerRules more powerful so we can handle tokens with more context