Antlr3.Analysis.DecisionProbe.GetNFAPathStatesForAlt C# (CSharp) Method

GetNFAPathStatesForAlt() public method

public GetNFAPathStatesForAlt ( int firstAlt, int alt, IList labels ) : IList
firstAlt int
alt int
labels IList
return IList
        public virtual IList<NFAState> GetNFAPathStatesForAlt( int firstAlt,
                                           int alt,
                                           IList<Label> labels )
        {
            NFAState nfaStart = _dfa.NFADecisionStartState;
            List<NFAState> path = new List<NFAState>();
            // first add all NFA states leading up to altStart state
            for ( int a = firstAlt; a <= alt; a++ )
            {
                NFAState s =
                    _dfa.Nfa.Grammar.GetNFAStateForAltOfDecision( nfaStart, a );
                path.Add( s );
            }

            // add first state of actual alt
            NFAState altStart = _dfa.Nfa.Grammar.GetNFAStateForAltOfDecision( nfaStart, alt );
            NFAState isolatedAltStart = (NFAState)altStart.transition[0].Target;
            path.Add( isolatedAltStart );

            // add the actual path now
            _statesVisitedAtInputDepth = new HashSet<string>();
            GetNFAPath( isolatedAltStart,
                       0,
                       labels,
                       path );
            return path;
        }