#ifndef STAN_LANG_AST_DEF_CPP
#define STAN_LANG_AST_DEF_CPP

#include <boost/variant/apply_visitor.hpp>
#include <boost/variant/recursive_variant.hpp>

#include <stan/lang/ast.hpp>

#include <stan/lang/ast/base_expr_type_def.hpp>
#include <stan/lang/ast/expr_type_def.hpp>
#include <stan/lang/ast/scope_def.hpp>
#include <stan/lang/ast/variable_map_def.hpp>

#include <stan/lang/ast/fun/ends_with_def.hpp>
#include <stan/lang/ast/fun/fun_name_exists_def.hpp>
#include <stan/lang/ast/fun/get_cdf_def.hpp>
#include <stan/lang/ast/fun/get_ccdf_def.hpp>
#include <stan/lang/ast/fun/get_prob_fun_def.hpp>
#include <stan/lang/ast/fun/has_ccdf_suffix_def.hpp>
#include <stan/lang/ast/fun/has_cdf_suffix_def.hpp>
#include <stan/lang/ast/fun/has_lp_suffix_def.hpp>
#include <stan/lang/ast/fun/has_non_param_var_def.hpp>
#include <stan/lang/ast/fun/has_non_param_var_vis_def.hpp>
#include <stan/lang/ast/fun/has_prob_fun_suffix_def.hpp>
#include <stan/lang/ast/fun/has_rng_suffix_def.hpp>
#include <stan/lang/ast/fun/has_var_def.hpp>
#include <stan/lang/ast/fun/has_var_vis_def.hpp>
#include <stan/lang/ast/fun/indexed_type_def.hpp>
#include <stan/lang/ast/fun/infer_type_indexing_def.hpp>
#include <stan/lang/ast/fun/is_assignable_def.hpp>
#include <stan/lang/ast/fun/is_multi_index_def.hpp>
#include <stan/lang/ast/fun/is_multi_index_vis_def.hpp>
#include <stan/lang/ast/fun/is_nil_def.hpp>
#include <stan/lang/ast/fun/is_nil_vis_def.hpp>
#include <stan/lang/ast/fun/is_no_op_statement_vis_def.hpp>
#include <stan/lang/ast/fun/is_nonempty_def.hpp>
#include <stan/lang/ast/fun/is_space_def.hpp>
#include <stan/lang/ast/fun/is_user_defined_def.hpp>
#include <stan/lang/ast/fun/is_user_defined_prob_function_def.hpp>
#include <stan/lang/ast/fun/name_vis_def.hpp>
#include <stan/lang/ast/fun/print_scope_def.hpp>
#include <stan/lang/ast/fun/promote_primitive_def.hpp>
#include <stan/lang/ast/fun/returns_type_def.hpp>
#include <stan/lang/ast/fun/returns_type_vis_def.hpp>
#include <stan/lang/ast/fun/strip_prob_fun_suffix_def.hpp>
#include <stan/lang/ast/fun/strip_ccdf_suffix_def.hpp>
#include <stan/lang/ast/fun/strip_cdf_suffix_def.hpp>
#include <stan/lang/ast/fun/total_dims_def.hpp>
#include <stan/lang/ast/fun/write_base_expr_type_def.hpp>
#include <stan/lang/ast/fun/var_decl_base_type_vis_def.hpp>
#include <stan/lang/ast/fun/var_decl_def_vis_def.hpp>
#include <stan/lang/ast/fun/var_decl_dims_vis_def.hpp>
#include <stan/lang/ast/fun/var_decl_has_def_vis_def.hpp>
#include <stan/lang/ast/fun/var_occurs_vis_def.hpp>

