/*
 * This code is autogenerated by MakeTea. Do not edit.
 */

#ifndef _VISITOR_H_
#define _VISITOR_H_

#include "ast.h"
#include <iostream>
#include <sstream>
#include <iomanip>
#include <phc/lib/error.h>
#include <phc/lib/Object.h>
#include <phc/lib/List.h>
#include <phc/lib/String.h>
#include <phc/lib/Boolean.h>
#include <phc/lib/Integer.h>
#include <phc/lib/AttrMap.h>

class Tree_visitor
{
public:

public:
	virtual ~Tree_visitor();
	virtual void pre_php_script(AST_php_script* in);
	virtual void children_php_script(AST_php_script* in);
	virtual void post_php_script(AST_php_script* in);
	virtual void pre_interface_def(AST_interface_def* in);
	virtual void children_interface_def(AST_interface_def* in);
	virtual void post_interface_def(AST_interface_def* in);
	virtual void pre_class_def(AST_class_def* in);
	virtual void children_class_def(AST_class_def* in);
	virtual void post_class_def(AST_class_def* in);
	virtual void pre_class_mod(AST_class_mod* in);
	virtual void children_class_mod(AST_class_mod* in);
	virtual void post_class_mod(AST_class_mod* in);
	virtual void pre_member(AST_member* in);
	virtual void post_member(AST_member* in);
	virtual void pre_method(AST_method* in);
	virtual void children_method(AST_method* in);
	virtual void post_method(AST_method* in);
	virtual void pre_signature(AST_signature* in);
	virtual void children_signature(AST_signature* in);
	virtual void post_signature(AST_signature* in);
	virtual void pre_method_mod(AST_method_mod* in);
	virtual void children_method_mod(AST_method_mod* in);
	virtual void post_method_mod(AST_method_mod* in);
	virtual void pre_formal_parameter(AST_formal_parameter* in);
	virtual void children_formal_parameter(AST_formal_parameter* in);
	virtual void post_formal_parameter(AST_formal_parameter* in);
	virtual void pre_type(AST_type* in);
	virtual void children_type(AST_type* in);
	virtual void post_type(AST_type* in);
	virtual void pre_attribute(AST_attribute* in);
	virtual void children_attribute(AST_attribute* in);
	virtual void post_attribute(AST_attribute* in);
	virtual void pre_attr_mod(AST_attr_mod* in);
	virtual void children_attr_mod(AST_attr_mod* in);
	virtual void post_attr_mod(AST_attr_mod* in);
	virtual void pre_statement(AST_statement* in);
	virtual void post_statement(AST_statement* in);
	virtual void pre_if(AST_if* in);
	virtual void children_if(AST_if* in);
	virtual void post_if(AST_if* in);
	virtual void pre_while(AST_while* in);
	virtual void children_while(AST_while* in);
	virtual void post_while(AST_while* in);
	virtual void pre_do(AST_do* in);
	virtual void children_do(AST_do* in);
	virtual void post_do(AST_do* in);
	virtual void pre_for(AST_for* in);
	virtual void children_for(AST_for* in);
	virtual void post_for(AST_for* in);
	virtual void pre_foreach(AST_foreach* in);
	virtual void children_foreach(AST_foreach* in);
	virtual void post_foreach(AST_foreach* in);
	virtual void pre_switch(AST_switch* in);
	virtual void children_switch(AST_switch* in);
	virtual void post_switch(AST_switch* in);
	virtual void pre_switch_case(AST_switch_case* in);
	virtual void children_switch_case(AST_switch_case* in);
	virtual void post_switch_case(AST_switch_case* in);
	virtual void pre_break(AST_break* in);
	virtual void children_break(AST_break* in);
	virtual void post_break(AST_break* in);
	virtual void pre_continue(AST_continue* in);
	virtual void children_continue(AST_continue* in);
	virtual void post_continue(AST_continue* in);
	virtual void pre_return(AST_return* in);
	virtual void children_return(AST_return* in);
	virtual void post_return(AST_return* in);
	virtual void pre_static_declaration(AST_static_declaration* in);
	virtual void children_static_declaration(AST_static_declaration* in);
	virtual void post_static_declaration(AST_static_declaration* in);
	virtual void pre_unset(AST_unset* in);
	virtual void children_unset(AST_unset* in);
	virtual void post_unset(AST_unset* in);
	virtual void pre_declare(AST_declare* in);
	virtual void children_declare(AST_declare* in);
	virtual void post_declare(AST_declare* in);
	virtual void pre_directive(AST_directive* in);
	virtual void children_directive(AST_directive* in);
	virtual void post_directive(AST_directive* in);
	virtual void pre_try(AST_try* in);
	virtual void children_try(AST_try* in);
	virtual void post_try(AST_try* in);
	virtual void pre_catch(AST_catch* in);
	virtual void children_catch(AST_catch* in);
	virtual void post_catch(AST_catch* in);
	virtual void pre_throw(AST_throw* in);
	virtual void children_throw(AST_throw* in);
	virtual void post_throw(AST_throw* in);
	virtual void pre_eval_expr(AST_eval_expr* in);
	virtual void children_eval_expr(AST_eval_expr* in);
	virtual void post_eval_expr(AST_eval_expr* in);
	virtual void pre_expr(AST_expr* in);
	virtual void post_expr(AST_expr* in);
	virtual void pre_literal(AST_literal* in);
	virtual void post_literal(AST_literal* in);
	virtual void pre_assignment(AST_assignment* in);
	virtual void children_assignment(AST_assignment* in);
	virtual void post_assignment(AST_assignment* in);
	virtual void pre_list_assignment(AST_list_assignment* in);
	virtual void children_list_assignment(AST_list_assignment* in);
	virtual void post_list_assignment(AST_list_assignment* in);
	virtual void pre_list_elements(AST_list_elements* in);
	virtual void children_list_elements(AST_list_elements* in);
	virtual void post_list_elements(AST_list_elements* in);
	virtual void pre_list_element(AST_list_element* in);
	virtual void post_list_element(AST_list_element* in);
	virtual void pre_cast(AST_cast* in);
	virtual void children_cast(AST_cast* in);
	virtual void post_cast(AST_cast* in);
	virtual void pre_unary_op(AST_unary_op* in);
	virtual void children_unary_op(AST_unary_op* in);
	virtual void post_unary_op(AST_unary_op* in);
	virtual void pre_bin_op(AST_bin_op* in);
	virtual void children_bin_op(AST_bin_op* in);
	virtual void post_bin_op(AST_bin_op* in);
	virtual void pre_conditional_expr(AST_conditional_expr* in);
	virtual void children_conditional_expr(AST_conditional_expr* in);
	virtual void post_conditional_expr(AST_conditional_expr* in);
	virtual void pre_ignore_errors(AST_ignore_errors* in);
	virtual void children_ignore_errors(AST_ignore_errors* in);
	virtual void post_ignore_errors(AST_ignore_errors* in);
	virtual void pre_constant(AST_constant* in);
	virtual void children_constant(AST_constant* in);
	virtual void post_constant(AST_constant* in);
	virtual void pre_instanceof(AST_instanceof* in);
	virtual void children_instanceof(AST_instanceof* in);
	virtual void post_instanceof(AST_instanceof* in);
	virtual void pre_variable(AST_variable* in);
	virtual void children_variable(AST_variable* in);
	virtual void post_variable(AST_variable* in);
	virtual void pre_variable_name(AST_variable_name* in);
	virtual void post_variable_name(AST_variable_name* in);
	virtual void pre_reflection(AST_reflection* in);
	virtual void children_reflection(AST_reflection* in);
	virtual void post_reflection(AST_reflection* in);
	virtual void pre_target(AST_target* in);
	virtual void post_target(AST_target* in);
	virtual void pre_pre_op(AST_pre_op* in);
	virtual void children_pre_op(AST_pre_op* in);
	virtual void post_pre_op(AST_pre_op* in);
	virtual void pre_post_op(AST_post_op* in);
	virtual void children_post_op(AST_post_op* in);
	virtual void post_post_op(AST_post_op* in);
	virtual void pre_array(AST_array* in);
	virtual void children_array(AST_array* in);
	virtual void post_array(AST_array* in);
	virtual void pre_array_elem(AST_array_elem* in);
	virtual void children_array_elem(AST_array_elem* in);
	virtual void post_array_elem(AST_array_elem* in);
	virtual void pre_method_invocation(AST_method_invocation* in);
	virtual void children_method_invocation(AST_method_invocation* in);
	virtual void post_method_invocation(AST_method_invocation* in);
	virtual void pre_method_name(AST_method_name* in);
	virtual void post_method_name(AST_method_name* in);
	virtual void pre_actual_parameter(AST_actual_parameter* in);
	virtual void children_actual_parameter(AST_actual_parameter* in);
	virtual void post_actual_parameter(AST_actual_parameter* in);
	virtual void pre_new(AST_new* in);
	virtual void children_new(AST_new* in);
	virtual void post_new(AST_new* in);
	virtual void pre_class_name(AST_class_name* in);
	virtual void post_class_name(AST_class_name* in);
	virtual void pre_clone(AST_clone* in);
	virtual void children_clone(AST_clone* in);
	virtual void post_clone(AST_clone* in);
	virtual void pre_node(AST_node* in);
	virtual void post_node(AST_node* in);
	virtual void pre_commented_node(AST_commented_node* in);
	virtual void post_commented_node(AST_commented_node* in);
	virtual void pre_identifier(AST_identifier* in);
	virtual void post_identifier(AST_identifier* in);
	virtual void pre_interface_name(Token_interface_name* in);
	virtual void children_interface_name(Token_interface_name* in);
	virtual void post_interface_name(Token_interface_name* in);
	virtual void pre_class_name(Token_class_name* in);
	virtual void children_class_name(Token_class_name* in);
	virtual void post_class_name(Token_class_name* in);
	virtual void pre_method_name(Token_method_name* in);
	virtual void children_method_name(Token_method_name* in);
	virtual void post_method_name(Token_method_name* in);
	virtual void pre_variable_name(Token_variable_name* in);
	virtual void children_variable_name(Token_variable_name* in);
	virtual void post_variable_name(Token_variable_name* in);
	virtual void pre_directive_name(Token_directive_name* in);
	virtual void children_directive_name(Token_directive_name* in);
	virtual void post_directive_name(Token_directive_name* in);
	virtual void pre_int(Token_int* in);
	virtual void children_int(Token_int* in);
	virtual void post_int(Token_int* in);
	virtual void pre_real(Token_real* in);
	virtual void children_real(Token_real* in);
	virtual void post_real(Token_real* in);
	virtual void pre_string(Token_string* in);
	virtual void children_string(Token_string* in);
	virtual void post_string(Token_string* in);
	virtual void pre_bool(Token_bool* in);
	virtual void children_bool(Token_bool* in);
	virtual void post_bool(Token_bool* in);
	virtual void pre_null(Token_null* in);
	virtual void children_null(Token_null* in);
	virtual void post_null(Token_null* in);
	virtual void pre_cast(Token_cast* in);
	virtual void children_cast(Token_cast* in);
	virtual void post_cast(Token_cast* in);
	virtual void pre_op(Token_op* in);
	virtual void children_op(Token_op* in);
	virtual void post_op(Token_op* in);
	virtual void pre_constant_name(Token_constant_name* in);
	virtual void children_constant_name(Token_constant_name* in);
	virtual void post_constant_name(Token_constant_name* in);
	virtual void pre_interface_def_list(AST_interface_def_list* in);
	virtual void children_interface_def_list(AST_interface_def_list* in);
	virtual void post_interface_def_list(AST_interface_def_list* in);
	virtual void pre_class_def_list(AST_class_def_list* in);
	virtual void children_class_def_list(AST_class_def_list* in);
	virtual void post_class_def_list(AST_class_def_list* in);
	virtual void pre_interface_name_list(Token_interface_name_list* in);
	virtual void children_interface_name_list(Token_interface_name_list* in);
	virtual void post_interface_name_list(Token_interface_name_list* in);
	virtual void pre_member_list(AST_member_list* in);
	virtual void children_member_list(AST_member_list* in);
	virtual void post_member_list(AST_member_list* in);
	virtual void pre_statement_list(AST_statement_list* in);
	virtual void children_statement_list(AST_statement_list* in);
	virtual void post_statement_list(AST_statement_list* in);
	virtual void pre_formal_parameter_list(AST_formal_parameter_list* in);
	virtual void children_formal_parameter_list(AST_formal_parameter_list* in);
	virtual void post_formal_parameter_list(AST_formal_parameter_list* in);
	virtual void pre_switch_case_list(AST_switch_case_list* in);
	virtual void children_switch_case_list(AST_switch_case_list* in);
	virtual void post_switch_case_list(AST_switch_case_list* in);
	virtual void pre_directive_list(AST_directive_list* in);
	virtual void children_directive_list(AST_directive_list* in);
	virtual void post_directive_list(AST_directive_list* in);
	virtual void pre_catch_list(AST_catch_list* in);
	virtual void children_catch_list(AST_catch_list* in);
	virtual void post_catch_list(AST_catch_list* in);
	virtual void pre_list_element_list(AST_list_element_list* in);
	virtual void children_list_element_list(AST_list_element_list* in);
	virtual void post_list_element_list(AST_list_element_list* in);
	virtual void pre_expr_list(AST_expr_list* in);
	virtual void children_expr_list(AST_expr_list* in);
	virtual void post_expr_list(AST_expr_list* in);
	virtual void pre_array_elem_list(AST_array_elem_list* in);
	virtual void children_array_elem_list(AST_array_elem_list* in);
	virtual void post_array_elem_list(AST_array_elem_list* in);
	virtual void pre_actual_parameter_list(AST_actual_parameter_list* in);
	virtual void children_actual_parameter_list(AST_actual_parameter_list* in);
	virtual void post_actual_parameter_list(AST_actual_parameter_list* in);
};

#endif // _VISITOR_H_
