
    <iY                        S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	   " S S\
5      rS\S	\4S
 jrS/ S/ 4S jr " S S\
5      r " S S\5      r " S S\5      r\" 5       \l         " S S\5      rS)S\S\4S jjrS\S\S\S\4S jrS\S\S\S\4S jrS\S\S\4S  jrS\S\S\S\4S! jrS\4S" jrS#\S$\S%\4S& jrS*S#\S'\S%\4S( jjrg)+    )StringIOIllegalStateException)RuleContext)ATN)ATNStatec                   X    \ rS rSrSrSrSr\rS\4S jr	S r
S rS	 rS
\4S jrS rSrg)PredictionContext   Ni   cachedHashCodec                     Xl         g Nr   )selfr   s     R/home/james-whalen/.local/lib/python3.13/site-packages/antlr4/PredictionContext.py__init__PredictionContext.__init__4   s    ,    c                     gNr    r   s    r   __len__PredictionContext.__len__7       r   c                     X R                   L $ r   )EMPTYr   s    r   isEmptyPredictionContext.isEmpty;   s    zz!!r   c                 V    U R                  [        U 5      S-
  5      U R                  :H  $ Nr   )getReturnStatelenEMPTY_RETURN_STATEr   s    r   hasEmptyPathPredictionContext.hasEmptyPath>   s&    ""3t9q=1T5L5LLLr   indexc                     [        S5      e)Nzillegal!r   r   r(   s     r   r#    PredictionContext.getReturnStateA   s    #J//r   c                     U R                   $ r   r   r   s    r   __hash__PredictionContext.__hash__D       """r   r   )__name__
__module____qualname____firstlineno__r   r%   globalNodeCountidintr   r   r   r&   r#   r-   __static_attributes__r   r   r   r
   r
      sH    
 E $O	B.-c -"M03 0#r   r
   parentreturnStatec                 J    U c  [        S5      $ [        [        U 5      U45      $ )N )hashr8   r9   s     r   calculateHashCoder>   G   s#    ~48L4f{0K+LLr   parentsreturnStatesc                 ^    Sn[        X5       H  u  p4[        U[        X45      45      nM     U$ r   )zipr<   r>   )r?   r@   hr8   r9   s        r   calculateListsHashCoderD   J   s3    	A"79!&v;<=  :Hr   c                   <    \ rS rSrS rS\4S jrS\4S jrS rSr	g)	PredictionContextCacheT   c                 "    [        5       U l        g r   )dictcacher   s    r   r   PredictionContextCache.__init__V   s    V
r   ctxc                     U[         R                  :X  a  [         R                  $ U R                  R                  US 5      nUb  U$ XR                  U'   U$ r   )r
   r   rJ   get)r   rL   existings      r   addPredictionContextCache.add]   sL    !'''$***::>>#t,O

3
r   c                 :    U R                   R                  US 5      $ r   )rJ   rN   )r   rL   s     r   rN   PredictionContextCache.getf   s    zz~~c4((r   c                 ,    [        U R                  5      $ r   )r$   rJ   r   s    r   r   PredictionContextCache.__len__i   s    4::r   )rJ   N)
r0   r1   r2   r3   r   r
   rP   rN   r   r7   r   r   r   rF   rF   T   s&    ' )' )r   rF   c                      ^  \ rS rSr\S\S\4S j5       rS\S\4U 4S jjrS r	S\4S jr
S\4S	 jrS
 rS rS rSrU =r$ )SingletonPredictionContextm   r8   r9   c                 f    U[         R                  :X  a  U c  [        R                  $ [        X5      $ r   )r
   r%   rW   r   r=   s     r   create!SingletonPredictionContext.createo   s,    +>>>6>-333-fBBr   c                 R   > [        X5      n[        TU ]	  U5        Xl        X l        g r   )r>   superr   	parentCtxr9   )r   r8   r9   hashCode	__class__s       r   r   #SingletonPredictionContext.__init__w   s%    $V9"&r   c                     gr"   r   r   s    r   r   "SingletonPredictionContext.__len__}   r   r   r(   c                     U R                   $ r   )r^   r*   s     r   	getParent$SingletonPredictionContext.getParent   s    ~~r   c                     U R                   $ r   )r9   r*   s     r   r#   )SingletonPredictionContext.getReturnState   s    r   c                     XL a  gUc  g[        U[        5      (       d  gU R                  UR                  :H  =(       a    U R                  UR                  :H  $ NTF)
isinstancerW   r9   r^   r   others     r   __eq__!SingletonPredictionContext.__eq__   sL    =]E#=>>##u'8'88^T^^u=^^r   c                     U R                   $ r   r   r   s    r   r-   #SingletonPredictionContext.__hash__   r/   r   c                     U R                   c  SO[        U R                   5      n[        U5      S:X  a0  U R                  U R                  :X  a  g[        U R                  5      $ [        U R                  5      S-   U-   $ )Nr;   r   $ )r^   strr$   r9   r%   )r   ups     r   __str__"SingletonPredictionContext.__str__   si    >>)Rs4>>/Br7A:4#:#::4++,,t''(3.33r   )r^   r9   )r0   r1   r2   r3   staticmethodr
   r6   rZ   r   r   re   r#   rn   r-   rw   r7   __classcell__r`   s   @r   rW   rW   m   sn    C' Cc C C'/ 'S 'c  3  _#4 4r   rW   c                   @   ^  \ rS rSrU 4S jrS rS rS rS rSr	U =r
$ )EmptyPredictionContext   c                 B   > [         TU ]  S [        R                  5        g r   )r]   r   r
   r%   )r   r`   s    r   r   EmptyPredictionContext.__init__   s    0CCDr   c                     g)NTr   r   s    r   r   EmptyPredictionContext.isEmpty   s    r   c                     XL $ r   r   rl   s     r   rn   EmptyPredictionContext.__eq__   s
    }r   c                     U R                   $ r   r   r   s    r   r-   EmptyPredictionContext.__hash__   r/   r   c                     g)Nrs   r   r   s    r   rw   EmptyPredictionContext.__str__   s    r   r   )r0   r1   r2   r3   r   r   rn   r-   rw   r7   rz   r{   s   @r   r}   r}      s"    E# r   r}   c                   n   ^  \ rS rSrS\S\4U 4S jjrS rS rS\4S jr	S\4S	 jr
S
 rS rS rSrU =r$ )ArrayPredictionContext   r?   r@   c                 N   > [         TU ]  [        X5      5        Xl        X l        g r   )r]   r   rD   r?   r@   )r   r?   r@   r`   s      r   r   ArrayPredictionContext.__init__   s!    /FG(r   c                 B    U R                   S   [        R                  :H  $ r   )r@   r
   r%   r   s    r   r   ArrayPredictionContext.isEmpty   s!       #%6%I%IIIr   c                 ,    [        U R                  5      $ r   )r$   r@   r   s    r   r   ArrayPredictionContext.__len__   s    4$$%%r   r(   c                      U R                   U   $ r   )r?   r*   s     r   re    ArrayPredictionContext.getParent   s    ||E""r   c                      U R                   U   $ r   )r@   r*   s     r   r#   %ArrayPredictionContext.getReturnState   s      ''r   c                     XL a  g[        U[        5      (       d  g[        U 5      [        U5      :w  a  gU R                  UR                  :H  =(       a    U R                  UR                  :H  $ rj   )rk   r   r<   r@   r?   rl   s     r   rn   ArrayPredictionContext.__eq__   sW    =E#9::$Z4;&$$e&8&88XT\\5===XXr   c                    U R                  5       (       a  g[        5        nUR                  S5        [        S[	        U R
                  5      5       H  nUS:  a  UR                  S5        U R
                  U   [        R                  :X  a  UR                  S5        MN  UR                  [        U R
                  U   5      5        U R                  U   b:  UR                  S5        UR                  [        U R                  U   5      5        M  UR                  S5        M     UR                  S5        UR                  5       sS S S 5        $ ! , (       d  f       g = f)	Nz[][r   z, rs   rt   null])r   r   writeranger$   r@   r
   r%   ru   r?   getvalue)r   bufis      r   rw   ArrayPredictionContext.__str__   s    <<>>Z3IIcN1S!2!234Q3IIdO$$Q'):)M)MMIIcN		#d//234<<?.IIcNIIc$,,q/23IIf% 5 IIcN<<> ZZs   D%E
Ec                     U R                   $ r   r   r   s    r   r-   ArrayPredictionContext.__hash__   r/   r   )r?   r@   )r0   r1   r2   r3   listr   r   r   r6   re   r#   rn   rw   r-   r7   rz   r{   s   @r   r   r      sN    
)t )$ )
J
&#c #(3 (Y"(# #r   r   NatnouterContextc                 T   Uc  [         R                  nUR                  b  U[         R                  L a  [        R                  $ [	        XR                  5      nU R
                  UR                     nUR                  S   n[        R                  X$R                  R                  5      $ r   )r   r   r^   r
    PredictionContextFromRuleContextstatesinvokingStatetransitionsrW   rZ   followStatestateNumber)r   r   r8   state
transitions        r   r   r      s    "(( %9J9J)J &&& .c3I3IJFJJ|112E""1%J%,,V5K5K5W5WXXr   abrootIsWildcard
mergeCachec                    X:X  a  U $ [        U [        5      (       a!  [        U[        5      (       a  [        XX#5      $ U(       a.  [        U [        5      (       a  U $ [        U[        5      (       a  U$ [        U [        5      (       a"  [	        U R
                  /U R                  /5      n [        U[        5      (       a"  [	        UR
                  /UR                  /5      n[        XX#5      $ r   )rk   rW   mergeSingletonsr}   r   r^   r9   mergeArrays)r   r   r   r   s       r   merger      s     	t!/00ZC]5^5^q^@@ q022Hq022H 1022"AKK=1==/B1011"AKK=1==/Bq^88r   c                     Ub0  UR                  X4S 5      nUb  U$ UR                  X4S 5      nUb  U$ [        XU5      nUb
  Ub  XSX4'   U$ U R                  UR                  :X  al  [        U R                  UR                  X#5      nX`R                  :X  a  U $ XaR                  :X  a  U$ [
        R                  X`R                  5      nUb  XSX4'   U$ S nXL d'  U R                  b&  U R                  UR                  :X  a  U R                  nUbb  U R                  UR                  /nU R                  UR                  :  a  UR                  U R                  /nXw/n	[        X5      nUb  XSX4'   U$ U R                  UR                  /nU R                  UR                  /n	U R                  UR                  :  a0  UR                  U R                  /nUR                  U R                  /n	[        X5      nUb  XSX4'   U$ r   )rN   	mergeRootr9   r   r^   rW   rZ   r   )
r   r   r   r   previousmergedr8   singleParentpayloadsr?   s
             r   r   r   4  s   >>1%.O>>1%.Oq^,F!!'v}}amm#q{{AKKL[[ H[[ H
 ,226==I!!'v 6akk-!++q{{2J;;L#7H}}q}},]]AMM;#2G+G>F%%+A6"M ]]AMM3KK.==1==(7HQ[[2G':!!'vr   c                 :   U(       aJ  U [         R                  :X  a  [         R                  $ U[         R                  :X  a  [         R                  $  g U [         R                  :X  a$  U[         R                  :X  a  [         R                  $ U [         R                  :X  a5  UR                  [         R                  /nUR                  S /n[        XC5      $ U[         R                  :X  a5  U R                  [         R                  /nU R                  S /n[        XC5      $ g r   )r
   r   r9   r%   r^   r   )r   r   r   r   r?   s        r   r   r     s    !'''$***!'''$*** (  !'''A1B1H1H,H$***#)))(9(L(LNHT+G)'<<#)))(9(L(LNHT+G)'<<r   c                 x   Ub0  UR                  X4S 5      nUb  U$ UR                  X4S 5      nUb  U$ SnSnSnS /[        U R                  5      [        UR                  5      -   -  nS /[        U5      -  n	U[        U R                  5      :  Gao  U[        UR                  5      :  GaU  U R                  U   n
UR                  U   nU R                  U   UR                  U   :X  a  U R                  U   nU[        R
                  :H  =(       a    U
S L =(       a    US L nU
S L=(       a    US L=(       a    X:H  nU(       d  U(       a	  XU'   XU'   O[        XX#5      nXU'   XU'   US-  nUS-  nOUU R                  U   UR                  U   :  a  XU'   U R                  U   X'   US-  nOXU'   UR                  U   X'   US-  nUS-  nU[        U R                  5      :  a  U[        UR                  5      :  a  GMU  U[        U R                  5      :  aN  [        U[        U R                  5      5       H*  nU R                  U   X'   U R                  U   X'   US-  nM,     OM[        U[        UR                  5      5       H*  nUR                  U   X'   UR                  U   X'   US-  nM,     U[        U	5      :  a7  US:X  a'  [        R                  U	S   US   5      nUb  UX0U4'   U$ U	SU n	USU n[        X5      nUU :X  a
  Ub  XX4'   U $ UU:X  a
  Ub  XX4'   U$ [        U	5        Ub  UX0U4'   U$ )Nr   r   )rN   r$   r@   r?   r
   r%   r   r   rW   rZ   r   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     sm   >>1%.O>>1%.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HZEe#+a (/1%$XT#/a (/1%FAFA^^Aq~~a00'!$%NN1$5!FA'!$%NN1$5!FA	Q7 C
Ac!..&9$9< 	3q~~q#ann-.A yy|M$%NN1$5!FA /
 q#ann-.A yy|M$%NN1$5!FA / 	3}6/66}Q7GI[\]I^_F%$*
a5!M%a*/!4#MFF qy! !uqy! !u'"
a5Mr   c                     [        5       n[        S[        U 5      5       H   nX   nUR                  US 5      b  M  X1U'   M"     [        S[        U 5      5       H  nXU      X'   M     g r   )rI   r   r$   rN   )r?   uniqueParentsr   r8   s       r   r   r     se    FM1c'l#VT*2$*&! $
 1c'l#"1:.
 $r   contextcontextCachevisitedc                 0   U R                  5       (       a  U $ UR                  U 5      nUb  U$ UR                  U 5      nUb  X2U '   U$ SnS /[        U 5      -  n[        S[        U5      5       Hy  n[	        U R                  U5      X5      nU(       d  XpR                  U5      Ld  M:  U(       d4  [        [        U 5      5       Vs/ s H  oR                  U5      PM     nnSnXuU'   M{     U(       d  UR                  U 5        XU '   U $ S n	[        U5      S:X  a  [        R                  n	OM[        U5      S:X  a)  [        R                  US   U R                  S5      5      n	O[        XPR                  5      n	UR                  U	5        XU	'   XU '   U	$ s  snf )NFr   Tr   )r   rN   r$   r   getCachedPredictionContextre   rP   r
   r   rW   rZ   r#   r   r@   )
r   r   r   rO   changedr?   r   r8   r   updateds
             r   r   r   "  s~   {{7#H(H#Gfs7|#G1c'l#+G,=,=a,@,Xf$5$5a$889>s7|9LM9LA,,Q/9LMAJ $ !"G
7|q#))	W	,33GAJ@V@VWX@YZ(2F2FGWGGN) Ns   Fnodesc                 L   Uc  [        5       n[        XU5      $ Uc  [        5       n[        XU5      $ U b  UR                  U S 5      b  U$ UR	                  X 5        UR                  U 5        [        S[        U 5      5       H  n[        U R                  U5      X5        M      U$ r   )	r   getAllContextNodesrI   rN   putrP   r   r$   re   )r   r   r   r   s       r   r   r   `  s    }!''::	&!''::?gkk'48DLG%		'q#g,'Aw003UD (r   r   )NN)ior   antlr4.error.Errorsr   antlr4.RuleContextr   antlr4.atn.ATNr   antlr4.atn.ATNStater   objectr
   r6   r>   rD   rF   rW   r}   r   r   r   boolrI   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   