a
    d                     @   sB   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S )    )RuleContext)Token)ProxyErrorListenerConsoleErrorListenerNc                   @   s   e Zd 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 )(
Recognizer)
_listeners_interp_stateNumberc                 C   s   t jg| _d | _d| _d S )N)r   INSTANCEr   r   r	   self r   Z/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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.9.3z4ANTLR 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   Z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   removeErrorListeners1   s    zRecognizer.removeErrorListenersc                 C   sf   |   }|d u r$ddlm} |d| j|d }|d u 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   getTokenTypeMap4   s    

zRecognizer.getTokenTypeMapc                 C   s\   |   }|d u r$ddlm} |d| j|d }|d u 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   Z	ruleNamesr%   r,   r   r   r   getRuleIndexMapD   s    
zRecognizer.getRuleIndexMap)	tokenNamec                 C   s&   |   |d }|d ur|S tjS d S r   )r-   r)   r   ZINVALID_TYPE)r   r0   ttyper   r   r   getTokenTypeO   s    zRecognizer.getTokenType)ec                 C   s$   |  j}|  j}d| d | S )Nzline :)ZgetOffendingTokenlinecolumn)r   r3   r5   r6   r   r   r   getErrorHeaderX   s    

zRecognizer.getErrorHeader)tc                 C   sn   |d u rdS |j }|d u 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   r8   sr   r   r   getTokenErrorDisplayk   s    zRecognizer.getTokenErrorDisplayc                 C   s
   t | jS r   )r   r   r   r   r   r   getErrorListenerDispatchy   s    z#Recognizer.getErrorListenerDispatch)localctx	ruleIndexactionIndexc                 C   s   dS NTr   )r   rF   rG   rH   r   r   r   sempred~   s    zRecognizer.sempred)rF   
precedencec                 C   s   dS rI   r   )r   rF   rK   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   rM   )r   rO   r   r   r   rN      s    N)__name__
__module____qualname__	__slots__dictr(   r.   r   r   r   r    r"   r#   r-   r/   rA   r2   RecognitionExceptionr7   r   rD   rE   r   intrJ   rL   propertyrN   setterr   r   r   r   r      s*   	

r   )
Zantlr4.RuleContextr   Zantlr4.Tokenr   Zantlr4.error.ErrorListenerr   r   rU   objectr   r   r   r   r   <module>   s    