o
    ڷi(                     @   s   d dl mZ d dlmZ d dlmZ G dd deZdZdedefd	d
Z	dZ
dedefddZdefddZG dd deZG dd deZ[G dd deZ[
G dd deZ
e e_dS )    )
Recognizer)RuleContext)StringIOc                   @   s4   e Zd ZdZdedefddZdedefddZdS )SemanticContextNparserouterContextc                 C   s   d S N selfr   r   r	   r	   P/home/ubuntu/vllm_env/lib/python3.10/site-packages/antlr4/atn/SemanticContext.pyeval'      zSemanticContext.evalc                 C   s   | S r   r	   r
   r	   r	   r   evalPrecedence<   r   zSemanticContext.evalPrecedence)__name__
__module____qualname__NONEr   r   r   r   r	   r	   r	   r   r      s    r   Nabc                 C   sR   | d u s	| t ju r|S |d u s|t ju r| S t| |}t|jdkr'|jd S |S N   r   )r   r   ANDlenopndsr   r   resultr	   r	   r   
andContextB   s   

r   c                 C   sX   | d u r|S |d u r| S | t ju s|t ju rt jS t| |}t|jdkr*|jd S |S r   )r   r   ORr   r   r   r	   r	   r   	orContextP   s   

r   
collectionc                 C   s   dd | D S )Nc                 S   s   g | ]	}t |tr|qS r	   )
isinstancePrecedencePredicate).0contextr	   r	   r   
<listcomp>^   s    z.filterPrecedencePredicates.<locals>.<listcomp>r	   )r    r	   r	   r   filterPrecedencePredicates]      r&   c                   @   sR   e Zd ZdZddededefddZd	ed
efddZ	dd Z
dd Zdd ZdS )	Predicate	ruleIndex	predIndexisCtxDependentFr*   r+   r,   c                 C   s   || _ || _|| _d S r   r)   )r   r*   r+   r,   r	   r	   r   __init__d   s   
zPredicate.__init__r   r   c                 C   s    | j r|nd }||| j| jS r   )r,   sempredr*   r+   )r   r   r   localctxr	   r	   r   r   i   s   zPredicate.evalc                 C   s   t | j| j| jfS r   )hashr*   r+   r,   r   r	   r	   r   __hash__m   s   zPredicate.__hash__c                 C   s>   | |u rdS t |tsdS | j|jko| j|jko| j|jkS NTF)r!   r(   r*   r+   r,   r   otherr	   r	   r   __eq__p   s   


zPredicate.__eq__c                 C   s    dt | j d t | j d S )N{:z}?)strr*   r+   r2   r	   r	   r   __str__y   s    zPredicate.__str__N)r-   r-   F)r   r   r   	__slots__intboolr.   r   r   r   r3   r7   r;   r	   r	   r	   r   r(   a   s    	r(   c                   @   sX   e Zd ZddefddZdedefddZdedefd	d
Zdd Z	dd Z
dd ZdS )r"   r   
precedencec                 C   s
   || _ d S r   r?   )r   r?   r	   r	   r   r.      s   
zPrecedencePredicate.__init__r   r   c                 C   s   | || jS r   )precpredr?   r
   r	   r	   r   r      r'   zPrecedencePredicate.evalc                 C   s   | || jr
tjS d S r   )rA   r?   r   r   r
   r	   r	   r   r      s   z"PrecedencePredicate.evalPrecedencec                 C   s   | j |j k S r   r@   r5   r	   r	   r   __lt__   s   zPrecedencePredicate.__lt__c                 C   s   dS )N   r	   r2   r	   r	   r   r3      r   zPrecedencePredicate.__hash__c                 C   &   | |u rdS t |tsdS | j|jkS r4   )r!   r"   r?   r5   r	   r	   r   r7      
   
zPrecedencePredicate.__eq__N)r   )r   r   r   r=   r.   r   r   r   r   rB   r3   r7   r	   r	   r	   r   r"   }   s    r"   c                   @   ^   e Zd ZdZdedefddZdd Zdd	 Zd
ede	fddZ
d
ede	fddZdd ZdS )r   r   r   r   c                 C   s~   t  }t|tr||j n|| t|tr ||j n|| t|}t|dkr8t|}|| t	|| _d S )Nr   )
setr!   r   updater   addr&   r   minlist)r   r   r   operandsprecedencePredicatesreducedr	   r	   r   r.      s   




zAND.__init__c                 C   rD   r4   )r!   r   r   r5   r	   r	   r   r7      rE   z
AND.__eq__c                 C   (   d}| j D ]}t||f}qt|dfS )Nr   r   r   r1   r   hor	   r	   r   r3         
zAND.__hash__r   r   c                       t  fdd| jD S )Nc                 3       | ]	}|  V  qd S r   r   r#   opndr   r   r	   r   	<genexpr>       zAND.eval.<locals>.<genexpr>)allr   r
   r	   rZ   r   r         zAND.evalc           	      C   s   d}g }| j D ]}|||}|||uO }|d u r d S |tjur&|| q|s+| S t|dkr4tjS d }|D ]}|d u r@|nt||}q8|S NFr   )r   r   r   r   appendr   r   	r   r   r   differsrL   r$   	evaluatedr   rS   r	   r	   r   r      s$   


zAND.evalPrecedencec                 C   b   t  $}d}| jD ]}|s|d |t| d}q	| W  d    S 1 s*w   Y  d S )NTz&&Fr   r   writer:   getvaluer   buffirstrS   r	   r	   r   r;         

$zAND.__str__Nr   r   r   r<   r   r.   r7   r3   r   r   r   r   r;   r	   r	   r	   r   r      s    r   c                   @   rF   )r   r   r   r   c                 C   s   t  }t|tr||j n|| t|tr ||j n|| t|}t|dkr<t|}|d }|| t	|| _d S )Nr   r-   )
rG   r!   r   rH   r   rI   r&   r   sortedrK   )r   r   r   rL   rM   srN   r	   r	   r   r.      s   




zOR.__init__c                 C   rD   r4   )r!   r   r   r5   r	   r	   r   r7   	  rE   z	OR.__eq__c                 C   rO   )Nr   r   rP   rQ   r	   r	   r   r3     rT   zOR.__hash__r   r   c                    rU   )Nc                 3   rV   r   rW   rX   rZ   r	   r   r[     r\   zOR.eval.<locals>.<genexpr>)anyr   r
   r	   rZ   r   r     r^   zOR.evalc           	      C   s   d}g }| j D ]!}|||}|||uO }|tju rtj  S |d ur(|| q|s-| S t|dkr5d S d }|D ]}|d u rA|nt||}q9|S r_   )r   r   r   r   r`   r   r   ra   r	   r	   r   r     s$   



zOR.evalPrecedencec                 C   rd   )NTz||Fre   rh   r	   r	   r   r;   8  rk   z
OR.__str__Nrl   r	   r	   r	   r   r      s    
r   )antlr4.Recognizerr   antlr4.RuleContextr   ior   objectr   r   r   r   r   rG   r&   r(   r"   r   r	   r	   r	   r   <module>   s    -UQ