LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
object-visitor.hh
Go to the documentation of this file.
1 
6 #ifndef AST_OBJECT_VISITOR_HH
7 # define AST_OBJECT_VISITOR_HH
8 
9 # include <ast/visitor.hh>
10 
11 namespace ast
12 {
45  template <template <typename> class Const>
46  class GenObjectVisitor : virtual public GenVisitor<Const>
47  {
48  public:
51 
52  // Import overloaded virtual functions.
53  using super_type::operator();
54 
57 
60  virtual ~GenObjectVisitor();
63 
64 
65  virtual void operator()(typename Const<ClassTy>::type& e) override;
66 
67  virtual void operator()(typename Const<MethodDecs>::type& e) override;
68  virtual void operator()(typename Const<MethodDec>::type& e) override;
69 
70  virtual void operator()(typename Const<MethodCallExp>::type& e) override;
71  virtual void operator()(typename Const<ObjectExp>::type& e) override;
73  };
74 
78 #ifdef SWIG
79  %template() GenVisitor<misc::id_traits>;
81 #endif
83 
84 } // namespace ast
85 
86 # include <ast/object-visitor.hxx>
87 
88 #endif // !AST_OBJECT_VISITOR_HH