Lines Matching refs:Active
31 Active.Node = Root; in SuffixTree()
114 if (Active.Len == 0) { in extend()
116 Active.Idx = EndIdx; in extend()
119 assert(Active.Idx <= EndIdx && "Start index can't be after end index!"); in extend()
122 unsigned FirstChar = Str[Active.Idx]; in extend()
125 if (Active.Node->Children.count(FirstChar) == 0) { in extend()
127 insertLeaf(*Active.Node, EndIdx, FirstChar); in extend()
132 NeedsLink->setLink(Active.Node); in extend()
138 SuffixTreeNode *NextNode = Active.Node->Children[FirstChar]; in extend()
144 if (Active.Len >= SubstringLen) { in extend()
149 Active.Idx += SubstringLen; in extend()
150 Active.Len -= SubstringLen; in extend()
151 Active.Node = cast<SuffixTreeInternalNode>(NextNode); in extend()
160 if (Str[NextNode->getStartIdx() + Active.Len] == LastChar) { in extend()
164 if (NeedsLink && !Active.Node->isRoot()) { in extend()
165 NeedsLink->setLink(Active.Node); in extend()
169 Active.Len++; in extend()
188 Active.Node, NextNode->getStartIdx(), in extend()
189 NextNode->getStartIdx() + Active.Len - 1, FirstChar); in extend()
197 NextNode->incrementStartIdx(Active.Len); in extend()
211 if (Active.Node->isRoot()) { in extend()
212 if (Active.Len > 0) { in extend()
213 Active.Len--; in extend()
214 Active.Idx = EndIdx - SuffixesToAdd + 1; in extend()
218 Active.Node = Active.Node->getLink(); in extend()