#include <stan/lang/ast/node/algebra_solver_def.hpp>
#include <stan/lang/ast/node/algebra_solver_control_def.hpp>
#include <stan/lang/ast/node/arg_decl_def.hpp>
#include <stan/lang/ast/node/array_expr_def.hpp>
#include <stan/lang/ast/node/assignment_def.hpp>
#include <stan/lang/ast/node/assgn_def.hpp>
#include <stan/lang/ast/node/base_var_decl_def.hpp>
#include <stan/lang/ast/node/binary_op_def.hpp>
#include <stan/lang/ast/node/break_continue_statement_def.hpp>
#include <stan/lang/ast/node/cholesky_factor_var_decl_def.hpp>
#include <stan/lang/ast/node/cholesky_corr_var_decl_def.hpp>
#include <stan/lang/ast/node/compound_assignment_def.hpp>
#include <stan/lang/ast/node/conditional_op_def.hpp>
#include <stan/lang/ast/node/conditional_statement_def.hpp>
#include <stan/lang/ast/node/corr_matrix_var_decl_def.hpp>
#include <stan/lang/ast/node/cov_matrix_var_decl_def.hpp>
#include <stan/lang/ast/node/double_literal_def.hpp>
#include <stan/lang/ast/node/double_var_decl_def.hpp>
#include <stan/lang/ast/node/expression_def.hpp>
#include <stan/lang/ast/node/expression_type_vis_def.hpp>
#include <stan/lang/ast/node/for_statement_def.hpp>
#include <stan/lang/ast/node/function_decl_def_def.hpp>
#include <stan/lang/ast/node/function_decl_defs_def.hpp>
#include <stan/lang/ast/node/fun_def.hpp>
#include <stan/lang/ast/node/idx_def.hpp>
#include <stan/lang/ast/node/increment_log_prob_statement_def.hpp>
#include <stan/lang/ast/node/index_op_def.hpp>
#include <stan/lang/ast/node/index_op_sliced_def.hpp>
#include <stan/lang/ast/node/int_literal_def.hpp>
#include <stan/lang/ast/node/int_var_decl_def.hpp>
#include <stan/lang/ast/node/integrate_ode_def.hpp>
#include <stan/lang/ast/node/integrate_ode_control_def.hpp>
#include <stan/lang/ast/node/lb_idx_def.hpp>
#include <stan/lang/ast/node/lub_idx_def.hpp>
#include <stan/lang/ast/node/matrix_var_decl_def.hpp>
#include <stan/lang/ast/node/multi_idx_def.hpp>
#include <stan/lang/ast/node/omni_idx_def.hpp>
#include <stan/lang/ast/node/ordered_var_decl_def.hpp>
#include <stan/lang/ast/node/positive_ordered_var_decl_def.hpp>
#include <stan/lang/ast/node/printable_def.hpp>
#include <stan/lang/ast/node/print_statement_def.hpp>
#include <stan/lang/ast/node/program_def.hpp>
#include <stan/lang/ast/node/range_def.hpp>
#include <stan/lang/ast/node/reject_statement_def.hpp>
#include <stan/lang/ast/node/return_statement_def.hpp>
#include <stan/lang/ast/node/matrix_expr_def.hpp>
#include <stan/lang/ast/node/row_vector_expr_def.hpp>
#include <stan/lang/ast/node/row_vector_var_decl_def.hpp>
#include <stan/lang/ast/node/sample_def.hpp>
#include <stan/lang/ast/node/simplex_var_decl_def.hpp>
#include <stan/lang/ast/node/statement_def.hpp>
#include <stan/lang/ast/node/statements_def.hpp>
#include <stan/lang/ast/node/ub_idx_def.hpp>
#include <stan/lang/ast/node/unary_op_def.hpp>
#include <stan/lang/ast/node/uni_idx_def.hpp>
#include <stan/lang/ast/node/unit_vector_var_decl_def.hpp>
#include <stan/lang/ast/node/vector_var_decl_def.hpp>
#include <stan/lang/ast/node/var_decl_def.hpp>
#include <stan/lang/ast/node/variable_def.hpp>
#include <stan/lang/ast/node/variable_dims_def.hpp>
#include <stan/lang/ast/node/while_statement_def.hpp>

#include <stan/lang/ast/sigs/function_signatures_def.hpp>
#include <stan/lang/ast/sigs/function_arg_type_def.hpp>

#endif
