o
    9n0j                     @   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defddZdefddZdefddZdd Zdededefd d!Zded"efd#d$Zed%d& Zejd'efd(d&Zd)S )*
Recognizer)
_listeners_interp_stateNumberc                 C   s   t jg| _d | _d| _d S )N)r   ZINSTANCEr   r   r	   self r   X/home/wildlama/miniconda3/envs/lam_a2e/lib/python3.10/site-packages/antlr4/Recognizer.py__init__   s   

zRecognizer.__init__c                 C   sf   | d}|d| }||d d  }| d}|dkr!| d}|dkr)t|}|d| }||fS )N.r      r
   -)findlen)r   versionposmajorminorr   r   r   extractVersion   s   


zRecognizer.extractVersionc                 C   sL   d}|  |\}}|  |\}}||ks||kr$td| d |  d S 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      | j | d S N)r   appendr   Zlistenerr   r   r   addErrorListener+      zRecognizer.addErrorListenerc                 C   r   r   )r   remover   r   r   r   removeErrorListener.   r!   zRecognizer.removeErrorListenerc                 C   s
   g | _ d S r   )r   r   r   r   r   removeErrorListeners1      
zRecognizer.removeErrorListenersc                 C   sf   |   }|d u rddlm} |d| j|d }|d u r1t|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 r,t|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 r   )r/   r+   r   ZINVALID_TYPE)r   r2   ttyper   r   r   getTokenTypeO   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   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   r:   sr   r   r   getTokenErrorDisplayk   s   zRecognizer.getTokenErrorDisplayc                 C   s
   t | jS r   )r   r   r   r   r   r   getErrorListenerDispatchy   r%   z#Recognizer.getErrorListenerDispatchlocalctx	ruleIndexactionIndexc                 C      dS NTr   )r   rH   rI   rJ   r   r   r   sempred~      zRecognizer.sempred
precedencec                 C   rK   rL   r   )r   rH   rO   r   r   r   precpred   rN   zRecognizer.precpredc                 C   s   | j S r   r	   r   r   r   r   state   s   zRecognizer.stateatnStatec                 C   s
   || _ d S r   rQ   )r   rS   r   r   r   rR      s   
N)__name__
__module____qualname__	__slots__dictr*   r0   r   r   r   r    r#   r$   r/   r1   rC   r4   RecognitionExceptionr9   r   rF   rG   r   intrM   rP   propertyrR   setterr   r   r   r   r      s,    	

r   )
Zantlr4.RuleContextr   Zantlr4.Tokenr   Zantlr4.error.ErrorListenerr   r   rY   objectr   r   r   r   r   <module>   s    