Lines Matching refs:Active
21 Active.Node = Root; in SuffixTree()
103 if (Active.Len == 0) { in extend()
105 Active.Idx = EndIdx; in extend()
108 assert(Active.Idx <= EndIdx && "Start index can't be after end index!"); in extend()
111 unsigned FirstChar = Str[Active.Idx]; in extend()
114 if (Active.Node->Children.count(FirstChar) == 0) { in extend()
116 insertLeaf(*Active.Node, EndIdx, FirstChar); in extend()
121 NeedsLink->Link = Active.Node; in extend()
127 SuffixTreeNode *NextNode = Active.Node->Children[FirstChar]; in extend()
133 if (Active.Len >= SubstringLen) { in extend()
136 Active.Idx += SubstringLen; in extend()
137 Active.Len -= SubstringLen; in extend()
138 Active.Node = NextNode; in extend()
147 if (Str[NextNode->StartIdx + Active.Len] == LastChar) { in extend()
151 if (NeedsLink && !Active.Node->isRoot()) { in extend()
152 NeedsLink->Link = Active.Node; in extend()
156 Active.Len++; in extend()
175 insertInternalNode(Active.Node, NextNode->StartIdx, in extend()
176 NextNode->StartIdx + Active.Len - 1, FirstChar); in extend()
184 NextNode->StartIdx += Active.Len; in extend()
198 if (Active.Node->isRoot()) { in extend()
199 if (Active.Len > 0) { in extend()
200 Active.Len--; in extend()
201 Active.Idx = EndIdx - SuffixesToAdd + 1; in extend()
205 Active.Node = Active.Node->Link; in extend()