Fully functioning AST generation