U
    :qLe                     @   sl   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 dZG dd deZdZG d	d
 d
eZdS )    )StringIO)PredictionContext)ATNStateDecisionState)LexerActionExecutor)SemanticContextNc                   @   sL   e Zd ZdeeeeedddZdd Z	dd Z
d	d
 Zdd Zdd ZdS )	ATNConfigNstatealtcontextsemanticconfigc                 C   s   |d k	r@|d kr|j }|d kr$|j}|d kr2|j}|d kr@|j}|d krNtj}|| _ || _|| _|| _|d krrdn|j| _|d krdn|j| _d S )Nr   F)r
   r   r   semanticContextr   NONEreachesIntoOuterContextprecedenceFilterSuppressed)selfr
   r   r   r   r    r   k/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/site-packages/antlr4/atn/ATNConfig.py__init__   s"    
zATNConfig.__init__c                 C   sj   | |krdS t |tsdS | jj|jjkod| j|jkod| j|jksN| j|jkod| j|jkod| j|jkS d S NTF)
isinstancer   r
   stateNumberr   r   r   r   r   otherr   r   r   __eq__>   s    



zATNConfig.__eq__c                 C   s   t | jj| j| j| jfS N)hashr
   r   r   r   r   r   r   r   r   __hash__J   s    zATNConfig.__hash__c                 C   s   t | jj| jt | jfS r   )r   r
   r   r   r   r   r   r   r   hashCodeForConfigSetM   s    zATNConfig.hashCodeForConfigSetc                 C   sF   | |krdS t |tsdS | jj|jjko@| j|jko@| j|jkS d S r   )r   r   r
   r   r   r   r   r   r   r   equalsForConfigSetP   s    


zATNConfig.equalsForConfigSetc              
   C   s   t  }|d |t| j |d |t| j | jd k	rj|d |t| j |d | jd k	r| jtjk	r|d |t| j | j	dkr|d |t| j	 |d |
 W  5 Q R  S Q R X d S )N(,z,[]r   z,up=))r   writestrr
   r   r   r   r   r   r   getvalue)r   bufr   r   r   __str__Z   s"    








zATNConfig.__str__)NNNNN)__name__
__module____qualname__r   intr   r   r   r   r   r    r!   r"   r+   r   r   r   r   r      s   %
r   c                       sn   e Zd Zddejddfeeeeee	d fddZ
dd Z fddZd	d
 Zdd Ze	edddZ  ZS )LexerATNConfigN)r
   r   r   r   lexerActionExecutorr   c                    sP   t  j|||||d |d k	r,|d kr,|j}|| _|d kr>dn
| ||| _d S )Nr	   F)superr   r1   checkNonGreedyDecisionpassedThroughNonGreedyDecision)r   r
   r   r   r   r1   r   	__class__r   r   r   r   s    zLexerATNConfig.__init__c                 C   s"   t | jj| j| j| j| j| jfS r   )r   r
   r   r   r   r   r4   r1   r   r   r   r   r    |   s
     zLexerATNConfig.__hash__c                    sF   | |krdS t |tsdS | j|jkr*dS | j|jks:dS t |S r   )r   r0   r4   r1   r2   r   r   r5   r   r   r      s    
zLexerATNConfig.__eq__c                 C   s   t | S r   )r   r   r   r   r   r!      s    z#LexerATNConfig.hashCodeForConfigSetc                 C   s   | |kS r   r   r   r   r   r   r"      s    z!LexerATNConfig.equalsForConfigSet)sourcetargetc                 C   s   |j pt|to|jS r   )r4   r   r   	nonGreedy)r   r7   r8   r   r   r   r3      s    z%LexerATNConfig.checkNonGreedyDecision)r,   r-   r.   r   r   r   r/   r   r   r0   r   r    r   r!   r"   r3   __classcell__r   r   r5   r   r0   p   s    
 
r0   )ior   antlr4.PredictionContextr   antlr4.atn.ATNStater   r   antlr4.atn.LexerActionExecutorr   antlr4.atn.SemanticContextr   r   objectr0   r   r   r   r   <module>   s   W