mirror of
https://github.com/zeek/zeek.git
synced 2025-10-14 12:38:20 +00:00
46 lines
1.8 KiB
C++
46 lines
1.8 KiB
C++
// See the file "COPYING" in the main distribution directory for copyright.
|
|
|
|
#pragma once
|
|
|
|
#include "TraverseTypes.h"
|
|
|
|
ZEEK_FORWARD_DECLARE_NAMESPACED(Func, zeek);
|
|
ZEEK_FORWARD_DECLARE_NAMESPACED(Scope, zeek::detail);
|
|
ZEEK_FORWARD_DECLARE_NAMESPACED(Stmt, zeek::detail);
|
|
ZEEK_FORWARD_DECLARE_NAMESPACED(Expr, zeek::detail);
|
|
ZEEK_FORWARD_DECLARE_NAMESPACED(ID, zeek::detail);
|
|
|
|
namespace zeek::detail {
|
|
|
|
class TraversalCallback {
|
|
public:
|
|
TraversalCallback() { current_scope = nullptr; }
|
|
virtual ~TraversalCallback() {}
|
|
|
|
virtual TraversalCode PreFunction(const zeek::Func*) { return TC_CONTINUE; }
|
|
virtual TraversalCode PostFunction(const zeek::Func*) { return TC_CONTINUE; }
|
|
|
|
virtual TraversalCode PreStmt(const zeek::detail::Stmt*) { return TC_CONTINUE; }
|
|
virtual TraversalCode PostStmt(const zeek::detail::Stmt*) { return TC_CONTINUE; }
|
|
|
|
virtual TraversalCode PreExpr(const zeek::detail::Expr*) { return TC_CONTINUE; }
|
|
virtual TraversalCode PostExpr(const zeek::detail::Expr*) { return TC_CONTINUE; }
|
|
|
|
virtual TraversalCode PreID(const zeek::detail::ID*) { return TC_CONTINUE; }
|
|
virtual TraversalCode PostID(const zeek::detail::ID*) { return TC_CONTINUE; }
|
|
|
|
virtual TraversalCode PreTypedef(const zeek::detail::ID*) { return TC_CONTINUE; }
|
|
virtual TraversalCode PostTypedef(const zeek::detail::ID*) { return TC_CONTINUE; }
|
|
|
|
virtual TraversalCode PreDecl(const zeek::detail::ID*) { return TC_CONTINUE; }
|
|
virtual TraversalCode PostDecl(const zeek::detail::ID*) { return TC_CONTINUE; }
|
|
|
|
zeek::detail::Scope* current_scope;
|
|
};
|
|
|
|
TraversalCode traverse_all(TraversalCallback* cb);
|
|
|
|
} // namespace zeek::detail
|
|
|
|
using TraversalCallback [[deprecated("Remove in v4.1. Use zeek::detail::TraversalCallback.")]] = zeek::detail::TraversalCallback;
|
|
constexpr auto traverse_all [[deprecated("Remove in v4.1. Use zeek::detail::traverse_all.")]] = zeek::detail::traverse_all;
|