Antlr4.Automata.ATNOptimizer.OptimizeStates C# (CSharp) Method

OptimizeStates() private static method

private static OptimizeStates ( ATN atn ) : void
atn Antlr4.Runtime.Atn.ATN
return void
        private static void OptimizeStates(ATN atn)
        {
            IList<ATNState> states = atn.states;

            int current = 0;
            for (int i = 0; i < states.Count; i++)
            {
                ATNState state = states[i];
                if (state == null)
                {
                    continue;
                }

                if (i != current)
                {
                    state.stateNumber = current;
                    states[current] = state;
                    states[i] = null;
                }

                current++;
            }

            //System.Console.WriteLine("ATN optimizer removed " + (states.Count - current) + " null states.");
            while (states.Count > current)
                states.RemoveAt(states.Count - 1);
        }
    }