o
    ٷi                     @   sP   d dl mZ d dlmZ d dl mZ d dlmZ d dlmZ G dd de	Z
dS )	    )StarLoopEntryState)ATNConfigSet)DecisionState)DFAState)IllegalStateExceptionc                   @   s   e Zd ZdZddedefddZdefdd	Zded
efddZ	de
fddZedd Zdd Zdd ZddedefddZdd ZdS )DFA)atnStartStatedecision_statess0precedenceDfar   r   r	   c                 C   sf   || _ || _t | _d | _d| _t|tr/|jr1d| _t	t
 d}g |_d|_d|_|| _d S d S d S )NFTconfigs)r   r	   dictr
   r   r   
isinstancer   isPrecedenceDecisionr   r   edgesisAcceptStaterequiresFullContext)selfr   r	   precedenceState r   B/home/ubuntu/.local/lib/python3.10/site-packages/antlr4/dfa/DFA.py__init__   s   

zDFA.__init__
precedencec                 C   s6   | j std|dk s|t| jjkrd S | jj| S )N:Only precedence DFAs may contain a precedence start state.r   )r   r   lenr   r   )r   r   r   r   r   getPrecedenceStartState0   s
   zDFA.getPrecedenceStartState
startStatec                 C   sb   | j std|dk rd S |t| jjkr)d g|d t| jj  }| jj| || jj|< d S )Nr   r      )r   r   r   r   r   extend)r   r   r   extr   r   r   setPrecedenceStartStateB   s   zDFA.setPrecedenceStartStater   c                 C   sP   | j |kr&t | _|rtt d}g |_d|_d|_|| _nd | _|| _ d S d S )Nr   F)	r   r   r
   r   r   r   r   r   r   )r   r   r   r   r   r   setPrecedenceDfaa   s   

zDFA.setPrecedenceDfac                 C      | j S N)r
   r   r   r   r   statesn   s   z
DFA.statesc                 C   s   t | j dd dS )Nc                 S   r$   r%   )stateNumber)stater   r   r   <lambda>t   s    z"DFA.sortedStates.<locals>.<lambda>)key)sortedr
   keysr&   r   r   r   sortedStatess   s   zDFA.sortedStatesc                 C   s
   |  d S r%   )toStringr&   r   r   r   __str__v   s   
zDFA.__str__NliteralNamessymbolicNamesc                 C   s.   | j d u rdS ddlm} || ||}t|S )N r   )DFASerializer)r   antlr4.dfa.DFASerializerr4   str)r   r1   r2   r4   
serializerr   r   r   r/   y   s
   
zDFA.toStringc                 C   s*   | j d u rdS ddlm} || }t|S )Nr3   r   )LexerDFASerializer)r   r5   r8   r6   )r   r8   r7   r   r   r   toLexerString   s
   
zDFA.toLexerString)r   )NN)__name__
__module____qualname__	__slots__r   intr   r   r   r"   boolr#   propertyr'   r.   r0   listr/   r9   r   r   r   r   r      s     
r   N)antlr4.atn.ATNStater   antlr4.atn.ATNConfigSetr   r   antlr4.dfa.DFAStater   antlr4.error.Errorsr   objectr   r   r   r   r   <module>   s   