1 #ifndef VISITOR_VISITOR_HH
2 # define VISITOR_VISITOR_HH
4 # include <ozulis/core/id-visitor.hh>
5 # include <ozulis/ast/ast.hh>
14 static inline id_t
id(const ast::Node
& node
)
20 template <class T
, class Node
, typename
...Args
>
21 class VisitorBase
: public core::IdVisitor
<T
, Node
, GetNodeId
, T
&, Args
...>
25 template <class T
, typename
...Args
>
26 class Visitor
: public VisitorBase
<T
, ast::Node
, Args
...>
29 typedef Visitor
<T
, Args
...> Visitor_t
;
32 template <class T
, typename
...Args
>
33 class ConstVisitor
: public VisitorBase
<T
, const ast::Node
, Args
...>
36 typedef ConstVisitor
<T
, Args
...> ConstVisitor_t
;
41 #endif /* !VISITORS_VISITOR_HH */