U
    :qLe°  ã                   @   s\   d dl mZ d dlmZ d dlmZmZ dZG dd„ deƒZ	[d dl
Z
G dd„ de
jƒZdS )	é    )ÚRuleContext)ÚToken)ÚProxyErrorListenerÚConsoleErrorListenerNc                   @   sÌ   e Zd Zeƒ Zeƒ Zdd„ Zdd„ Zdd„ Zdd„ Z	d	d
„ Z
dd„ Zdd„ Zdd„ Zedœdd„Zedœdd„Zedœdd„Zdd„ Zeeedœdd„Zeedœd d!„Zed"d#„ ƒZejed$œd%d#„ƒZd&S )'Ú
Recognizerc                 C   s   t jg| _d | _d| _d S )Néÿÿÿÿ)r   ZINSTANCEÚ
_listenersÚ_interpÚ_stateNumber©Úself© r   úh/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/site-packages/antlr4/Recognizer.pyÚ__init__   s    
zRecognizer.__init__c                 C   sf   |  d¡}|d|… }||d d … }|  d¡}|dkrB|  d¡}|dkrRt|ƒ}|d|… }||fS )NÚ.r   é   r   ú-)ÚfindÚlen)r   ÚversionÚposÚmajorÚminorr   r   r   ÚextractVersion   s    


zRecognizer.extractVersionc                 C   sH   d}|   |¡\}}|   |¡\}}||ks0||krDtd| d | ƒ d S )Nz4.7.2z4ANTLR runtime and generated code versions disagree: z!=)r   Úprint)r   ZtoolVersionZruntimeVersionZrvmajorZrvminorZtvmajorZtvminorr   r   r   ÚcheckVersion#   s
    zRecognizer.checkVersionc                 C   s   | j  |¡ d S ©N)r   Úappend©r   Úlistenerr   r   r   ÚaddErrorListener*   s    zRecognizer.addErrorListenerc                 C   s   | j  |¡ d S r   )r   Úremover   r   r   r   ÚremoveErrorListener-   s    zRecognizer.removeErrorListenerc                 C   s
   g | _ d S r   )r   r   r   r   r   ÚremoveErrorListeners0   s    zRecognizer.removeErrorListenersc                 C   sf   |   ¡ }|d kr$ddlm} |dƒ‚| j |d ¡}|d krbt|tdt|ƒƒƒ}tj	|d< || j|< |S )Nr   ©ÚUnsupportedOperationExceptionz>The current recognizer does not provide a list of token names.ÚEOF)
ZgetTokenNamesÚantlr4.error.Errorsr%   ÚtokenTypeMapCacheÚgetÚzipÚranger   r   r&   )r   Z
tokenNamesr%   Úresultr   r   r   ÚgetTokenTypeMap3   s    

zRecognizer.getTokenTypeMapc                 C   s\   |   ¡ }|d kr$ddlm} |dƒ‚| j |d ¡}|d krXt|tdt|ƒƒƒ}|| j|< |S )Nr   r$   z=The current recognizer does not provide a list of rule names.)ZgetRuleNamesr'   r%   ÚruleIndexMapCacher)   r*   r+   r   )r   Ú	ruleNamesr%   r,   r   r   r   ÚgetRuleIndexMapC   s    
zRecognizer.getRuleIndexMap)Ú	tokenNamec                 C   s&   |   ¡  |d ¡}|d k	r|S tjS d S r   )r-   r)   r   ÚINVALID_TYPE)r   r1   Úttyper   r   r   ÚgetTokenTypeN   s    zRecognizer.getTokenType)Úec                 C   s$   |  ¡ j}|  ¡ j}d| d | S )Nzline ú:)ZgetOffendingTokenÚlineÚcolumn)r   r5   r7   r8   r   r   r   ÚgetErrorHeaderW   s    

zRecognizer.getErrorHeader)Útc                 C   sn   |d krdS |j }|d kr>|jtjkr,d}ndt|jƒ d }| dd¡}| dd¡}| d	d
¡}d| d S )Nz
<no token>z<EOF>ú<ú>Ú
z\núz\rú	z\tú')ÚtextÚtyper   r&   ÚstrÚreplace)r   r:   Úsr   r   r   ÚgetTokenErrorDisplayj   s    zRecognizer.getTokenErrorDisplayc                 C   s
   t | jƒS r   )r   r   r   r   r   r   ÚgetErrorListenerDispatchx   s    z#Recognizer.getErrorListenerDispatch)ÚlocalctxÚ	ruleIndexÚactionIndexc                 C   s   dS ©NTr   )r   rH   rI   rJ   r   r   r   Úsempred}   s    zRecognizer.sempred)rH   Ú
precedencec                 C   s   dS rK   r   )r   rH   rM   r   r   r   Úprecpred€   s    zRecognizer.precpredc                 C   s   | j S r   ©r
   r   r   r   r   Ústateƒ   s    zRecognizer.state)ÚatnStatec                 C   s
   || _ d S r   rO   )r   rQ   r   r   r   rP   Ž   s    N)Ú__name__Ú
__module__Ú__qualname__Údictr(   r.   r   r   r   r    r"   r#   r-   r0   rC   r4   ÚRecognitionExceptionr9   r   rF   rG   r   ÚintrL   rN   ÚpropertyrP   Úsetterr   r   r   r   r      s(   	

r   c                   @   s   e Zd Zdd„ ZdS )ÚTestc                 C   s|   t ƒ  d¡\}}|  d|¡ |  d|¡ t ƒ  d¡\}}|  d|¡ |  d|¡ t ƒ  d¡\}}|  d|¡ |  d|¡ d S )Nz1.2Ú1Ú2z1.2.3z1.2-snapshot)r   r   ÚassertEqual)r   r   r   r   r   r   ÚtestVersion—   s    zTest.testVersionN)rR   rS   rT   r^   r   r   r   r   rZ   •   s   rZ   )Úantlr4.RuleContextr   Úantlr4.Tokenr   Úantlr4.error.ErrorListenerr   r   rV   Úobjectr   ÚunittestÚTestCaserZ   r   r   r   r   Ú<module>   s    