zeek/src/TraverseTypes.h
2021-09-16 15:35:39 -07:00

47 lines
2.2 KiB
C++

// See the file "COPYING" in the main distribution directory for copyright.
#pragma once
#include "zeek/zeek-config.h"
namespace zeek::detail
{
class TraversalCallback;
enum TraversalCode
{
TC_CONTINUE = 0,
TC_ABORTALL = 1,
TC_ABORTSTMT = 2,
};
#define HANDLE_TC_STMT_PRE(code) \
{ \
if ( (code) == zeek::detail::TC_ABORTALL ) \
return (code); \
else if ( (code) == zeek::detail::TC_ABORTSTMT ) \
return zeek::detail::TC_CONTINUE; \
}
#define HANDLE_TC_STMT_POST(code) \
{ \
if ( (code) == zeek::detail::TC_ABORTALL ) \
return (code); \
else if ( (code) == zeek::detail::TC_ABORTSTMT ) \
return zeek::detail::TC_CONTINUE; \
else \
return (code); \
}
#define HANDLE_TC_EXPR_PRE(code) \
{ \
if ( (code) == zeek::detail::TC_ABORTALL ) \
return (code); \
else if ( (code) == zeek::detail::TC_ABORTSTMT ) \
return zeek::detail::TC_CONTINUE; \
}
#define HANDLE_TC_EXPR_POST(code) return (code);
} // namespace zeek::detail