#ifndef RE2_WALKER_INL_H_
#define RE2_WALKER_INL_H_
#include <stack>
#include "absl/base/macros.h"
#include "absl/log/absl_check.h"
#include "absl/log/absl_log.h"
#include "re2/regexp.h"
namespace re2 {
template<typename T> struct WalkState;
template<typename T> class Regexp::Walker { … };
template<typename T> T Regexp::Walker<T>::PreVisit(Regexp* re,
T parent_arg,
bool* stop) { … }
template<typename T> T Regexp::Walker<T>::PostVisit(Regexp* re,
T parent_arg,
T pre_arg,
T* child_args,
int nchild_args) { … }
template<typename T> T Regexp::Walker<T>::Copy(T arg) { … }
template<typename T> struct WalkState { … };
template<typename T> Regexp::Walker<T>::Walker() { … }
template<typename T> Regexp::Walker<T>::~Walker() { … }
template<typename T> void Regexp::Walker<T>::Reset() { … }
template<typename T> T Regexp::Walker<T>::WalkInternal(Regexp* re, T top_arg,
bool use_copy) { … }
template<typename T> T Regexp::Walker<T>::Walk(Regexp* re, T top_arg) { … }
template<typename T> T Regexp::Walker<T>::WalkExponential(Regexp* re, T top_arg,
int max_visits) { … }
}
#endif