6 #ifndef AST_DEFAULT_VISITOR_HXX
7 # define AST_DEFAULT_VISITOR_HXX
16 template <
template <
typename>
class Const>
22 template <
template <
typename>
class Const>
27 template <
template <
typename>
class Const>
31 super_type::operator()(e);
34 template <
template <
typename>
class Const>
40 template <
template <
typename>
class Const>
44 e.var_get().accept(*
this);
47 template <
template <
typename>
class Const>
51 e.var_get().accept(*
this);
52 e.ty_get().accept(*
this);
55 template <
template <
typename>
class Const>
59 e.var_get().accept(*
this);
60 e.index_get().accept(*
this);
63 template <
template <
typename>
class Const>
69 template <
template <
typename>
class Const>
75 template <
template <
typename>
class Const>
81 template <
template <
typename>
class Const>
88 template <
template <
typename>
class Const>
92 e.left_get().accept(*
this);
93 e.right_get().accept(*
this);
96 template <
template <
typename>
class Const>
103 template <
template <
typename>
class Const>
110 template <
template <
typename>
class Const>
114 e.var_get().accept(*
this);
115 e.exp_get().accept(*
this);
118 template <
template <
typename>
class Const>
125 template <
template <
typename>
class Const>
129 e.test_get().accept(*
this);
130 e.body_get().accept(*
this);
133 template <
template <
typename>
class Const>
137 e.vardec_get().accept(*
this);
138 e.hi_get().accept(*
this);
139 e.body_get().accept(*
this);
142 template <
template <
typename>
class Const>
148 template <
template <
typename>
class Const>
152 e.decs_get().accept(*
this);
153 e.body_get().accept(*
this);
156 template <
template <
typename>
class Const>
160 e.type_name_get().accept(*
this);
161 e.size_get().accept(*
this);
162 e.init_get().accept(*
this);
165 template <
template <
typename>
class Const>
169 e.exp_get().accept(*
this);
170 e.ty_get().accept(*
this);
174 template <
template<
typename>
class Const >
178 e.init_get().accept(*
this);
181 template <
template <
typename>
class Const>
188 template <
template <
typename>
class Const>
195 template <
template <
typename>
class Const>
196 template <
typename DecsType>
204 typedef typename Const<DecsType>::type arg_type;
208 typedef typename Const<typename arg_type::Ds>::type elt_type;
211 for (i = e.decs_get().begin(); i != e.decs_get().end(); ++i)
215 template <
template <
typename>
class Const>
219 decs_visit<VarDecs>(e);
222 template <
template <
typename>
class Const>
227 this->accept(e.type_name_get());
229 this->accept(e.init_get());
232 template <
template <
typename>
class Const>
236 decs_visit<FunctionDecs>(e);
239 template <
template <
typename>
class Const>
246 template <
template <
typename>
class Const>
250 decs_visit<TypeDecs>(e);
253 template <
template <
typename>
class Const>
257 e.ty_get().accept(*
this);
261 template <
template <
typename>
class Const>
267 template <
template <
typename>
class Const>
274 template <
template <
typename>
class Const>
278 e.base_type_get().accept(*
this);
281 template <
template <
typename>
class Const>
285 e.type_name_get().accept(*
this);
290 #endif // !AST_DEFAULT_VISITOR_HXX