16 #ifndef INCLUDE_NN_NLIB_SUCCINCT_AHOCORASICKBUILDER_H_ 17 #define INCLUDE_NN_NLIB_SUCCINCT_AHOCORASICKBUILDER_H_ 22 #include "nn/nlib/Swap.h" 25 #if defined(_MSC_VER) && defined(nx_succinct_EXPORTS) 26 #undef NLIB_VIS_PUBLIC 27 #define NLIB_VIS_PUBLIC NLIB_WINEXPORT 45 #ifdef __cpp_rvalue_references 48 typedef bool (*MatchCallback)(
const char* first,
const char* last, uint32_t nodeid,
50 void MatchByBuilder(
const char* doc, MatchCallback callback,
void* user_obj)
NLIB_NOEXCEPT;
52 MatchByBuilder(doc, callback,
nullptr);
61 struct BuildFailureArcTh;
62 struct BuildReportTreeHolderTh;
63 struct BuildFailureTreeHolderTh;
64 struct BuildGotoArcHolderTh;
65 struct BuildLenHolderTh;
69 struct AhoCorasickBuilderPrivate;
70 AhoCorasickBuilderPrivate* prv_;
77 #if defined(_MSC_VER) && defined(nx_succinct_EXPORTS) 78 #undef NLIB_VIS_PUBLIC 79 #define NLIB_VIS_PUBLIC NLIB_WINIMPORT 82 #endif // INCLUDE_NN_NLIB_SUCCINCT_AHOCORASICKBUILDER_H_ std::unique_ptr< AhoCorasick > Build2() noexcept
AhoCorasick オブジェクトを作成してunique_ptrで返します。追加された文字列(パターン)を検出するAC法のた...
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
~AhoCorasickBuilder() noexcept
デストラクタです。
constexpr AhoCorasickBuilder() noexcept
デフォルトコンストラクタです。
Aho Corasick法を用いた文字列検索を行うためのクラスが定義されています。
共通して使われることの多いストリーム関連のクラス群や各種コンテナ、及びガシェットクラスが実装されてい...
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
bool AddWords(const char *str) noexcept
検出対象の文字列の集合が入った配列から文字列を追加します。文字列の区切りは改行(CRLFかLF)である必要が...
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
AC法で用いるインデックス(オートマトン)を作成します。
void MatchByBuilder(const char *doc, MatchCallback callback) noexcept
上記関数の引数省略版です。