6 #ifndef AST_DEFAULT_VISITOR_HH
7 # define AST_DEFAULT_VISITOR_HH
29 template <
template <
typename>
class Const>
37 using super_type::operator();
57 virtual void operator()(
typename Const<Ast>::type& e);
61 virtual void operator()(
typename Const<SimpleVar>::type& e)
override;
62 virtual void operator()(
typename Const<FieldVar>::type& e)
override;
63 virtual void operator()(
typename Const<SubscriptVar>::type& e)
override;
64 virtual void operator()(
typename Const<CastVar>::type& e)
override;
70 virtual void operator()(
typename Const<NilExp>::type& e)
override;
71 virtual void operator()(
typename Const<IntExp>::type& e)
override;
72 virtual void operator()(
typename Const<StringExp>::type& e)
override;
73 virtual void operator()(
typename Const<CallExp>::type& e)
override;
74 virtual void operator()(
typename Const<OpExp>::type& e)
override;
75 virtual void operator()(
typename Const<RecordExp>::type& e)
override;
76 virtual void operator()(
typename Const<SeqExp>::type& e)
override;
77 virtual void operator()(
typename Const<AssignExp>::type& e)
override;
78 virtual void operator()(
typename Const<IfExp>::type& e)
override;
79 virtual void operator()(
typename Const<WhileExp>::type& e)
override;
80 virtual void operator()(
typename Const<ForExp>::type& e)
override;
81 virtual void operator()(
typename Const<BreakExp>::type&)
override;
82 virtual void operator()(
typename Const<LetExp>::type& e)
override;
83 virtual void operator()(
typename Const<ArrayExp>::type& e)
override;
84 virtual void operator()(
typename Const<CastExp>::type& e)
override;
85 virtual void operator()(
typename Const<FieldInit>::type& e)
override;
102 virtual void operator()(
typename Const<DecsList>::type& e)
override;
105 virtual void operator()(
typename Const<Decs>::type& e);
107 template <
typename DecsType>
112 void decs_visit(
typename Const<DecsType>::type& e);
115 virtual void operator()(
typename Const<VarDecs>::type& e)
override;
116 virtual void operator()(
typename Const<VarDec>::type& e)
override;
119 virtual void operator()(
typename Const<FunctionDecs>::type& e)
override;
120 virtual void operator()(
typename Const<FunctionDec>::type& e)
override;
123 virtual void operator()(
typename Const<TypeDecs>::type& e)
override;
124 virtual void operator()(
typename Const<TypeDec>::type& e)
override;
131 virtual void operator()(
typename Const<NameTy>::type& e)
override;
132 virtual void operator()(
typename Const<RecordTy>::type& e)
override;
133 virtual void operator()(
typename Const<ArrayTy>::type& e)
override;
138 virtual void operator()(
typename Const<Field>::type& e)
override;
154 #endif // !AST_DEFAULT_VISITOR_HH