use crate::cpp::ast::*;
pub trait Visitor {
fn visit_program(&mut self, _program: &Program) {}
fn visit_stmt(&mut self, _stmt: &Stmt) {}
fn visit_expr(&mut self, _expr: &Expr) {}
fn visit_block(&mut self, _block: &Block) {}
fn visit_decl(&mut self, _decl: &Decl) {}
fn visit_func_decl(&mut self, _decl: &FuncDecl) {}
fn visit_var_decl(&mut self, _decl: &VarDecl) {}
fn visit_class_decl(&mut self, _decl: &ClassDecl) {}
fn visit_struct_decl(&mut self, _decl: &StructDecl) {}
fn visit_enum_decl(&mut self, _decl: &EnumDecl) {}
fn visit_namespace_decl(&mut self, _name: &str, _members: &[Decl]) {}
}