
    khY                        d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	  G d de
      Zded	efd
Zdg dg fdZ G d de
      Z G d de      Z G d de      Z e       e_         G d de      Zd)dedefdZdedededefdZdedededefdZdededefd Zdedededefd!Zdefd"Zd#ed$ed%efd&Zd*d#ed'ed%efd(Zy)+    )StringIOIllegalStateException)RuleContext)ATN)ATNStatec                   L    e Zd ZdZdZdZeZdefdZd Z	d Z
d Zd	efd
Zd Zy)PredictionContextNi   cachedHashCodec                     || _         y Nr   )selfr   s     T/var/www/teggl/fontify/venv/lib/python3.12/site-packages/antlr4/PredictionContext.py__init__zPredictionContext.__init__4   s
    ,    c                      yNr    r   s    r   __len__zPredictionContext.__len__7       r   c                     | | j                   u S r   )EMPTYr   s    r   isEmptyzPredictionContext.isEmpty;   s    tzz!!r   c                 V    | j                  t        |       dz
        | j                  k(  S Nr   )getReturnStatelenEMPTY_RETURN_STATEr   s    r   hasEmptyPathzPredictionContext.hasEmptyPath>   s&    ""3t9q=1T5L5LLLr   indexc                     t        d      )Nzillegal!r   r   r#   s     r   r   z PredictionContext.getReturnStateA   s    #J//r   c                     | j                   S r   r   r   s    r   __hash__zPredictionContext.__hash__D       """r   )__name__
__module____qualname__r   r!   globalNodeCountidintr   r   r   r"   r   r'   r   r   r   r
   r
      sH    
 E $O	B.-c -"M03 0#r   r
   parentreturnStatec                 H    | t        d      S t        t        |       |f      S )N )hashr/   r0   s     r   calculateHashCoder5   G   s#    ~48L4f{0K+LLr   parentsreturnStatesc                 `    d}t        | |      D ]  \  }}t        |t        ||      f      } |S r   )zipr3   r5   )r6   r7   hr/   r0   s        r   calculateListsHashCoder;   J   s>    	A"7L9 >!&v{;<=>Hr   c                   0    e Zd Zd ZdefdZdefdZd Zy)PredictionContextCachec                 "    t               | _        y r   )dictcacher   s    r   r   zPredictionContextCache.__init__V   s    V
