diff options
Diffstat (limited to 'src/hir/visitor.hpp')
-rw-r--r-- | src/hir/visitor.hpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/hir/visitor.hpp b/src/hir/visitor.hpp new file mode 100644 index 00000000..814dac67 --- /dev/null +++ b/src/hir/visitor.hpp @@ -0,0 +1,46 @@ +/* + */ +#pragma once + +#include <hir/hir.hpp> + +namespace HIR { + +class Visitor +{ +public: + virtual ~Visitor(); + + virtual void visit_crate(::HIR::Crate& crate); + + virtual void visit_module(::HIR::Module& mod); + + virtual void visit_type_impl(::HIR::TypeImpl& impl); + virtual void visit_trait_impl(::HIR::TraitImpl& impl); + virtual void visit_marker_impl(::HIR::MarkerImpl& impl); + + // - Type Items + virtual void visit_type_alias(::HIR::TypeAlias& item); + virtual void visit_trait(::HIR::Trait& item); + virtual void visit_struct(::HIR::Struct& item); + virtual void visit_enum(::HIR::Enum& item); + // - Value Items + virtual void visit_function(::HIR::Function& item); + virtual void visit_static(::HIR::Static& item); + virtual void visit_constant(::HIR::Constant& item); + + // - Misc + virtual void visit_params(::HIR::GenericParams& params); + virtual void visit_pattern(::HIR::Pattern& pat); + virtual void visit_pattern_val(::HIR::Pattern::Value& val); + virtual void visit_type(::HIR::TypeRef& tr); + + virtual void visit_path(::HIR::Path& p); + virtual void visit_path_params(::HIR::PathParams& p); + virtual void visit_generic_path(::HIR::GenericPath& p); + + virtual void visit_expr(::HIR::ExprPtr& exp); +}; + +} // namespace HIR + |