U
    :qLe                     @   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eedddZedddZeedd	d
Ze	dddZ
edd Zdd Zdd ZdeedddZdd ZdS )DFAr   )atnStartStatedecisionc                 C   s^   || _ || _t | _d | _d| _t|trZ|jrZd| _t	t
 d}g |_d|_d|_|| _d S )NFTconfigs)r   r	   dict_statess0precedenceDfa
isinstancer   isPrecedenceDecisionr   r   edgesisAcceptStaterequiresFullContext)selfr   r	   precedenceState r   e/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/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   getPrecedenceStartState/   s
    zDFA.getPrecedenceStartState)r   
startStatec                 C   sb   | j std|dk rd S |t| jjkrRd 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   setPrecedenceStartStateA   s    zDFA.setPrecedenceStartState)r   c                 C   sL   | j |krHt | _|r<tt d}g |_d|_d|_|| _nd | _|| _ d S )Nr
   F)	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   setPrecedenceDfa`   s    
zDFA.setPrecedenceDfac                 C   s   | j S N)r   r   r   r   r   statesm   s    z
DFA.statesc                 C   s   t | j dd dS )Nc                 S   s   | j S r$   )stateNumber)stater   r   r   <lambda>s       z"DFA.sortedStates.<locals>.<lambda>)key)sortedr   keysr%   r   r   r   sortedStatesr   s    zDFA.sortedStatesc                 C   s
   |  d S r$   )toStringr%   r   r   r   __str__u   s    zDFA.__str__N)literalNamessymbolicNamesc                 C   s.   | j d k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/   x   s
    
zDFA.toStringc                 C   s*   | j d k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__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
   