r   ctxc                     |t         j                  k(  rt         j                  S | j                  j                  |d       }||S || j                  |<   |S r   )r
   r   r@   get)r   rA   existings      r   addzPredictionContextCache.add]   sN    !'''$***::>>#t,O

3
r   c                 :    | j                   j                  |d       S r   )r@   rC   )r   rA   s     r   rC   zPredictionContextCache.getf   s    zz~~c4((r   c                 ,    t        | j                        S r   )r    r@   r   s    r   r   zPredictionContextCache.__len__i   s    4::r   N)r)   r*   r+   r   r
   rE   rC   r   r   r   r   r=   r=   T   s&    ' )' )r   r=   c                   r     e Zd Zededefd       Zdedef fdZd ZdefdZ	defdZ
d	 Zd
 Zd Z xZS )SingletonPredictionContextr/   r0   c                 d    |t         j                  k(  r| t        j                  S t        | |      S r   )r
   r!   rI   r   r4   s     r   createz!SingletonPredictionContext.createo   s.    +>>>6>-333-fkBBr   c                 X    t        ||      }t        | 	  |       || _        || _        y r   )r5   superr   	parentCtxr0   )r   r/   r0   hashCode	__class__s       r   r   z#SingletonPredictionContext.__init__w   s+    $V[9"&r   c                      yr   r   r   s    r   r   z"SingletonPredictionContext.__len__}   r   r   r#   c                     | j                   S r   )rN   r%   s     r   	getParentz$SingletonPredictionContext.getParent   s    ~~r   c                     | j                   S r   )r0   r%   s     r   r   z)SingletonPredictionContext.getReturnState   s    r   c                     | |u ry|yt        |t              sy| j                  |j                  k(  xr | j                  |j                  k(  S NTF)
isinstancerI   r0   rN   r   others     r   __eq__z!SingletonPredictionContext.__eq__   sK    5=]E#=>##u'8'88^T^^u=^^r   c                     | j                   S r   r   r   s    r   r'   z#SingletonPredictionContext.__hash__   r(   r   c                     | j                   dnt        | j                         }t        |      dk(  r/| j                  | j                  k(  ryt        | j                        S t        | j                        dz   |z   S )Nr2   r   $ )rN   strr    r0   r!   )r   ups     r   __str__z"SingletonPredictionContext.__str__   si    >>)Rs4>>/Br7A:4#:#::4++,,t''(3.33r   )r)   r*   r+   staticmethodr
   r.   rK   r   r   rS   r   rZ   r'   ra   __classcell__rP   s   @r   rI   rI   m   si    C' Cc C C'/ 'S 'c  3  _#4r   rI   c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )EmptyPredictionContextc                 B    t         |   d t        j                         y r   )rM   r   r
   r!   )r   rP   s    r   r   zEmptyPredictionContext.__init__   s    0CCDr   c                      y)NTr   r   s    r   r   zEmptyPredictionContext.isEmpty   s    r   c                 
    | |u S r   r   rX   s     r   rZ   zEmptyPredictionContext.__eq__   s    u}r   c                     | j                   S r   r   r   s    r   r'   zEmptyPredictionContext.__hash__   r(   r   c                      y)Nr]   r   r   s    r   ra   zEmptyPredictionContext.__str__   s    r   )	r)   r*   r+   r   r   rZ   r'   ra   rc   rd   s   @r   rf   rf      s    E#r   rf   c                   ^     e Zd Zdedef fdZd Zd ZdefdZdefdZ	d	 Z
d
 Zd Z xZS )ArrayPredictionContextr6   r7   c                 T    t         |   t        ||             || _        || _        y r   )rM   r   r;   r6   r7   )r   r6   r7   rP   s      r   r   zArrayPredictionContext.__init__   s'    /FG(r   c                 B    | j                   d   t        j                  k(  S r   )r7   r
   r!   r   s    r   r   zArrayPredictionContext.isEmpty   s!       #%6%I%IIIr   c                 ,    t        | j                        S r   )r    r7   r   s    r   r   zArrayPredictionContext.__len__   s    4$$%%r   r#   c                      | j                   |   S r   )r6   r%   s     r   rS   z ArrayPredictionContext.getParent   s    ||E""r   c                      | j                   |   S r   )r7   r%   s     r   r   z%ArrayPredictionContext.getReturnState   s      ''r   c                     | |u ryt        |t              syt        |       t        |      k7  ry| j                  |j                  k(  xr | j                  |j                  k(  S rV   )rW   rm   r3   r7   r6   rX   s     r   rZ   zArrayPredictionContext.__eq__   sV    5=E#9:$Z4;&$$e&8&88XT\\5===XXr   c                    | j                         ryt               5 }|j                  d       t        dt	        | j
                              D ]  }|dkD  r|j                  d       | j
                  |   t        j                  k(  r|j                  d       K|j                  t        | j
                  |                | j                  |   9|j                  d       |j                  t        | j                  |                |j                  d        |j                  d       |j                         cd d d        S # 1 sw Y   y xY w)	Nz[][r   z, r]   r^   null])r   r   writeranger    r7   r
   r!   r_   r6   getvalue)r   bufis      r   ra   zArrayPredictionContext.__str__   s    <<>Z 	"3IIcN1S!2!234 &Q3IIdO$$Q'):)M)MMIIcN		#d//234<<?.IIcNIIc$,,q/23IIf%& IIcN<<>	" 	" 	"s   DEEc                     | j                   S r   r   r   s    r   r'   zArrayPredictionContext.__hash__   r(   r   )r)   r*   r+   listr   r   r   r.   rS   r   rZ   ra   r'   rc   rd   s   @r   rm   rm      sI    
)t )$ )
J
&#c #(3 (Y"(#r   rm   NatnouterContextc                 R   |t         j                  }|j                  |t         j                  u rt        j                  S t	        | |j                        }| j
                  |j                     }|j                  d   }t        j                  ||j                  j                        S r   )r   r   rN   r
    PredictionContextFromRuleContextstatesinvokingStatetransitionsrI   rK   followStatestateNumber)r   r   r/   state
transitions        r   r   r      s    "(( %9J9J)J &&& .c<3I3IJFJJ|112E""1%J%,,VZ5K5K5W5WXXr   abrootIsWildcard
mergeCachec                    | |k(  r| S t        | t              rt        |t              rt        | |||      S |r$t        | t              r| S t        |t              r|S t        | t              r"t	        | j
                  g| j                  g      } t        |t              r"t	        |j
                  g|j                  g      }t        | |||      S r   )rW   rI   mergeSingletonsrf   rm   rN   r0   mergeArrays)r   r   r   r   s       r   merger      s     	!t!/0ZC]5^q!^Z@@ q02Hq02H 102"AKK=1==/B101"AKK=1==/Bq!^Z88r   c                    |0|j                  | |fd       }||S |j                  || fd       }||S t        | ||      }||||| |f<   |S | j                  |j                  k(  rot        | j                  |j                  ||      }|| j                  k(  r| S ||j                  k(  r|S t
        j                  || j                        }|||| |f<   |S d }| |u s%| j                  %| j                  |j                  k(  r| j                  }|d| j                  |j                  g}| j                  |j                  kD  r|j                  | j                  g}||g}	t        |	|      }|||| |f<   |S | j                  |j                  g}| j                  |j                  g}	| j                  |j                  kD  r0|j                  | j                  g}|j                  | j                  g}	t        |	|      }|||| |f<   |S r   )rC   	mergeRootr0   r   rN   rI   rK   rm   )
r   r   r   r   previousmergedr/   singleParentpayloadsr6   s
             r   r   r   4  s   >>1Q%.O>>1Q%.Oq!^,F!!'J1v}}amm#q{{AKKLQ[[ HQ[[ H
 ,2261==I!!'J1v 6akk-!++q{{2J;;L#7H}}q}},]]AMM;#\2G+GX>F%%+
Aq6"M ]]AMM3KK.==1==(7HQ[[2G':!!'J1vr   c                 &   |rG| t         j                  k(  rt         j                  S |t         j                  k(  rt         j                  S y | t         j                  k(  r#|t         j                  k(  rt         j                  S | t         j                  k(  r6|j                  t         j                  g}|j                  d g}t        ||      S |t         j                  k(  r6| j                  t         j                  g}| j                  d g}t        ||      S y r   )r
   r   r0   r!   rN   rm   )r   r   r   r   r6   s        r   r   r     s    !'''$***!'''$***  !'''A1B1H1H,H$***#)))(9(L(LNHT+G)'8<<#)))(9(L(LNHT+G)'8<<r   c                 >   |0|j                  | |fd       }||S |j                  || fd       }||S d}d}d}d gt        | j                        t        |j                        z   z  }d gt        |      z  }	|t        | j                        k  rV|t        |j                        k  r=| j                  |   }
