Differentiate between statements and *outer* statements.
Clean up the grammar.

Renaming things consistently, putting ‘;’ in more appropriate places,
etc.
Add skeleton support for function declarations :)

front-end only so far. tweaking needed to take into account scope.
Walk params too.
Update syntax error.
Reference unrecognised node more explicitly.
Pass through symbol for function declaration.
extend printNode to handle new node types.
Store function decl name too!
Newlines should go to stdout too :)
Give some better information when unrecognised types.
Give more information on invalid position.
Add field to store values.
Add code to separate out lex chars read.
Lex string literals.
Parse string literals.

Also clean up grammar a bit.
Indiciate when unknown data type found.