Lines Matching refs:Active
270 ActiveState Active; member in __anon1330aca00111::SuffixTree
359 if (Active.Len == 0) { in extend()
361 Active.Idx = EndIdx; in extend()
364 assert(Active.Idx <= EndIdx && "Start index can't be after end index!"); in extend()
367 unsigned FirstChar = Str[Active.Idx]; in extend()
370 if (Active.Node->Children.count(FirstChar) == 0) { in extend()
372 insertLeaf(*Active.Node, EndIdx, FirstChar); in extend()
377 NeedsLink->Link = Active.Node; in extend()
383 SuffixTreeNode *NextNode = Active.Node->Children[FirstChar]; in extend()
389 if (Active.Len >= SubstringLen) { in extend()
392 Active.Idx += SubstringLen; in extend()
393 Active.Len -= SubstringLen; in extend()
394 Active.Node = NextNode; in extend()
403 if (Str[NextNode->StartIdx + Active.Len] == LastChar) { in extend()
407 if (NeedsLink && !Active.Node->isRoot()) { in extend()
408 NeedsLink->Link = Active.Node; in extend()
412 Active.Len++; in extend()
431 insertInternalNode(Active.Node, NextNode->StartIdx, in extend()
432 NextNode->StartIdx + Active.Len - 1, FirstChar); in extend()
440 NextNode->StartIdx += Active.Len; in extend()
454 if (Active.Node->isRoot()) { in extend()
455 if (Active.Len > 0) { in extend()
456 Active.Len--; in extend()
457 Active.Idx = EndIdx - SuffixesToAdd + 1; in extend()
461 Active.Node = Active.Node->Link; in extend()
474 Active.Node = Root; in SuffixTree()
479 Active.Node = Root; in SuffixTree()