private void ActiveEdgeWithSymbol() { _activePoint = _activePoint.MoveOneSymbol(); if (_activePoint.PointsToTheEndOfActiveEdge()) { _activePoint = _activePoint.MoveToNextNodeOfActiveEdge(); } }
private void ActiveNodeHasEdgeForSymbol(byte symbol, UNode uNode) { _activePoint.SetSuffixLinkToActiveNodeAndReturnActiveNode(uNode); _activePoint = _activePoint.MoveToEdgeStartingWith(symbol); if (_activePoint.PointsToTheEndOfActiveEdge()) { _activePoint = _activePoint.MoveToNextNodeOfActiveEdge(); } }
private ActivePoint WalkDownTree(int index) { while (!_activePoint.PointsToActiveNode() && (_activePoint.PointsAfterTheEndOfActiveEdge() || _activePoint.PointsToTheEndOfActiveEdge())) { _activePoint = _activePoint.PointsAfterTheEndOfActiveEdge() ? _activePoint.MoveToNextNodeOfActiveEdge(_store, index) : _activePoint.MoveToNextNodeOfActiveEdge(); } return(_activePoint); }