Yume
visitor.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "ast/ast.hpp"
4#include "util.hpp"
5
6namespace yume {
7class Visitor;
8namespace ast {
9class AST;
10}
11} // namespace yume
12
13namespace yume {
14class Visitor {
15public:
16 Visitor() = default;
17 virtual ~Visitor() = default;
18 Visitor(Visitor&) = delete;
19 Visitor(Visitor&&) = default;
20 auto operator=(Visitor&) -> Visitor& = delete;
21 auto operator=(Visitor&&) -> Visitor& = default;
22
23 virtual auto visit(const ast::AST&, string_view) -> Visitor& = 0;
24 virtual auto visit(std::nullptr_t, string_view) -> Visitor& = 0;
25 virtual auto visit(const string&, string_view) -> Visitor& = 0;
26};
27} // namespace yume
Visitor(Visitor &&)=default
auto operator=(Visitor &&) -> Visitor &=default
virtual ~Visitor()=default
virtual auto visit(const ast::AST &, string_view) -> Visitor &=0
auto operator=(Visitor &) -> Visitor &=delete
virtual auto visit(std::nullptr_t, string_view) -> Visitor &=0
virtual auto visit(const string &, string_view) -> Visitor &=0
Visitor(Visitor &)=delete
Visitor()=default
All nodes in the AST tree of the program inherit from this class.
Definition: ast.hpp:224
Definition: ast.cpp:8