/// <summary>
        /// Gets the initial grammar node from the linguist and creates a GrammarNodeToken.
        /// </summary>
        protected virtual void LocalStart()
        {
            var searchGraph = Linguist.SearchGraph;

            CurrentFrameNumber    = 0;
            CurTokensScored.Value = 0;
            _numStateOrder        = searchGraph.NumStateOrder;
            _activeListManager.SetNumStateOrder(_numStateOrder);
            if (BuildWordLattice)
            {
                LoserManager = new AlternateHypothesisManager(_maxLatticeEdges);
            }

            var state = searchGraph.InitialState;

            ActiveList = _activeListManager.GetEmittingList();
            ActiveList.Add(new Token(state, CurrentFrameNumber));

            ClearCollectors();

            GrowBranches();
            GrowNonEmittingBranches();
            // tokenTracker.setEnabled(false);
            // tokenTracker.startUtterance();
        }