summaryrefslogtreecommitdiff
path: root/src/hir/visitor.hpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-05-24 15:12:25 +0800
committerJohn Hodge <tpg@mutabah.net>2016-05-24 15:12:25 +0800
commitdd32dcc71299a489f18dc9d1247104cb81b6b5dd (patch)
treecd050481454e65f1929cb28c658bc8c2c678b00a /src/hir/visitor.hpp
parentba6f4df093bc8bfc330b2205279f3f0fca225e77 (diff)
downloadmrust-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.hpp46
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
+