
    NgY                        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dS )+    )StringIOIllegalStateException)RuleContext)ATN)ATNStatec                   N    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dS )PredictionContextNi   cachedHashCodec                     || _         d S Nr   )selfr   s     T/var/www/html/ai-engine/env/lib/python3.11/site-packages/antlr4/PredictionContext.py__init__zPredictionContext.__init__4   s    ,    c                     dS Nr    r   s    r   __len__zPredictionContext.__len__7       qr   c                     | | j         u S r   )EMPTYr   s    r   isEmptyzPredictionContext.isEmpty;   s    tz!!r   c                 ^    |                      t          |           dz
            | j        k    S Nr   )getReturnStatelenEMPTY_RETURN_STATEr   s    r   hasEmptyPathzPredictionContext.hasEmptyPath>   s(    ""3t99q=11T5L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
      s        
 E $O	B.-c - - - -  " " "M M M03 0 0 0 0# # # # #r   r
   parentreturnStatec                 `    | t          d          nt          t          |           |f          S )N )hashr/   r0   s     r   calculateHashCoder5   G   s)    ~48884f{0K+L+LLr   parentsreturnStatesc                 t    d}t          | |          D ]$\  }}t          |t          ||          f          }%|S r   )zipr3   r5   )r6   r7   hr/   r0   s        r   calculateListsHashCoder;   J   sI    	A"7L99 > >!&v{;;<==Hr   c                   2    e Zd Zd ZdefdZdefdZd ZdS )PredictionContextCachec                 ,    t                      | _        d S r   )dictcacher   s    r   r   zPredictionContextCache.__init__V   s    VV


r   ctxc                     |t           j        k    rt           j        S | j                            |d           }||S || j        |<   |S r   )r
   r   r@   get)r   rA   existings      r   addzPredictionContextCache.add]   sJ    !'''$**:>>#t,,O
3
r   c                 8    | j                             |d           S r   )r@   rC   )r   rA   s     r   rC   zPredictionContextCache.getf   s    z~~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   sj          '    )' ) ) ) )    r   r=   c                   x     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                 ^    |t           j        k    r| t          j        S t          | |          S r   )r
   r!   rI   r   r4   s     r   createz!SingletonPredictionContext.createo   s.    +>>>6>-33-fkBBBr   c                     t          ||          }t                                          |           || _        || _        d S r   )r5   superr   	parentCtxr0   )r   r/   r0   hashCode	__class__s       r   r   z#SingletonPredictionContext.__init__w   s?    $V[99"""&r   c                     dS 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dS |dS t          |t                    sdS | j        |j        k    o| j        |j        k    S NTF)
isinstancerI   r0   rN   r   others     r   __eq__z!SingletonPredictionContext.__eq__   sR    5==4]5E#=>> 	_5#u'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dS t          | j                  S t          | j                  dz   |z   S )Nr2   r   $ )rN   strr    r0   r!   )r   ups     r   __str__z"SingletonPredictionContext.__str__   sm    >)RRs4>/B/Br77A::4#:::s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   s        C' Cc C C C \C'/ 'S ' ' ' ' ' '  c     3        _ _ _# # #4 4 4 4 4 4 4r   rI   c                   6     e Zd Z fdZd Zd Zd Zd Z xZS )EmptyPredictionContextc                 `    t                                          d t          j                   d S r   )rM   r   r
   r!   )r   rP   s    r   r   zEmptyPredictionContext.__init__   s'    0CDDDDDr   c                     dS )NTr   r   s    r   r   zEmptyPredictionContext.isEmpty   s    tr   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                     dS )Nr]   r   r   s    r   ra   zEmptyPredictionContext.__str__   s    sr   )	r)   r*   r+   r   r   rZ   r'   ra   rc   rd   s   @r   rf   rf      sy        E E E E 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          ||                     || _        || _        d S r   )rM   r   r;   r6   r7   )r   r6   r7   rP   s      r   r   zArrayPredictionContext.__init__   s;    /FFGGG(r   c                 8    | j         d         t          j        k    S r   )r7   r
   r!   r   s    r   r   zArrayPredictionContext.isEmpty   s      #%6%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dS t          |t                    sdS t          |           t          |          k    rdS | j        |j        k    o| j        |j        k    S rV   )rW   rm   r3   r7   r6   rX   s     r   rZ   zArrayPredictionContext.__eq__   sd    5==4E#9:: 	Y5$ZZ4;;&&5$e&88XT\5==XXr   c                     |                                  rdS t                      5 }|                    d           t          dt	          | j                            D ]}|dk    r|                    d           | j        |         t          j        k    r|                    d           N|                    t          | j        |                              | j	        |         C|                    d           |                    t          | j	        |                              |                    d           |                    d           |
                                cd d d            S # 1 swxY w Y   d S )	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   <<>> 	4ZZ 	"3IIcNNN1S!23344 & &Q33IIdOOO$Q'):)MMMIIcNNN		#d/233444<?.IIcNNNIIc$,q/223333IIf%%%%IIcNNN<<>>	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   EE33E7:E7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      s        
)t )$ ) ) ) ) ) )
J J J
& & &#c # # # #(3 ( ( ( (Y Y Y" " "(# # # # # # #r   rm   NatnouterContextc                    |t           j        }|j        |t           j        u rt          j        S t	          | |j                  }| j        |j                 }|j        d         }t          	                    ||j
        j                  S r   )r   r   rN   r
    PredictionContextFromRuleContextstatesinvokingStatetransitionsrI   rK   followStatestateNumber)r   r   r/   state
