
    Ng(                        d dl mZ d dlmZ d dlmZ  G d de          ZdZdedefd	Z	dZ
dedefd
ZdefdZ G d de          Z G d de          Z[ G d de          Z[
 G d de          Z
 e            e_        dS )    )
Recognizer)RuleContext)StringIOc                   2    e Zd ZdZdedefdZdedefdZdS )SemanticContextNparserouterContextc                     d S N selfr   r	   s      V/var/www/html/ai-engine/env/lib/python3.11/site-packages/antlr4/atn/SemanticContext.pyevalzSemanticContext.eval'   s        c                     | S r   r   r   s      r   evalPrecedencezSemanticContext.evalPrecedence<   s    r   )__name__
__module____qualname__NONEr   r   r   r   r   r   r   r   r      s_        
 D* K    *J [      r   r   Nabc                     | | t           j        u r|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   results      r   
andContextr"   B   sc    yA---yA---AYYF
6<A|Ar   c                     | |S || 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    s      r   	orContextr%   P   sm    yyO   A)=$=$=##1XXF
6<A|Ar   
collectionc                     d | D             S )Nc                 <    g | ]}t          |t                    |S r   )
isinstancePrecedencePredicate).0contexts     r   
<listcomp>z.filterPrecedencePredicates.<locals>.<listcomp>^   s(    ZZZGEX1Y1YZGZZZr   r   )r&   s    r   filterPrecedencePredicatesr.   ]   s    ZZ:ZZZZr   c                   J    e Zd ZdZddededefdZded	efd
Z	d Z
d Zd ZdS )	Predicate	ruleIndex	predIndexisCtxDependentFr2   r3   r4   c                 0    || _         || _        || _        d S r   r1   )r   r2   r3   r4   s       r   __init__zPredicate.__init__d   s    "",r   r   r	   c                 Z    | j         r|nd }|                    || j        | j                  S r   )r4   sempredr2   r3   )r   r   r	   localctxs       r   r   zPredicate.evali   s-    #'#6@<<D~~hGGGr   c                 D    t          | j        | j        | j        f          S r   )hashr2   r3   r4   r   s    r   __hash__zPredicate.__hash__m   s    T^T^T5HIJJJr   c                     | |u rdS t          |t                    sdS | j        |j        k    o| j        |j        k    o| j        |j        k    S NTF)r)   r0   r2   r3   r4   r   others     r   __eq__zPredicate.__eq__p   s\    5==4E9-- 	5~0 ;~0;"e&::	;r   c                 f    dt          | j                  z   dz   t          | j                  z   dz   S )N{:z}?)strr2   r3   r=   s    r   __str__zPredicate.__str__y   s0    S(((3.T^1D1DDtKKr   N)r5   r5   F)r   r   r   	__slots__intboolr7   r   r   r   r>   rC   rH   r   r   r   r0   r0   a   s        <I- - -3 -$ - - - -
H* HK H H H HK K K; ; ;L L L L Lr   r0   c                   N    e Zd ZddefdZdedefdZdedefdZd Z	d	 Z
d
 ZdS )r*   r   
precedencec                     || _         d S r   rM   )r   rM   s     r   r7   zPrecedencePredicate.__init__   s    $r   r   r	   c                 8    |                     || j                  S r   )precpredrM   r   s      r   r   zPrecedencePredicate.eval   s    |T_===r   c                 T    |                     || j                  rt          j        S d S r   )rQ   rM   r   r   r   s      r   r   z"PrecedencePredicate.evalPrecedence   s(    ??<99 	"''4r   c                 "    | j         |j         k     S r   rO   rA   s     r   __lt__zPrecedencePredicate.__lt__   s    !111r   c                     dS )N   r   r=   s    r   r>   zPrecedencePredicate.__hash__   s    rr   c                 \    | |u rdS t          |t                    sdS | j        |j        k    S r@   )r)   r*   rM   rA   s     r   rC   zPrecedencePredicate.__eq__   s8    5==4E#677 	75?e&666r   N)r   )r   r   r   rJ   r7   r   r   r   r   rT   r>   rC   r   r   r   r*   r*   }   s        % %# % % % %>* >K > > > >J [    2 2 2  7 7 7 7 7r   r*   c                   T    e Zd ZdZdedefdZd Zd Zdede	fd	Z
dede	fd
Zd ZdS )r   r   r   r   c                    t                      }t          |t                    r|                    |j                   n|                    |           t          |t                    r|                    |j                   n|                    |           t          |          }t          |          dk    r$t          |          }|                    |           t          |          | _        d S )Nr   )
setr)   r   updater   addr.   r   minlist)r   r   r   operandsprecedencePredicatesreduceds         r   r7   zAND.__init__   s    55q# 	OOAG$$$$LLOOOq# 	OOAG$$$$LLOOO9(CC#$$Q&&.//GLL!!!(^^


