diff options
author | John Hodge <tpg@mutabah.net> | 2016-05-24 15:12:25 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-05-24 15:12:25 +0800 |
commit | dd32dcc71299a489f18dc9d1247104cb81b6b5dd (patch) | |
tree | cd050481454e65f1929cb28c658bc8c2c678b00a /src/hir/visitor.hpp | |
parent | ba6f4df093bc8bfc330b2205279f3f0fca225e77 (diff) | |
download | mrust-dd32dcc71299a489f18dc9d1247104cb81b6b5dd.tar.gz |
HIR Expand Type - Convert to use a generic HIR visitor
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 + |