transitions        r   r   r      s}    "( %9J)J)J && .c<3IJJFJ|12E"1%J%,,VZ5K5WX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     	!tt!/00 AZC]5^5^ Aq!^Z@@@  q022 	Hq022 	H 1022 C"AK=1=/BB1011 C"AK=1=/BBq!^Z888r   c                 <   |8|                     | |fd           }||S |                     || fd           }||S t          | ||          }||||| |f<   |S | j        |j        k    rat          | j        |j        ||          }|| j        k    r| S ||j        k    r|S t
                              || j                  }|||| |f<   |S d }| |u s| j        | j        |j        k    r| j        }|K| j        |j        g}| j        |j        k    r|j        | j        g}||g}	t          |	|          }|||| |f<   |S | j        |j        g}| j        |j        g}	| j        |j        k    r|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}am##q{AKLLQ[  HQ[  H
 ,2261=II!!'J1v 66ak-!+q{2J2J;L#7H}q},,]AM;#\2G+GX>>F%%+
Aq6"M ]AM3K.=1=((7HQ[2G'::!!'J1vr   c                    |r9| t           j        k    rt           j        S |t           j        k    rt           j        S n| t           j        k    r|t           j        k    rt           j        S | t           j        k    r,|j        t           j        g}|j        d g}t          ||          S |t           j        k    r,| j        t           j        g}| j        d g}t          ||          S d S r   )r
   r   r0   r!   rN   rm   )r   r   r   r   r6   s        r   r   r     s     =!'''$**!'''$** ( !'''A1B1H,H,H$**#)))(9(LNHT+G)'8<<<#)))(9(LNHT+G)'8<<<4r   c                 b   |8|                     | |fd           }||S |                     || fd           }||S d}d}d}d gt          | j                  t          |j                  z   z  }d gt          |          z  }	|t          | j                  k     r?|t          |j                  k     r&| j        |         }
|j        |         }| j        |         |j        |         k    ri| j        |         }|t          j        k    o|
d u o|d u }|
d uo	|d uo|
|k    }|s|r|
|	|<   |||<   nt          |
|||          }||	|<   |||<   |dz  }|dz  }nQ| j        |         |j        |         k     r|
|	|<   | j        |         ||<   |dz  }n||	|<   |j        |         ||<   |dz  }|dz  }|t          | j                  k     r|t          |j                  k     &|t          | j                  k     rKt          |t          | j                            D ]'}| j        |         |	|<   | j        |         ||<   |dz  }(nJt          |t          |j                            D ]'}|j        |         |	|<   |j        |         ||<   |dz  }(|t          |	          k     rL|dk    r2t          	                    |	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#6an9M9M#MNFS!3444M
C

Ac!.&9&9$9$99Q<9Q<>!anQ///nQ'G!%6%II B$,B19T1A T)Bhd.BZRZHZE 0e 0#+a (/"1%%$XxTT#/a (/"1%FAFAA^Aq~a000'M!$%N1$5q!FAA'M!$%N1$5q!FA	Q7 C

Ac!.&9&9$9$9< 	3q~q#an--.. 	 	A y|M!$%N1$5q!FAA	
 q#an--.. 	 	A y|M!$%N1$5q!FAA 	3}66/66}Q7GI[\]I^__F%$*
Aa5!M%ac*/!4#M3EFFF qyy! !J!uqyy! !J!u'''"
Aa5Mr   c                 
   t                      }t          dt          |                     D ]%}| |         }|                    |d           |||<   &t          dt          |                     D ]}|| |                  | |<   d S r   )r?   ry   r    rC   )r6   uniqueParentsr   r/   s       r   r   r     s    FFM1c'll## + +VT**2$*M&!1c'll## / /"71:.

/ /r   contextcontextCachevisitedc                 `                                      r S |                               }||S |                               }||| <   |S d}d gt                     z  }t          dt          |                    D ]p}t	                               |          ||          }|s|                     |          ur1|s* fdt          t                               D             }d}|||<   q|s|                                 | <    S d }t          |          dk    rt          j        }n]t          |          dk    r5t          
                    |d                              d                    }nt          | j                  }|                    |           |||<   || <   |S )NFr   c                 :    g | ]}                     |          S r   )rS   ).0r   r   s     r   
<listcomp>z.getCachedPredictionContext.<locals>.<listcomp>2  s'    MMMA7,,Q//MMMr   Tr   )r   rC   r    ry   getCachedPredictionContextrS   rE   r
   r   rI   rK   r   rm   r7   )	r   r   r   rD   changedr6   r|   r/   updateds	   `        r   r   r   "  s    {{7##H((H#Gfs7||#G1c'll##    +G,=,=a,@,@,PWXX 	 fG$5$5a$8$888 MMMMs7||9L9LMMMGAJ !!!"G
7||q#)	W		,33GAJ@V@VWX@Y@YZZ('2FGGWGGGGNr   nodesc                    |t                      }t          | ||          S |t                      }t          | ||          S | |                    | d           |S |                    | |            |                    |            t          dt          |                     D ]&}t          |                     |          ||           '|S r   )	r~   getAllContextNodesr?   rC   putrE   ry   r    rS   )r   r   r   r|   s       r   r   r   `  s    }!'5':::	&&!'5':::?gkk'488DLGW%%%		'q#g,,'' 	E 	EAw0033UGDDDD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 5 5 5 5 5 * * * * * *       ( ( ( ( ( (6# 6# 6# 6# 6# 6# 6# 6#pM. MC M M M M2 B        V   2.4 .4 .4 .4 .4!2 .4 .4 .4b    7   $ 1022  7# 7# 7# 7# 7#. 7# 7# 7#|Y Y Y; Y Y Y Y 9 9!2 94 9TX 9 9 9 9h80 84N 8_c 8pt 8 8 8 8B* .H Y]    NT( T,B TSW Tdh T T T Tv	/ 	/ 	/ 	/ 	/$'8 $G] $gk $ $ $ $| 0  4      r   