|j                  |   }| j                  |   |j                  |   k(  rq| j                  |   }|t        j
                  k(  xr
 |
d u xr |d u }|
d uxr |d uxr |
|k(  }|s|r|
|	|<   |||<   nt        |
|||      }||	|<   |||<   |dz  }|dz  }nX| j                  |   |j                  |   k  r|
|	|<   | j                  |   ||<   |dz  }n||	|<   |j                  |   ||<   |dz  }|dz  }|t        | j                        k  r|t        |j                        k  r=|t        | j                        k  rNt        |t        | j                              D ]+  }| j                  |   |	|<   | j                  |   ||<   |dz  }- nMt        |t        |j                              D ]+  }|j                  |   |	|<   |j                  |   ||<   |dz  }- |t        |	      k  r6|dk(  r't        j                  |	d   |d         }|||| |f<   |S |	d| }	|d| }t        |	|      }|| k(  r|| || |f<   | S ||k(  r|||| |f<   |S t        |	       |||| |f<   |S )Nr   r   )rC   r    r7   r6   r
   r!   r   ry   rI   rK   rm   combineCommonParents)r   r   r   r   r   r|   jkmergedReturnStatesmergedParentsa_parentb_parentpayloadbothDollarsax_axmergedParentpr   s                     r   r   r     s   >>1Q%.O>>1Q%.O 	
