start generating AST