updated ast_code_generator