A	A	A3q~~#6ann9M#MNFS!344M
C
Ac!..&9$999Q<99Q<>>!annQ//nnQ'G!%6%I%II B$,B19T1A T)Bhd.BZRZHZEe#+a (/"1%$XxT#/a (/"1%FAFA^^Aq~~a00'M!$%NN1$5q!FA'M!$%NN1$5q!FA	Q7 C
Ac!..&9$9< 	3q~~q#ann-. 	A yy|M!$%NN1$5q!FA	
 q#ann-. 	A yy|M!$%NN1$5q!FA	 	3}6/66}Q7GI[\]I^_F%$*
Aa5!M%a*/!4#M3EFF qy! !J!uqy! !J!u'"
Aa5Mr   c                     t               }t        dt        |             D ]  }| |   }|j                  |d       |||<   ! t        dt        |             D ]  }|| |      | |<    y r   )r?   ry   r    rC   )r6   uniqueParentsr   r/   s       r   r   r     sw    FM1c'l# +VT*2$*M&!+
 1c'l# /"71:.
/r   contextcontextCachevisitedc                    | j                         r| S |j                  |       }||S |j                  |       }|||| <   |S d}d gt        |       z  }t        dt        |            D ]m  }t	        | j                  |      ||      }|s|| j                  |      us5|s2t        t        |             D cg c]  }| j                  |       }}d}|||<   o |s|j                  |        | || <   | S d }	t        |      dk(  rt        j                  }	nMt        |      dk(  r)t        j                  |d   | j                  d            }	nt        || j                        }	|j                  |	       |	||	<   |	|| <   |	S c c}w )NFr   Tr   )r   rC   r    ry   getCachedPredictionContextrS   rE   r
   r   rI   rK   r   rm   r7   )
r   r   r   rD   changedr6   r|   r/   r   updateds
             r   r   r   "  s   {{7#H(H#Gfs7|#G1c'l#  +G,=,=a,@,PWXfG$5$5a$889>s7|9LMA7,,Q/MMGAJ  !"G
7|q#))	W	,33GAJ@V@VWX@YZ('2F2FGWGGGGN) Ns   5E=nodesc                 H   |t               }t        | ||      S |t               }t        | ||      S | |j                  | d       |S |j	                  | |        |j                  |        t        dt        |             D ]  }t        | j                  |      ||         |S r   )	r~   getAllContextNodesr?   rC   putrE   ry   r    rS   )r   r   r   r|   s       r   r   r   `  s    }!'5'::	&!'5'::?gkk'48DLGW%		'q#g,' 	EAw003UGD	Er   r   )NN)ior   antlr4.error.Errorsr   antlr4.RuleContextr   antlr4.atn.ATNr   antlr4.atn.ATNStater   objectr
   r.   r5   r;   r=   rI   rf   r   rm   r   boolr?   r   r   r   r   r~   r   r   r   r   r   r   <module>r      s    5 *  (6# 6#pM. MC M2 B V 2.4!2 .4b7 $ 12  7#. 7#|Y Y; Y 9 9!2 94 9TX 9h80 84N 8_c 8pt 8B* .H Y] NT( T,B TSW Tdh Tv	/ 	/$'8 $G] $gk $|0  4 r   