44 #define DEBUG_ONLY if (false)
46 #define DEBUG_ONLY if (false)
56 template <
typename T =
void>
94 template <
typename T =
void>
100 template <
typename T>
103 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
104 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
105 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 25, 25, 25, 25, 25,
106 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
109 25, 0, 22, 2, 3, 15, 5, 6, 7, 8, 23, 10, 9, 12, 4, 13,
112 14, 16, 17, 18, 19, 20, 21, 11, 25, 1, 24, 25, 25, 25, 25, 25,
115 25, 0, 22, 2, 3, 15, 5, 6, 7, 8, 23, 10, 9, 12, 4, 13,
118 14, 16, 17, 18, 19, 20, 21, 11, 25, 1, 24, 25, 25, 25, 25,
120 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
121 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
122 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
123 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
124 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
125 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
126 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
127 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25
130 template <
typename T =
void>
136 template <
typename T>
139 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
140 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 25, 25, 25, 25, 25,
141 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
142 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
143 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
144 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
145 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
146 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
147 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
148 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
149 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
150 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
151 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
152 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
153 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
154 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25
160 typedef SimpleType<unsigned char, AAcid_>
AAcid;
168 template <>
struct BitsPerValue<
AAcid>
185 struct CompareTypeImpl<
AAcid, uint8_t>
215 template <
typename TNeedle>
218 typedef typename Size<TNeedle>::Type
TSize;
221 typedef Graph<Automaton<TAlphabet> >
TGraph;
222 typedef typename VertexDescriptor<TGraph>::Type
TVert;
243 template <
typename TNeedle>
264 typedef typename Size<TNeedle>::Type
TSize;
267 typedef Graph<Automaton<TAlphabet> >
TGraph;
268 typedef typename VertexDescriptor<TGraph>::Type
TVert;
270 typedef typename std::list<Spawn<TNeedle> >
Spawns;
271 typedef typename std::list<Spawn<TNeedle> >::iterator
SpawnIt;
272 typedef typename std::list<Spawn<TNeedle> >::const_iterator
SpawnCIt;
283 template <
typename TNeedle>
291 : nilVal(getNil<
TVert>()),
300 typedef Graph<Automaton<TAlphabet> >
TGraph;
301 typedef typename VertexDescriptor<TGraph>::Type
TVert;
331 if (std::numeric_limits<TSize>::max() < length(ndl))
336 for (
TSize i = 0; i < ln; ++i)
338 if (length(ndl[i]) > std::numeric_limits<KeyWordLengthType>::max())
340 throw OpenMS::Exception::InvalidValue(__FILE__, __LINE__,
"Pattern<FuzzyAC>(PeptideSet)", std::string(
"Input peptide to FuzzyAC must NOT be longer than 255 chars!").c_str(), std::string(begin(ndl[i]), end(ndl[i])));
343 for (
TSize j = 0; j < lni; ++j)
347 throw OpenMS::Exception::InvalidValue(__FILE__, __LINE__,
"Pattern<FuzzyAC>(PeptideSet)", std::string(
"Input peptide to FuzzyAC must NOT contain ambiguous amino acids (B/J/Z/X)!").c_str(), std::string(begin(ndl[i]), end(ndl[i])));
366 template <
typename TNeedle>
372 template <
typename TNeedle>
391 static const T jump[4][2] = { { ordValue(
AAcid(
'D')), ordValue(
AAcid(
'N')) },
392 { ordValue(
AAcid(
'I')), ordValue(
AAcid(
'L')) },
393 { ordValue(
AAcid(
'E')), ordValue(
AAcid(
'Q')) },
395 static const T ord_b = ordValue(
AAcid(
'B'));
397 assert(ordValue(
AAcid(
'N')) - ordValue(
AAcid(
'D')) == 1);
398 assert(ordValue(
AAcid(
'Q')) - ordValue(
AAcid(
'E')) == 1);
399 assert(ordValue(
AAcid(
'V')) == 21);
402 assert(ordValue(
AAcid(
'J')) == 23);
403 assert(ordValue(
AAcid(
'Z')) == 24);
404 assert(ordValue(
AAcid(
'X')) == 25);
406 idxFirst = jump[ordValue(
c) - ord_b][0];
407 idxLast = jump[ordValue(
c) - ord_b][1];
411 template <
typename TNeedle>
416 typedef typename Position<TNeedle>::Type TPosition;
417 typedef typename Value<TNeedle>::Type TKeyword;
418 typedef typename Value<TKeyword>::Type TAlphabet;
419 typedef Graph<Automaton<TAlphabet> > TGraph;
420 typedef typename VertexDescriptor<TGraph>::Type TVert;
421 TVert nilVal = getNil<TVert>();
427 String<TVert> parentMap;
428 String<TAlphabet> parentCharMap;
430 resizeVertexMap(me.
data_graph, parentCharMap);
432 for (TPosition i = 0; i < length(parentMap); ++i) {
433 assignProperty(parentMap, i, nilVal);
438 for (; !atEnd(itEd); goNext(itEd)) {
440 assignProperty(parentMap, targetVertex(itEd), sourceVertex(itEd));
441 assignProperty(parentCharMap, targetVertex(itEd), label(itEd));
452 String<TVert> data_map_failurelink;
453 resizeVertexMap(me.
data_graph, data_map_failurelink);
454 assignProperty(data_map_failurelink, root, nilVal);
463 TSize idxAAFirst, idxAALast;
466 for (TSize idx = idxAAFirst; idx <= idxAALast; ++idx)
476 for (; !atEnd(it); goNext(it))
478 const typename GetValue<TBfsIterator>::Type itval = *it;
483 TVert parent = getProperty(parentMap, itval);
491 TAlphabet sigma = getProperty(parentCharMap, itval);
493 TVert down = getProperty(data_map_failurelink, parent);
494 while ((down != nilVal) &&
495 (getSuccessor(me.
data_graph, down, sigma) == nilVal))
497 down = getProperty(data_map_failurelink, down);
501 assignProperty(data_map_failurelink, itval, getSuccessor(me.
data_graph, down, sigma));
503 String<TPosition> endPositions = getProperty(me.
data_map_outputNodes, getProperty(data_map_failurelink, itval));
504 if (!empty(endPositions))
510 TStringIterator sit = begin(endPositions);
511 for (;!atEnd(sit); goNext(sit))
513 appendValue(endPositionsCurrent, *sit);
519 assignProperty(data_map_failurelink, itval, root);
523 for (TSize idx = idxAAFirst; idx <= idxAALast; ++idx)
527 const TVert& target = getSuccessor(me.
data_graph, getProperty(data_map_failurelink, itval) ,
AAcid(idx));
544 template <
typename TNeedle,
typename TNeedle2>
548 SEQAN_ASSERT_NOT(empty(needle));
554 template <
typename TNeedle,
typename TNeedle2>
557 setHost(me,
reinterpret_cast<TNeedle2
const &
>(needle));
562 template <
typename TNeedle>
568 template <
typename TFinder,
typename TNeedle>
576 _setFinderEnd(finder,
position(finder) + length(finder));
584 return (vB <= ordValue(
c) && ordValue(
c) <= vX);
600 template <
typename TNeedle>
610 TSize idxFirst, idxLast;
612 for (TSize idx = idxFirst + 1; idx <= idxLast; ++idx)
619 dh.
spawns.push_front(spawn2);
640 if (getRoot(me.
data_graph) == current_state)
return "";
644 while(targetVertex(it) != current_state) ++it;
645 char c = (label(it));
646 return getPath(me, suffix_node) +
c;
655 if (length(needle_hits))
659 DEBUG_ONLY std::cout <<
" spawn adding hits which are at least " << unambiguous_suffix_length <<
" chars long (thus contain the AAA).\n";
662 for (
auto it = begin(needle_hits); it != end(needle_hits); ++it)
664 int hit_length = (int)length(value(host(me), *it));
665 if (hit_length < unambiguous_suffix_length)
break;
666 DEBUG_ONLY std::cout <<
" add spawn hit: needle #" << *it <<
" as " << (value(host(me), *it)) <<
"\n";
676 if (length(needle_hits))
678 DEBUG_ONLY std::cout <<
"master's new hits: total " << length(needle_hits) <<
" hits\n";
692 template <
typename TNeedle>
700 assert(current != me.
nilVal);
715 template <
typename TNeedle>
723 assert(successor != me.
nilVal);
725 if (successor == getRoot(me.
data_graph))
return false;
748 template <
typename TNeedle>
760 TSize idx_first(-1), idx_last(-1);
763 TSize idx_AAfirst(ordValue(
c)), idx_AAlast(ordValue(
c));
768 for (; idx_first <= idx_last; ++idx_first)
770 if (idx_first == idx_AAfirst)
772 idx_first = idx_AAlast;
780 dh.
spawns.push_front(spawn2);
788 if (!try_ambAA)
return false;
791 TSize idxFirst, idxLast;
793 for (; idxFirst < idxLast; ++idxFirst)
800 dh.
spawns.push_front(spawn2);
817 template <
typename TNeedle>
829 TSize idx_first(-1), idx_last(-1);
832 TSize idx_AAfirst(ordValue(
c)), idx_AAlast(ordValue(
c));
837 for (; idx_first <= idx_last; ++idx_first)
839 if (idx_first == idx_AAfirst)
841 idx_first = idx_AAlast;
849 DEBUG_ONLY std::cout <<
" Init Spawn from Master consuming '" <<
AAcid(idx_first) <<
"\n";
857 DEBUG_ONLY std::cout <<
"found AAA: " <<
c <<
"\n";
859 TSize idx_first, idx_last;
861 for (; idx_first <= idx_last; ++idx_first)
868 DEBUG_ONLY std::cout <<
" Init Spawn from Master consuming '" <<
AAcid(idx_first) <<
"\n";
874 DEBUG_ONLY std::cout <<
" --> Main found AAA, but none allowed. Resetting to root. No spawns created.\n";
885 template <
typename TFinder,
typename TNeedle>
890 _finderSetNonEmpty(finder);
904 while (!atEnd(finder))
907 DEBUG_ONLY std::cout <<
"\n\n-- consuming " <<
c <<
" ---\n";
913 while (it != dh.
spawns.end())
935 DEBUG_ONLY std::cout <<
" --> POST: Spawn state: " <<
getPath(me, it->current_state) <<
"\n";
975 typedef typename ::seqan::StringSet<::seqan::AAString>
PeptideDB;
1028 protein_ = protein_sequence.c_str();
#define DEBUG_ONLY
Definition: AhoCorasickAmbiguous.h:46
Extended Aho-Corasick algorithm capable of matching ambiguous amino acids in the pattern (i....
Definition: AhoCorasickAmbiguous.h:973
::seqan::StringSet<::seqan::AAString > PeptideDB
Definition: AhoCorasickAmbiguous.h:975
void setProtein(const String &protein_sequence)
Reset to new protein sequence. All previous data is forgotten.
Definition: AhoCorasickAmbiguous.h:1026
::seqan::Finder< seqan::AAString > finder_
locate the next peptide hit in protein
Definition: AhoCorasickAmbiguous.h:1068
AhoCorasickAmbiguous(const String &protein_sequence)
Prepare to start searching for hits in a new protein sequence.
Definition: AhoCorasickAmbiguous.h:1015
Int getHitProteinPosition()
Offset into protein sequence where hit was found.
Definition: AhoCorasickAmbiguous.h:1059
::seqan::PatternAuxData< PeptideDB > dh_
auxiliary data to hold a state after searching
Definition: AhoCorasickAmbiguous.h:1070
FuzzyACPattern::KeyWordLengthType KeyWordLengthType
Definition: AhoCorasickAmbiguous.h:1065
static void initPattern(const PeptideDB &pep_db, const int aaa_max, const int mm_max, FuzzyACPattern &pattern)
Construct a trie from a set of peptide sequences (which are to be found in a protein).
Definition: AhoCorasickAmbiguous.h:993
AhoCorasickAmbiguous()
Default Ctor; call setProtein() before using findNext().
Definition: AhoCorasickAmbiguous.h:1002
::seqan::AAString protein_
the protein sequence - we need to store it since the finder only keeps a pointer to protein when cons...
Definition: AhoCorasickAmbiguous.h:1069
bool findNext(const FuzzyACPattern &pattern)
Enumerate hits.
Definition: AhoCorasickAmbiguous.h:1039
Size getHitDBIndex()
Get index of hit into peptide database of the pattern.
Definition: AhoCorasickAmbiguous.h:1049
::seqan::Pattern< PeptideDB, ::seqan::FuzzyAC > FuzzyACPattern
Definition: AhoCorasickAmbiguous.h:976
Invalid value exception.
Definition: Exception.h:329
A more convenient string class.
Definition: String.h:61
Definition: AhoCorasickAmbiguous.h:285
String< TVert > parentMap
allows to find parent of each node
Definition: AhoCorasickAmbiguous.h:316
void init(TNeedle const &ndl, KeyWordLengthType max_AAA=3, KeyWordLengthType max_mm=0)
Pattern Ctor with vector of needles, i.e. keywords/peptides.
Definition: AhoCorasickAmbiguous.h:326
Pattern()
Definition: AhoCorasickAmbiguous.h:290
Holder< TNeedle > data_host
holds needles, i.e. Peptides
Definition: AhoCorasickAmbiguous.h:308
TGraph data_graph
regular trie data
Definition: AhoCorasickAmbiguous.h:309
Graph< Automaton< TAlphabet > > TGraph
Definition: AhoCorasickAmbiguous.h:300
String< String< TSize > > data_map_outputNodes
regular trie data – plus: this gets augmented with all suffix traversals which are output nodes
Definition: AhoCorasickAmbiguous.h:310
Pattern(Pattern const &other)
Value< TKeyword >::Type TAlphabet
Definition: AhoCorasickAmbiguous.h:299
KeyWordLengthType max_ambAA
ambiguity; default: 3
Definition: AhoCorasickAmbiguous.h:312
const TVert nilVal
NULL pointer for trie; e.g. returned when no successor is found.
Definition: AhoCorasickAmbiguous.h:305
KeyWordLengthType max_mmAA
mismatches; default: 0
Definition: AhoCorasickAmbiguous.h:313
uint32_t TSize
Definition: AhoCorasickAmbiguous.h:297
VertexDescriptor< TGraph >::Type TVert
Definition: AhoCorasickAmbiguous.h:301
~Pattern()
Definition: AhoCorasickAmbiguous.h:354
String< KeyWordLengthType > data_node_depth
depths of each graph node
Definition: AhoCorasickAmbiguous.h:311
Value< TNeedle >::Type TKeyword
Definition: AhoCorasickAmbiguous.h:298
Pattern const & operator=(Pattern const &other)
__uint8 KeyWordLengthType
Definition: AhoCorasickAmbiguous.h:302
int Int
Signed integer type.
Definition: Types.h:102
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
const double c
Definition: Constants.h:209
void append(const T &i, String &target)
Definition: StringUtils.h:119
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
Definition: AhoCorasickAmbiguous.h:52
TNeedle Type
Definition: AhoCorasickAmbiguous.h:369
bool _spawnConsumeChar(const Pattern< TNeedle, FuzzyAC > &me, PatternAuxData< TNeedle > &dh, Spawn< TNeedle > &spawn, const AAcid c)
Definition: AhoCorasickAmbiguous.h:749
AAcid unknownValueImpl(AAcid *)
Definition: AhoCorasickAmbiguous.h:174
void addHits(const Pattern< TNeedle, FuzzyAC > &me, PatternAuxData< TNeedle > &dh, const Spawn< TNeedle > &spawn)
Definition: AhoCorasickAmbiguous.h:650
TNeedle const Type
Definition: AhoCorasickAmbiguous.h:375
void _reportHit(TFinder &finder, const Pattern< TNeedle, FuzzyAC > &me, PatternAuxData< TNeedle > &dh)
Definition: AhoCorasickAmbiguous.h:569
bool _consumeChar(const Pattern< TNeedle, FuzzyAC > &me, PatternAuxData< TNeedle > &dh, typename Pattern< TNeedle, FuzzyAC >::TVert ¤t, const AAcid c)
Universal UN-ambiguous char consumer. Works for Master and Spawns.
Definition: AhoCorasickAmbiguous.h:693
void _getSpawnRange(const AAcid c, T &idxFirst, T &idxLast)
given an ambAA c, return a range of AA's (including idxLast) which need to be spawned.
Definition: AhoCorasickAmbiguous.h:388
Tag< FuzzyAC_ > FuzzyAC
Definition: AhoCorasickAmbiguous.h:211
void _createAcTrie(Pattern< TNeedle, FuzzyAC > &me)
Definition: AhoCorasickAmbiguous.h:412
bool find(TFinder &finder, const Pattern< TNeedle, FuzzyAC > &me, PatternAuxData< TNeedle > &dh)
Definition: AhoCorasickAmbiguous.h:886
void _masterConsumeChar(const Pattern< TNeedle, FuzzyAC > &me, PatternAuxData< TNeedle > &dh, const AAcid c)
Definition: AhoCorasickAmbiguous.h:818
void setHost(Pattern< TNeedle, FuzzyAC > &me, TNeedle2 const &needle)
Definition: AhoCorasickAmbiguous.h:545
std::string getPath(const Pattern< TNeedle, FuzzyAC > &me, typename Pattern< TNeedle, FuzzyAC >::TVert current_state)
for debug only
Definition: AhoCorasickAmbiguous.h:638
bool isAmbiguous(AAcid c)
Definition: AhoCorasickAmbiguous.h:580
AAcid Type
Definition: AhoCorasickAmbiguous.h:187
String< AAcid, Alloc< void > > AAString
Definition: AhoCorasickAmbiguous.h:206
SimpleType< unsigned char, AAcid_ > AAcid
Definition: AhoCorasickAmbiguous.h:160
bool _createSecondarySpawns(const Pattern< TNeedle, FuzzyAC > &me, PatternAuxData< TNeedle > &dh, Spawn< TNeedle > &spawn, const AAcid c)
Definition: AhoCorasickAmbiguous.h:601
Size< TNeedle >::Type position(const PatternAuxData< TNeedle > &dh)
Definition: AhoCorasickAmbiguous.h:563
void assign(char &c_target, AAcid const &source)
Definition: AhoCorasickAmbiguous.h:179
Iterator< const AAString, Rooted >::Type AAStringIterator
Definition: AhoCorasickAmbiguous.h:207
Definition: AhoCorasickAmbiguous.h:159
uint8_t Type
Definition: AhoCorasickAmbiguous.h:170
Definition: AhoCorasickAmbiguous.h:58
static char const VALUE[27]
Definition: AhoCorasickAmbiguous.h:59
Definition: AhoCorasickAmbiguous.h:132
static char const VALUE[256]
Definition: AhoCorasickAmbiguous.h:133
Definition: AhoCorasickAmbiguous.h:96
static char const VALUE[256]
Definition: AhoCorasickAmbiguous.h:97
Definition: AhoCorasickAmbiguous.h:245
std::list< Spawn< TNeedle > >::const_iterator SpawnCIt
Definition: AhoCorasickAmbiguous.h:272
Graph< Automaton< TAlphabet > > TGraph
Definition: AhoCorasickAmbiguous.h:267
PatternAuxData()
Definition: AhoCorasickAmbiguous.h:247
Value< TKeyword >::Type TAlphabet
Definition: AhoCorasickAmbiguous.h:266
TSize data_needleLength
Last length of needle to reposition finder.
Definition: AhoCorasickAmbiguous.h:280
std::list< Spawn< TNeedle > >::iterator SpawnIt
Definition: AhoCorasickAmbiguous.h:271
std::list< Spawn< TNeedle > > Spawns
Definition: AhoCorasickAmbiguous.h:270
VertexDescriptor< TGraph >::Type TVert
Definition: AhoCorasickAmbiguous.h:268
void reset()
Definition: AhoCorasickAmbiguous.h:255
TSize data_keywordIndex
Current keyword that produced a hit.
Definition: AhoCorasickAmbiguous.h:279
TVert data_lastState
Last state of master instance in the trie.
Definition: AhoCorasickAmbiguous.h:276
Value< TNeedle >::Type TKeyword
Definition: AhoCorasickAmbiguous.h:265
__uint8 KeyWordLengthType
Definition: AhoCorasickAmbiguous.h:269
String< TSize > hits_endPositions
All remaining keyword indices.
Definition: AhoCorasickAmbiguous.h:278
Size< TNeedle >::Type TSize
Definition: AhoCorasickAmbiguous.h:264
Spawns spawns
spawn instances currently walking the tree
Definition: AhoCorasickAmbiguous.h:275
state of an AC spawn, operating on a trie
Definition: AhoCorasickAmbiguous.h:217
TVert current_state
Definition: AhoCorasickAmbiguous.h:224
Graph< Automaton< TAlphabet > > TGraph
Definition: AhoCorasickAmbiguous.h:221
KeyWordLengthType ambAA_seen
number of ambAA's which the spawn has seen
Definition: AhoCorasickAmbiguous.h:226
Spawn(const Spawn &other)=default
Value< TKeyword >::Type TAlphabet
Definition: AhoCorasickAmbiguous.h:220
Pattern< TNeedle, FuzzyAC >::KeyWordLengthType KeyWordLengthType
Definition: AhoCorasickAmbiguous.h:223
VertexDescriptor< TGraph >::Type TVert
Definition: AhoCorasickAmbiguous.h:222
KeyWordLengthType max_depth_decrease
maximum loss in depths of traversed nodes (both while reporting hits and changing its own state)
Definition: AhoCorasickAmbiguous.h:225
Spawn(TVert init_state, KeyWordLengthType current_depth, KeyWordLengthType aaa_seen, KeyWordLengthType mm_seen)
Definition: AhoCorasickAmbiguous.h:229
Value< TNeedle >::Type TKeyword
Definition: AhoCorasickAmbiguous.h:219
Spawn & operator=(const Spawn &)
KeyWordLengthType mismatches_seen
number of mismatches the spawn has seen
Definition: AhoCorasickAmbiguous.h:227
Size< TNeedle >::Type TSize
Definition: AhoCorasickAmbiguous.h:218
uint8_t Type
Definition: AhoCorasickAmbiguous.h:164