
    8f)                         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[
 G d de      Z
 e       e_        y)    )
Recognizer)RuleContext)StringIOc                   0    e Zd ZdZdedefdZdedefdZy)SemanticContextNparserouterContextc                      y N selfr   r	   s      C:\Program Files (x86)\Steam\steamapps\common\Skyrim Special Edition\MO2\plugins\installer_wizard\lib\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   s_    yA---yA---AYF
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   sl    yyO   A)=)=$=###1XF
6<<A||Ar   
collectionc                 N    | D cg c]  }t        |t              s| c}S c c}w r   )
isinstancePrecedencePredicate)r&   contexts     r   filterPrecedencePredicatesr+   ]   s     #-ZGEX1YGZZZs   ""c                       e Zd Zy)EmptySemanticContextN)r   r   r   r   r   r   r-   r-   a   s    r   r-   c                   H    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y)	Predicate	ruleIndex	predIndexisCtxDependentr1   r2   r3   c                 .    || _         || _        || _        y r   r0   )r   r1   r2   r3   s       r   __init__zPredicate.__init__g   s    "",r   r   r	   c                 p    | j                   r|nd }|j                  || j                  | j                        S r   )r3   sempredr1   r2   )r   r   r	   localctxs       r   r   zPredicate.evall   s,    #'#6#6<D~~hGGr   c                 Z    t        | j                  | j                  | j                  f      S r   )hashr1   r2   r3   r   s    r   __hash__zPredicate.__hash__p   s"    T^^T^^T5H5HIJJr   c                     | |u ryt        |t              sy| j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S NTF)r(   r/   r1   r2   r3   r   others     r   __eq__zPredicate.__eq__s   s\    5=E9-~~0 ;~~0;""e&:&::	;r   c                 j    dt        | j                        z   dz   t        | j                        z   dz   S )N{:z}?)strr1   r2   r;   s    r   __str__zPredicate.__str__|   s.    S((3.T^^1DDtKKr   N)rG   F)r   r   r   	__slots__intboolr5   r   r   r   r<   rA   rF   r   r   r   r/   r/   d   sH    <I- -3 -$ -
H* HK HK;Lr   r/   c                   R    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
 Zy)r)   
