AST + visitor. All 5 test cases are now parsed and successfully repeated. Ready for scope and type checking :)