a
    d(                     @   s   d dl mZ d dlmZ d dlmZ G dd deZdZeeddd	Z	dZ
eedd
dZed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                   @   s0   e Zd ZdZeedddZeedddZdS )SemanticContextNparserouterContextc                 C   s   d S N selfr   r   r
   r
   c/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/antlr4/atn/SemanticContext.pyeval'   s    zSemanticContext.evalc                 C   s   | S r	   r
   r   r
   r
   r   evalPrecedence<   s    zSemanticContext.evalPrecedence)__name__
__module____qualname__NONEr   r   r   r   r
   r
   r
   r   r      s   r   Nabc                 C   sV   | d u s| t ju r|S |d u s(|t ju r,| S t| |}t|jdkrN|jd S |S d S N   r   )r   r   ANDlenopndsr   r   resultr
   r
   r   
andContextB   s    

r   c                 C   s\   | d u r|S |d u r| S | t ju s,|t ju r2t jS t| |}t|jdkrT|jd S |S d S r   )r   r   ORr   r   r   r
   r
   r   	orContextP   s    

r    Z
collectionc                 C   s   dd | D S )Nc                 S   s   g | ]}t |tr|qS r
   )
isinstancePrecedencePredicate).0contextr
   r
   r   
<listcomp>^       z.filterPrecedencePredicates.<locals>.<listcomp>r
   r!   r
   r
   r   filterPrecedencePredicates]   s    r(   c                   @   sL   e Zd ZdZdeeedddZeedddZ	d	d
 Z
dd Zdd ZdS )	Predicate	ruleIndex	predIndexisCtxDependentFc                 C   s   || _ || _|| _d S r	   r*   )r   r+   r,   r-   r
   r
   r   __init__d   s    zPredicate.__init__r   c                 C   s    | j r
|nd }||| j| jS r	   )r-   Zsempredr+   r,   )r   r   r   Z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,   r1   r
   r
   r   __str__y   s    zPredicate.__str__N)r.   r.   F)r   r   r   	__slots__intboolr/   r   r   r   r2   r6   r:   r
   r
   r
   r   r)   a   s   	r)   c                   @   sT   e Zd ZdedddZeedddZeed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   c                 C   s   | || jS r	   )precpredr?   r   r
   r
   r   r      s    zPrecedencePredicate.evalc                 C   s   | || jrtjS d S d S r	   )r@   r?   r   r   r   r
   r
   r   r      s    z"PrecedencePredicate.evalPrecedencec                 C   s   | j |j k S r	   r>   r4   r
   r
   r   __lt__   s    zPrecedencePredicate.__lt__c                 C   s   dS )N   r
   r1   r
   r
   r   r2      s    zPrecedencePredicate.__hash__c                 C   s*   | |u rdS t |tsdS | j|jkS d S r3   )r"   r#   r?   r4   r
   r
   r   r6      s
    
zPrecedencePredicate.__eq__N)r   )r   r   r   r<   r/   r   r   r   r   rA   r2   r6   r
   r
   r
   r   r#   }   s   r#   c                   @   sX   e Zd ZdZeedddZdd Zdd Zee	d	d
dZ
ee	d	ddZdd ZdS )r   r   r   c                 C   s~   t  }t|tr||j n
|| t|tr@||j n
|| t|}t|dkrpt|}|| 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   s*   | |u rdS t |tsdS | j|jkS d S r3   )r"   r   r   r4   r
   r
   r   r6      s
    
z
AND.__eq__c                 C   s(   d}| j D ]}t||f}q
t|dfS )Nr   r   r   r0   r   hor
   r
   r   r2      s    
zAND.__hash__r   c                    s   t  fdd| jD S )Nc                 3   s   | ]}|  V  qd S r	   r   r$   Zopndr   r   r
   r   	<genexpr>   r'   zAND.eval.<locals>.<genexpr>)allr   r   r
   rQ   r   r      s    zAND.evalc           	      C   s   d}g }| j D ]>}|||}|||uO }|d u r8 d S |tjur|| q|sV| S t|dkrhtjS d }|D ]}|d u r|nt||}qp|S NFr   )r   r   r   r   appendr   r   	r   r   r   ZdiffersrH   r%   Z	evaluatedr   rN   r
   r
   r   r      s"    

zAND.evalPrecedencec                 C   sb   t  H}d}| jD ]$}|s$|d |t| d}q| W  d    S 1 sT0    Y  d S )NTz&&Fr   r   writer9   getvaluer   buffirstrN   r
   r
   r   r:      s    

zAND.__str__Nr   r   r   r;   r   r/   r6   r2   r   r   r   r   r:   r
   r
   r
   r   r      s   r   c                   @   sX   e Zd ZdZeedddZdd Zdd Zee	d	d
dZ
ee	d	ddZdd ZdS )r   r   r   c                 C   s   t  }t|tr||j n
|| t|tr@||j n
|| t|}t|dkrxt|}|d }|| t	|| _d S )Nr   r.   )
rC   r"   r   rD   r   rE   r(   r   sortedrG   )r   r   r   rH   rI   srJ   r
   r
   r   r/      s    




zOR.__init__c                 C   s*   | |u rdS t |tsdS | j|jkS d S r3   )r"   r   r   r4   r
   r
   r   r6   	  s
    
z	OR.__eq__c                 C   s(   d}| j D ]}t||f}q
t|dfS )Nr   r   rK   rL   r
   r
   r   r2     s    
zOR.__hash__r   c                    s   t  fdd| jD S )Nc                 3   s   | ]}|  V  qd S r	   rO   rP   rQ   r
   r   rR     r'   zOR.eval.<locals>.<genexpr>)anyr   r   r
   rQ   r   r     s    zOR.evalc           	      C   s   d}g }| j D ]B}|||}|||uO }|tju r>tj  S |d ur|| q|sZ| S t|dkrjd S d }|D ]}|d u r|nt||}qr|S rT   )r   r   r   r   rU   r   r    rV   r
   r
   r   r     s"    


zOR.evalPrecedencec                 C   sb   t  H}d}| jD ]$}|s$|d |t| d}q| W  d    S 1 sT0    Y  d S )NTz||FrW   rZ   r
   r
   r   r:   8  s    

z
OR.__str__Nr]   r
   r
   r
   r   r      s   
r   )Zantlr4.Recognizerr   Zantlr4.RuleContextr   ior   objectr   r   r   r   r    rC   r(   r)   r#   r   r
   r
   r
   r   <module>   s   -UQ