precedencec                     || _         y r   rL   )r   rL   s     r   r5   zPrecedencePredicate.__init__   s	    $r   r   r	   c                 :    |j                  || j                        S r   )precpredrL   r   s      r   r   zPrecedencePredicate.eval   s    |T__==r   c                 \    |j                  || j                        rt        j                  S y r   )rP   rL   r   r   r   s      r   r   z"PrecedencePredicate.evalPrecedence   s#    ??<9"'''r   c                 4    | j                   |j                   k  S r   rN   r?   s     r   __lt__zPrecedencePredicate.__lt__   s    !1!111r   c                      y)N   r   r;   s    r   r<   zPrecedencePredicate.__hash__   s    r   c                 `    | |u ryt        |t              sy| j                  |j                  k(  S r>   )r(   r)   rL   r?   s     r   rA   zPrecedencePredicate.__eq__   s/    5=E#67??e&6&666r   c                 8    dt        | j                        z   dz   S )NrC   z>=prec}?)rE   rL   r;   s    r   rF   zPrecedencePredicate.__str__   s    S))J66r   N)r   )r   r   r   rI   r5   r   r   r   r   rS   r<   rA   rF   r   r   r   r)   r)      sH    %# %>* >K >J [ 277r   r)   c                   R    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y)r   r   r   r   c                    t               }t        |t              r|j                  |j                         n|j                  |       t        |t              r|j                  |j                         n|j                  |       t        |      }t        |      dkD  rt        |      }|j                  |       t        |      | _        y )Nr   )
setr(   r   updater   addr+   r   minlist)r   r   r   operandsprecedencePredicatesreduceds         r   r5   zAND.__init__   s    5q#OOAGG$LLOq#OOAGG$LLO9(C#$Q&./GLL!(^
r   c                 `    | |u ryt        |t              sy| j                  |j                  k(  S r>   )r(   r   r   r?   s     r   rA   z
AND.__eq__   s,    5=E3'::,,r   c                 \    d}| j                   D ]  }t        ||f      } t        |df      S )Nr   r   r   r:   r   hos      r   r<   zAND.__hash__   s6     	AaVA	QJr   r   r	   c                 D    t        fd| j                  D              S )Nc              3   B   K   | ]  }|j                          y wr   r   .0opndr	   r   s     r   	<genexpr>zAND.eval.<locals>.<genexpr>        Jt499V\2J   )allr   r   s    ``r   r   zAND.eval       JtzzJJJr   c                 (   d}g }| j                   D ]C  }|j                  ||      }|||uz  }| y |t        j                  us3|j	                  |       E |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    zz 	+G..v|DIy//G /"6"66	*	+ Kx=!"''' 	DA .Qj.CF	D r   c                     t               5 }d}| j                  D ]1  }|s|j                  d       |j                  t        |             d}3 |j	                         cd d d        S # 1 sw Y   y xY w)NTz&&Fr   r   writerE   getvaluer   buffirstrg   s       r   rF   zAND.__str__   d    Z 	"3EZZ IIdO		#a&!	
 <<>	" 	" 	"   AA''A0Nr   r   r   rH   r   r5   rA   r<   r   r   r   r   rF   r   r   r   r   r      sR    I$ $O $&- K* K; KJ [ 4"r   r   c                   R    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y)r$   r   r   r   c                    t               }t        |t              r|j                  |j                         n|j                  |       t        |t              r|j                  |j                         n|j                  |       t        |      }t        |      dkD  r!t        |      }|d   }|j                  |       t        |      | _        y )Nr   rG   )
rZ   r(   r$   r[   r   r\   r+   r   sortedr^   )r   r   r   r_   r`   sra   s          r   r5   zOR.__init__   s    5q"OOAGG$LLOq"OOAGG$LLO9(C#$Q&+,AeGLL!(^
r   c                 `    | |u ryt        |t              sy| j                  |j                  k(  S r>   )r(   r$   r   r?   s     r   rA   z	OR.__eq__  s,    5=E2&::,,r   c                 \    d}| j                   D ]  }t        ||f      } t        |df      S )Nr   r$   rd   re   s      r   r<   zOR.__hash__  s5     	AaVA	QIr   r   r	   c                 D    t        fd| j                  D              S )Nc              3   B   K   | ]  }|j                          y wr   rj   rk   s     r   rn   zOR.eval.<locals>.<genexpr>#  ro   rp   )anyr   r   s    ``r   r   zOR.eval"  rr   r   c                 *   d}g }| j                   D ]S  }|j                  ||      }|||uz  }|t        j                  u rt        j                  c S |C|j	                  |       U |s| S t        |      dk(  ry d }|D ]  }||nt        ||      } |S rt   )r   r   r   r   ru   r   r%   rv   s	            r   r   zOR.evalPrecedence%  s    zz 	+G..v|DIy//GO000&+++&	*	+ Kx=! 	CA .Qi.BF	C r   c                     t               5 }d}| j                  D ]1  }|s|j                  d       |j                  t        |             d}3 |j	                         cd d d        S # 1 sw Y   y xY w)NTz||Frz   r}   s       r   rF   z
OR.__str__?  r   r   Nr   r   r   r   r$   r$      sR    I$ $O $(-K* K; KJ [ 4"r   r$   )antlr4.Recognizerr   antlr4.RuleContextr   ior   objectr   r   r"   r$   r%   rZ   r+   r-   r/   r)   r   r   r   r   <module>r      s    ) * *f *Z 	 	O 	 
 ? [# [	? 	L L87/ 7D P"/ P"j N"/ N"b ,- r   