
    kh(                         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_        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      V/var/www/teggl/fontify/venv/lib/python3.12/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   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                   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isCtxDependentr/   r0   r1   c                 .    || _         || _        || _        y r   r.   )r   r/   r0   r1   s       r   __init__zPredicate.__init__d   s    "",r   r   r	   c                 p    | j                   r|nd }|j                  || j                  | j                        S r   )r1   sempredr/   r0   )r   r   r	   localctxs       r   r   zPredicate.evali   s,    #'#6#6<D~~hGGr   c                 Z    t        | j                  | j                  | j                  f      S r   )hashr/   r0   r1   r   s    r   __hash__zPredicate.__hash__m   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-   r/   r0   r1   r   others     r   __eq__zPredicate.__eq__p   s\    5=E9-~~0 ;~~0;""e&:&::	;r   c                 j    dt        | j                        z   dz   t        | j                        z   dz   S )N{:z}?)strr/   r0   r9   s    r   __str__zPredicate.__str__y   s.    S((3.T^^1DDtKKr   N)rE   F)r   r   r   	__slots__intboolr3   r   r   r   r:   r?   rD   r   r   r   r-   r-   a   sH    <I- -3 -$ -
H* HK HK;Lr   r-   c                   L    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y
)r)   
precedencec                     || _         y r   rJ   )r   rJ   s     r   r3   zPrecedencePredicate.__init__   s	    $r   r   r	   c                 :    |j                  || j                        S r   )precpredrJ   r   s      r   r   zPrecedencePredicate.eval   s    |T__==r   c                 \    |j                  || j                        rt        j                  S y r   )rN   rJ   r   r   r   s      r   r   z"PrecedencePredicate.evalPrecedence   s#    ??<9"'''r   c                 4    | j                   |j                   k  S r   rL   r=   s     r   __lt__zPrecedencePredicate.__lt__   s    !1!111r   c                      y)N   r   r9   s    r   r:   zPrecedencePredicate.__hash__   s    r   c                 `    | |u ryt        |t              sy| j                  |j                  k(  S r<   )r(   r)   rJ   r=   s     r   r?   zPrecedencePredicate.__eq__   s/    5=E#67??e&6&666r   N)r   )r   r   r   rG   r3   r   r   r   r   rQ   r:   r?   r   r   r   r)   r)   }   sC    %# %>* >K >J [ 2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   r3   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   r?   z
AND.__eq__   s,    5=E3'::,,r   c                 \    d}| j                   D ]  }t        ||f      } t        |df      S )Nr   r   r   r8   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!   rd   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   writerC   getvaluer   buffirstrd   s       r   rD   zAND.__str__   d    Z 	"3EZZ IIdO		#a&!	
 <<>	" 	" 	"   AA''A0Nr   r   r   rF   r   r3   r?   r:   r   r   r   r   rD   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   rE   )
rW   r(   r$   rX   r   rY   r+   r   sortedr[   )r   r   r   r\   r]   sr^   s          r   r3   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   r?   z	OR.__eq__	  s,    5=E2&::,,r   c                 \    d}| j                   D ]  }t        ||f      } t        |df      S )Nr   r$   ra   rb   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   rg   rh   s     r   rk   zOR.eval.<locals>.<genexpr>  rl   rm   )anyr   r   s    ``r   r   zOR.eval  ro   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 rq   )r   r   r   r   rr   r   r%   rs   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||Frw   rz   s       r   rD   z
OR.__str__8  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%   rW   r+   r-   r)   r   r   r   r   <module>r      s    ) * *f *Z 	 	O 	 
 ? [# [L L87/ 7< P"/ P"j N"/ N"b !{ r   