o
    ڷi                     @   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   INSTANCEr   r   r	   self r   G/home/ubuntu/vllm_env/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   toolVersionruntimeVersionrvmajorrvminortvmajortvminorr   r   r   checkVersion$   s   zRecognizer.checkVersionc                 C      | j | d S N)r   appendr   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)
getTokenNamesantlr4.error.Errorsr/   tokenTypeMapCachegetzipranger   r   r0   )r   
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.)getRuleNamesr2   r/   ruleIndexMapCacher4   r5   r6   r   )r   	ruleNamesr/   r8   r   r   r   getRuleIndexMapD   s   
zRecognizer.getRuleIndexMap	tokenNamec                 C   s"   |   |d }|d ur|S tjS r$   )r9   r4   r   INVALID_TYPE)r   r>   ttyper   r   r   getTokenTypeO   s   zRecognizer.getTokenTypeec                 C   s$   |  j}|  j}d| d | S )Nzline :)getOffendingTokenlinecolumn)r   rB   rE   rF   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   r0   strreplace)r   rH   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   rV   rW   rX   r   r   r   sempred~      zRecognizer.sempred
precedencec                 C   rY   rZ   r   )r   rV   r]   r   r   r   precpred   r\   zRecognizer.precpredc                 C   s   | j S r$   r	   r   r   r   r   state   s   zRecognizer.stateatnStatec                 C   s
   || _ d S r$   r_   )r   ra   r   r   r   r`      s   
N)__name__
__module____qualname__	__slots__dictr3   r;   r   r   r"   r(   r+   r,   r9   r=   rQ   rA   RecognitionExceptionrG   r   rT   rU   r   intr[   r^   propertyr`   setterr   r   r   r   r      s,    	

r   )
antlr4.RuleContextr   antlr4.Tokenr   antlr4.error.ErrorListenerr   r   rg   objectr   r   r   r   r   <module>   s    