type DFA … func NewDFA(atnStartState DecisionState, decision int) *DFA { … } // getPrecedenceStartState gets the start state for the current precedence and // returns the start state corresponding to the specified precedence if a start // state exists for the specified precedence and nil otherwise. d must be a // precedence DFA. See also isPrecedenceDfa. func (d *DFA) getPrecedenceStartState(precedence int) *DFAState { … } // setPrecedenceStartState sets the start state for the current precedence. d // must be a precedence DFA. See also isPrecedenceDfa. func (d *DFA) setPrecedenceStartState(precedence int, startState *DFAState) { … } func (d *DFA) getPrecedenceDfa() bool { … } // setPrecedenceDfa sets whether d is a precedence DFA. If precedenceDfa differs // from the current DFA configuration, then d.states is cleared, the initial // state s0 is set to a new DFAState with an empty outgoing DFAState.edges to // store the start states for individual precedence values if precedenceDfa is // true or nil otherwise, and d.precedenceDfa is updated. func (d *DFA) setPrecedenceDfa(precedenceDfa bool) { … } // Len returns the number of states in d. We use this instead of accessing states directly so that we can implement lazy // instantiation of the states JMap. func (d *DFA) Len() int { … } // Get returns a state that matches s if it is present in the DFA state set. We defer to this // function instead of accessing states directly so that we can implement lazy instantiation of the states JMap. func (d *DFA) Get(s *DFAState) (*DFAState, bool) { … } func (d *DFA) Put(s *DFAState) (*DFAState, bool) { … } func (d *DFA) getS0() *DFAState { … } func (d *DFA) setS0(s *DFAState) { … } // sortedStates returns the states in d sorted by their state number, or an empty set if d.states is nil. func (d *DFA) sortedStates() []*DFAState { … } func (d *DFA) String(literalNames []string, symbolicNames []string) string { … } func (d *DFA) ToLexerString() string { … }