r   c                 \    | |u rdS t          |t                    sdS | j        |j        k    S r@   )r)   r   r   rA   s     r   rC   z
AND.__eq__   s6    5==4E3'' 	-5:,,r   c                 ^    d}| j         D ]}t          ||f          }t          |df          S )Nr   r   r   r<   r   hos      r   r>   zAND.__hash__   s;     	 	AaVAAQJr   r   r	   c                 H    t          fd| j        D                       S )Nc              3   D   K   | ]}|                               V  d S r   r   r+   opndr	   r   s     r   	<genexpr>zAND.eval.<locals>.<genexpr>   1      JJt499V\22JJJJJJr   )allr   r   s    ``r   r   zAND.eval   ,    JJJJJtzJJJJJJr   c                 (   d}g }| j         D ]G}|                    ||          }|||uz  }| d S |t          j        ur|                    |           H|s| S t          |          dk    rt          j        S d }|D ]}||nt          ||          }|S NFr   )r   r   r   r   appendr   r"   	r   r   r	   differsr_   r,   	evaluatedr!   rg   s	            r   r   zAND.evalPrecedence   s    z 	+ 	+G..v|DDIy//G tt/"666	*** 	Kx==!"'' 	D 	DA .QQj.C.CFFr   c                    t                      5 }d}| j        D ]=}|s|                    d           |                    t          |                     d}>|                                cd d d            S # 1 swxY w Y   d S )NTz&&Fr   r   writerG   getvaluer   buffirstrg   s       r   rH   zAND.__str__       ZZ 	"3EZ   $IIdOOO		#a&&!!!<<>>	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"   AA77A;>A;Nr   r   r   rI   r   r7   rC   r>   r   r   r   r   rH   r   r   r   r   r      s        I$ $O $ $ $ $&- - -     K* K; K K K KJ [    4" " " " "r   r   c                   T    e Zd ZdZdedefdZd Zd Zdede	fd	Z
dede	fd
Zd ZdS )r$   r   r   r   c                    t                      }t          |t                    r|                    |j                   n|                    |           t          |t                    r|                    |j                   n|                    |           t          |          }t          |          dk    r,t          |          }|d         }|                    |           t          |          | _        d S )Nr   r5   )
rZ   r)   r$   r[   r   r\   r.   r   sortedr^   )r   r   r   r_   r`   sra   s          r   r7   zOR.__init__   s    55q" 	OOAG$$$$LLOOOq" 	OOAG$$$$LLOOO9(CC#$$Q&&+,,AeGLL!!!(^^


r   c                 \    | |u rdS t          |t                    sdS | j        |j        k    S r@   )r)   r$   r   rA   s     r   rC   z	OR.__eq__	  s6    5==4E2&& 	-5:,,r   c                 ^    d}| j         D ]}t          ||f          }t          |df          S )Nr   r$   rd   re   s      r   r>   zOR.__hash__  s9     	 	AaVAAQIr   r   r	   c                 H    t          fd| j        D                       S )Nc              3   D   K   | ]}|                               V  d S r   rj   rk   s     r   rm   zOR.eval.<locals>.<genexpr>  rn   r   )anyr   r   s    ``r   r   zOR.eval  rp   r   c                 *   d}g }| j         D ]R}|                    ||          }|||uz  }|t          j        u rt          j        c S ||                    |           S|s| S t          |          dk    rd S d }|D ]}||nt          ||          }|S rr   )r   r   r   r   rs   r   r%   rt   s	            r   r   zOR.evalPrecedence  s    z 	+ 	+G..v|DDIy//GO000&++++&	*** 	Kx==!4 	C 	CA .QQi.B.BFFr   c                    t                      5 }d}| j        D ]=}|s|                    d           |                    t          |                     d}>|                                cd d d            S # 1 swxY w Y   d S )NTz||Frx   r{   s       r   rH   z
OR.__str__8  r~   r   Nr   r   r   r   r$   r$      s        I$ $O $ $ $ $(- - -  K* K; K K K KJ [    4" " " " "r   r$   )antlr4.Recognizerr   antlr4.RuleContextr   ior   objectr   r   r"   r$   r%   rZ   r.   r0   r*   r   r   r   r   <module>r      s   ) ( ( ( ( ( * * * * * *      * * * * *f * * *Z 	 	O 	 	 	 	 
 ?    [# [ [ [ [L L L L L L L L87 7 7 7 7/ 7 7 7< P" P" P" P" P"/ P" P" P"j N" N" N" N" N"/ N" N" N"b !y{{   r   