
    NgV                         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	 d dl
mZ d dlT d dlT d dlT d dlmZ  ed	          Z ed
          ZeegZdZeZ G d de          ZdS )    )UUID)StringIO)Callable)Token)ATN)ATNType)*)ATNDeserializationOptionsz$AADB8D7E-AEEF-4415-AD2B-8204D6CF042Ez$59627784-3BE5-417A-B9EB-8131A7286089   c                   ,   e Zd ZdZdYdefdZdedefdZdefd	Z	defd
Z
d Zd Zd ZdefdZdefdZdefdZdededeg ef         fdZdedefdZdefdZdefdZdefdZdedefdZdedefdZdefdZdefdZdYdefd Z d! Z!d" Z"d# Z#d$ Z$d% d& d' d( d) d* d+ d, d- d. d/ gZ%ded0ed1ed2ed3ed4ed5edefd6Z&d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC gZ'd0edDefdEZ(dFZ)dGZ*dHZ+dIZ,dJZ-dKZ.dLZ/dMZ0dN dO dP dQ dR dS dT dU gZ1d0edVedWefdXZ2dS )ZATNDeserializer)deserializationOptionsdataposuuidNoptionsc                 0    |t           j        }|| _        d S N)r
   defaultOptionsr   )selfr   s     V/var/www/html/ai-engine/env/lib/python3.11/site-packages/antlr4/atn/ATNDeserializer.py__init__zATNDeserializer.__init__$   s    ?/>G&-###    feature
actualUuidc                     t                               |          }|dk     rdS t                               |          }||k    S )Nr   F)SUPPORTED_UUIDSindex)r   r   r   idx1idx2s        r   isFeatureSupportedz"ATNDeserializer.isFeatureSupported5   s@    $$W--665$$Z00t|r   r   c                 D   |                      |           |                                  |                                  |                                 }|                     |           |                     |           |                     |           g }|                     ||| j                   | 	                    t          | j                  r|                     ||| j                   |                     ||           |                     |           |                     |           |                     |           |                     |           | j        j        r?|j        t*          j        k    r*|                     |           |                     |           |S r   )resetcheckVersion	checkUUIDreadATN
readStates	readRules	readModesreadSetsreadIntr!   ADDED_UNICODE_SMPr   	readInt32	readEdgesreadDecisionsreadLexerActionsmarkPrecedenceDecisions	verifyATNr   generateRuleBypassTransitionsgrammarTyper   PARSER)r   r   atnsetss       r   deserializezATNDeserializer.deserialize<   su   

4llnnssc4... ""#4di@@ 	5MM#tT^444sD!!!3c"""$$S)))s&D 	 Ow~55..s333NN3
r   c                 v    d fd|D             }t          |d                   |d<   || _        d| _        d S )Nc                 @    t          |           }|dk    r|dz
  n|dz   S )N      i  )ord)cvs     r   adjustz%ATNDeserializer.reset.<locals>.adjustX   s'    AAA##1Q331u9,r   c                 &    g | ]} |          S  rB   ).0r>   r@   s     r   
<listcomp>z)ATNDeserializer.reset.<locals>.<listcomp>[   s!    ***q***r   r   )r=   r   r   )r   r   tempr@   s      @r   r#   zATNDeserializer.resetW   sR    	- 	- 	- +***D***d1g,,Q	r   c                     |                                  }|t          k    r:t          dt          |          z   dz   t          t                    z   dz             d S )Nz'Could not deserialize ATN with version  (expected z).)r+   SERIALIZED_VERSION	Exceptionstr)r   versions     r   r$   zATNDeserializer.checkVersiona   sh    ,,..(((EGTWddgjk}g~g~~  BF  F  G  G  G )(r   c                     |                                  }|t          vrAt          dt          |          z   dz   t          t                    z   dz   |t                    || _        d S )Nz%Could not deserialize ATN with UUID: rG   z or a legacy UUID).)readUUIDr   rI   rJ   SERIALIZED_UUIDr   )r   r   s     r   r%   zATNDeserializer.checkUUIDf   sp    }}&&Cc$iiO)*,/,@,@ACXYZ^`oq q q			r   c                     |                                  }t          j        |          }|                                  }t          ||          S r   )r+   r   fromOrdinalr   )r   idxr4   maxTokenTypes       r   r&   zATNDeserializer.readATNm   s<    llnn)#..||~~;---r   r6   c                    g }g }|                                  }t          d|          D ] }|                                  }|t          j        k    r|                    d            =|                                  }|dk    rd}|                     ||          }|t          j        k    r,|                                  }	|                    ||	f           n@t          |t                    r+|                                  }
|                    ||
f           |                    |           |D ] }|j
        |d                  |d         _        !|D ] }|j
        |d                  |d         _        !|                                  }t          d|          D ](}|                                  }d|j
        |         _        )|                                  }t          d|          D ](}|                                  }d|j
        |         _        )d S )Nr     r;   T)r+   rangeATNStateINVALID_TYPEaddStatestateFactoryLOOP_ENDappend
isinstanceBlockStartStatestatesloopBackStateendState	nonGreedyisPrecedenceRule)r   r6   loopBackStateNumbersendStateNumbersnstatesistype	ruleIndexsloopBackStateNumberendStateNumberpairnumNonGreedyStatesstateNumbernumPrecedenceStatess                  r   r'   zATNDeserializer.readStatess   s   !,,..q'"" 	 	ALLNNEh+++T"""IF""	!!%33A)))&*llnn#$++Q0C,DEEEEA// <!%&&>':;;;LLOOOO ) 	8 	8D$'JtAw$7DG!!# 	3 	3D"z$q'2DG!\\^^q,-- 	5 	5A,,..K04CJ{#--"llnnq-.. 	< 	<A,,..K7;CJ{#44	< 	<r   c                 ,   |                                  }|j        t          j        k    rdg|z  |_        dg|z  |_        t          d|          D ]r}|                                  }|j        |         }||j        |<   |j        t          j        k    r0|                                  }|dk    rt          j	        }||j        |<   sdg|z  |_
        |j        D ]>}t          |t                    s||j
        |j        <   ||j        |j                 _        ?d S )Nr   rT   )r+   r4   r   LEXERruleToTokenTyperuleToStartStaterV   r_   r   EOFruleToStopStater]   RuleStopStateri   	stopState)r   r6   nrulesrg   rj   
startState	tokenTypestates           r   r(   zATNDeserializer.readRules   s   ?gm++#$#,C !sV|q&!! 		3 		3AAAJ&0C #'-// LLNN	&& %	I)2#A& cFlZ 	D 	DEe]33 38C0>CC 1;;		D 	Dr   c                     |                                  }t          d|          D ];}|                                  }|j                            |j        |                    <d S Nr   )r+   rV   modeToStartStater\   r_   )r   r6   nmodesrg   rj   s        r   r)   zATNDeserializer.readModes   s_    q&!! 	7 	7AA ''
16666	7 	7r   r7   readUnicodec           	         |                                  }t          d|          D ]}t                      }|                    |           |                                  }|                                  }|dk    r|                    d           t          d|          D ]<}	 |            }
 |            }|                    t          |
|dz                        =d S )Nr   rU   r;   )r+   rV   IntervalSetr\   addOneaddRange)r   r6   r7   r   mrg   isetncontainsEofji1i2s               r   r*   zATNDeserializer.readSets   s    LLNNq! 
	1 
	1A==DKKA,,..KA~~B1a[[ 1 1 []] []]eBQ//00001
	1 
	1r   c                    |                                  }t          d|          D ]}|                                  }|                                  }|                                  }|                                  }|                                  }	|                                  }
|                     ||||||	|
|          }|j        |         }|                    |           |j        D ]}t          dt          |j                            D ]}|j        |         }t          |t                    s%d}|j	        |j
        j                 j        r|j        dk    r|j
        j        }t          |j        |          }|j        |j
        j                                     |           |j        D ]&}t          |t"                    r=|j        t'          d          |j        j        t'          d          ||j        _        t          |t*                    rTt          dt          |j                            D ]0}|j        |         j
        }t          |t,                    r||_        1t          |t0                    rSt          dt          |j                            D ]0}|j        |         j
        }t          |t2                    r||_        1(d S )Nr   rU   IllegalState)r+   rV   edgeFactoryr_   addTransitionlentransitionsr]   RuleTransitionrt   targetri   rc   
precedenceEpsilonTransitionfollowStaterv   r^   ra   rI   rz   PlusLoopbackStatePlusBlockStartStater`   StarLoopbackStateStarLoopEntryState)r   r6   r7   nedgesrg   srctrgttypearg1arg2arg3transsrcStater|   toutermostPrecedenceReturnr   s                    r   r.   zATNDeserializer.readEdges   s   q&!! 		* 		*A,,..C,,..CLLNNE<<>>D<<>>D<<>>D$$S%c4tTRREz#H""5)))) Z 
	M 
	ME1c%"34455 	M 	M%a(!!^44 ,.)'(:;L G|q((45H4F1)!-9RSS#AH$67EEeLLLL	M Z 	5 	5E%11 2>)#N333>,8#N333,1)%!233 	5q#e&7"8"899 5 5A".q18F!&*=>> 5/4,5 E#455 5q#e&7"8"899 5 5A".q18F!&*<== 5/4,'	5 	5r   c                     |                                  }t          d|          D ]D}|                                  }|j        |         }|j                            |           ||_        Ed S r~   )r+   rV   r_   decisionToStater\   decision)r   r6   
ndecisionsrg   rj   decStates         r   r/   zATNDeserializer.readDecisions   sl    \\^^
q*%% 	" 	"AAz!}H&&x000 !H		" 	"r   c                 r   |j         t          j        k    r|                                 }d g|z  |_        t          d|          D ]q}|                                 }|                                 }|dk    rd}|                                 }|dk    rd}|                     |||          }||j        |<   pd S d S )Nr   rT   rU   )r4   r   rr   r+   lexerActionsrV   lexerActionFactory)r   r6   countrg   
actionTypedata1data2lexerActions           r   r0   z ATNDeserializer.readLexerActions   s    ?gm++LLNNE!%x%/C1e__ 	2 	2!\\^^
F??EF??E"55j%OO&1 ## ,+	2 	2r   c                     t          |j                  }dg|z  |_        t          d|          D ]}|j        |z   dz   |j        |<   t          d|          D ]}|                     ||           d S )Nr   r;   )r   rt   rs   rV   rR   generateRuleBypassTransition)r   r6   r   rg   s       r   r3   z-ATNDeserializer.generateRuleBypassTransitions  s    C()) !eemq% 	> 	>A%(%5%9A%=C""q% 	6 	6A--c15555	6 	6r   rQ   c                 X   t                      }||_        |                    |           t                      }||_        |                    |           ||_        |                    |           ||_        d }|j        |         j        rJd }|j	        D ].}| 
                    ||          r|}|j        j        d         } n/|t          d          n|j        |         }|j	        D ]%}|j        D ]}||k    r	|j        |k    r||_        &|j        |         }	t!          |	j                  }
|
dk    r1|                    |	j        |
dz
                      |	j        d= |
dk    1|j        |                             t%          |                     |                    t%          |                     t'                      }|                    |           |                    t)          ||j        |                              |                    t%          |                     d S )Nr   zDCouldn't identify final state of the precedence rule prefix section.r;   rU   )BasicBlockStartStateri   rY   BlockEndStatera   defineDecisionStaterz   rt   rc   r_   stateIsEndStateForr`   r   rI   rv   r   r   r   r   
BasicStateAtomTransitionrs   )r   r6   rQ   bypassStart
bypassStopexcludeTransitionra   r|   
transitionrt   r   
matchStates               r   r   z,ATNDeserializer.generateRuleBypassTransition  sZ   *,, #[!!!"__
"
Z   ),,, +
 $5 	0H  **5#66 $H(-(;(G(J%E
 !( fggg )
 *3/H Z 	3 	3E#/ 3 3
!222$00(2J%	3 /4$011aii%%&6&B57&KLLL ,R0 aii
 	S!//0A+0N0NOOO  !28!<!<===\\
Z     
C<OPS<T!U!UVVV!!"3J"?"?@@@@@r   r|   c                 &   |j         |k    rd S t          |t                    sd S |j        t	          |j                  dz
           j        }t          |t                    sd S |j        r't          |j        d         j        t                    r|S d S )Nr;   r   )	ri   r]   r   r   r   r   LoopEndStateepsilonOnlyTransitionsrw   )r   r|   rQ   maybeLoopEndStates       r   r   z"ATNDeserializer.stateIsEndStateForR  s    ?c!!4%!344 	4!-c%2C.D.Dq.HIP+\:: 	43 	,8;BMRR	L4r   c                 R   |j         D ]}t          |t                    s|j        |j                 j        ro|j        t          |j                  dz
           j        }t          |t                    r3|j
        r,t          |j        d         j        t                    rd|_        d S )Nr;   r   T)r_   r]   r   rt   ri   rc   r   r   r   r   r   rw   isPrecedenceDecision)r   r6   r|   r   s       r   r1   z'ATNDeserializer.markPrecedenceDecisionsj  s    Z 	: 	:Ee%788  #EO4E :$)$5c%:K6L6Lq6P$Q$X!/>> :(? :&'8'DQ'G'NP]^^:592	: 	:r   c                 R   | j         j        sd S |j        D ]}||                     |j        pt          |j                  dk               t          |t                    r|                     |j	        d u           t          |t                    rG|                     |j	        d u           |                     t          |j                  dk               t          |j        d         j        t                    rT|                     t          |j        d         j        t                               |                     |j                    nt          |j        d         j        t                    rS|                     t          |j        d         j        t                               |                     |j                   nt          d          t          |t                     rc|                     t          |j                  dk               |                     t          |j        d         j        t                               t          |t                    r|                     |j	        d u           t          |t"                    r|                     |j        d u           t          |t&                    r|                     |j        d u           t          |t*                    r|                     |j        d u           t          |t.                    r8|                     t          |j                  dk    p
|j        dk               O|                     t          |j                  dk    pt          |t2                               d S )Nr;   r<   r   r   )r   r2   r_   checkConditionr   r   r   r]   r   r`   r   r   StarBlockStartStater   rb   rI   r   RuleStartStaterx   r^   ra   r   rz   DecisionStater   rw   )r   r6   r|   s      r   r2   zATNDeserializer.verifyATNz  sY   *4 	FZ )	e )	eE} < [EDU@V@VZ[@[\\\%!455 E##E$7t$CDDD%!344 4##E$7t$CDDD##C(9$:$:a$?@@@e/29;NOO 4''
53DQ3G3NP\(](]^^^''EO(;<<<< 1! 4 ;\JJ 4''
53DQ3G3NPc(d(deee''8888#N333%!233 a##C(9$:$:a$?@@@##Ju/@/C/JL^$_$_```%.. E##E$7t$CDDD%00 A##EO4$?@@@%11 @##EN$$>???%// B##E$4D$@AAA%// e##C(9$:$:a$?$V5>UVCVWWWW##C(9$:$:a$?$c:eUbCcCcddddS)	e )	er   	conditionc                 0    |s|d}t          |          d S )Nr   )rI   )r   r   messages      r   r   zATNDeserializer.checkCondition  s,     	%(G$$$	% 	%r   c                 J    | j         | j                 }| xj        dz  c_        |S )Nr;   )r   r   )r   rg   s     r   r+   zATNDeserializer.readInt  s$    IdhAr   c                 b    |                                  }|                                  }||dz  z  S )N   )r+   r   lowhighs      r   r-   zATNDeserializer.readInt32  s+    llnn||~~dbj!!r   c                 h    |                                  }|                                  }|dz  |dz  z  S )Nl        )r-   r   s      r   readLongzATNDeserializer.readLong  s5    nn~~((TRZ88r   c                     |                                  }|                                  }|dz  |dz  z  }t          |          S )Nl    @   )int)r   r   )r   r   r   allBitss       r   rM   zATNDeserializer.readUUID  sA    mmoo}}++
;    r   c                     d S r   rB   )argss    r   <lambda>zATNDeserializer.<lambda>  s    D r   c                      t          |          S r   )r   r6   r   r   r   r   r   r7   r   s           r   r   zATNDeserializer.<lambda>  s    M^_eMfMf r   c                 f    |dk    rt          |t          j        |          nt          |||          S r~   )RangeTransitionr   ru   r   s           r   r   zATNDeserializer.<lambda>  s5    DHAII	4@@@SbcikoquSvSv r   c                 <    t          | j        |         |||          S r   )r   r_   r   s           r   r   zATNDeserializer.<lambda>  s    &sz$'7tVLL r   c                 .    t          ||||dk              S r~   )PredicateTransitionr   s           r   r   zATNDeserializer.<lambda>  s    +FD$	JJ r   c                 b    |dk    rt          |t          j                  nt          ||          S r~   )r   r   ru   r   s           r   r   zATNDeserializer.<lambda>  s/    =AQYYvuy999N[acgLhLh r   c                 .    t          ||||dk              S r~   )ActionTransitionr   s           r   r   zATNDeserializer.<lambda>  s    (tTQYGG r   c                 .    t          |||                   S r   )SetTransitionr   s           r   r   zATNDeserializer.<lambda>  s    %fd4j99 r   c                 .    t          |||                   S r   )NotSetTransitionr   s           r   r   zATNDeserializer.<lambda>  s    (d<< r   c                      t          |          S r   )WildcardTransitionr   s           r   r   zATNDeserializer.<lambda>  s    *622 r   c                 "    t          ||          S r   )PrecedencePredicateTransitionr   s           r   r   zATNDeserializer.<lambda>  s    5fdCC r   typer   r   r   r   r   c	           
          |j         |         }	|t          | j                  k    s| j        |         "t          dt	          |          z   dz              | j        |         ||||||||	          S )NzThe specified transition type:  is not valid.)r_   r   edgeFactoriesrI   rJ   )
r   r6   r   r   r   r   r   r   r7   r   s
             r   r   zATNDeserializer.edgeFactory  sw    C#d())))T-?-E-M=D		IL\\]]]+4%d+Cc4tTSYZZZr   c                      d S r   rB   rB   r   r   r   zATNDeserializer.<lambda>  s     r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>  s
     r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>  s    !1!1 r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>  s    !5!7!7 r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>      !4!6!6 r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>  r   r   c                      t                      S r   )TokensStartStaterB   r   r   r   zATNDeserializer.<lambda>  s    !1!3!3 r   c                      t                      S r   )rw   rB   r   r   r   zATNDeserializer.<lambda>  
     r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>  r   r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>      !2!4!4 r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>  s    !3!5!5 r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>  r  r   c                      t                      S r   )r   rB   r   r   r   zATNDeserializer.<lambda>  s
     r   ri   c                     |t          | j                  k    s| j        |         "t          dt          |          z   dz              | j        |                     }|||_        |S )NzThe specified state type r   )r   stateFactoriesrI   rJ   ri   )r   r   ri   rj   s       r   rZ   zATNDeserializer.stateFactory  sk    T())))T-@-F-N7#d))CFVVWWW)#D)++A}'r   r   r;   r<   r               c                      t          |           S r   )LexerChannelActionr   r   s     r   r   zATNDeserializer.<lambda>  s    -?-F-F r   c                 "    t          | |          S r   )LexerCustomActionr  s     r   r   zATNDeserializer.<lambda>  s    ->ue-L-L r   c                      t          |           S r   )LexerModeActionr  s     r   r   zATNDeserializer.<lambda>      _U-C-C r   c                     t           j        S r   )LexerMoreActionINSTANCEr  s     r   r   zATNDeserializer.<lambda>  	    _-E r   c                     t           j        S r   )LexerPopModeActionr  r  s     r   r   zATNDeserializer.<lambda>  s
    -?-H r   c                      t          |           S r   )LexerPushModeActionr  s     r   r   zATNDeserializer.<lambda>  s    -@-G-G r   c                     t           j        S r   )LexerSkipActionr  r  s     r   r   zATNDeserializer.<lambda>  r  r   c                      t          |           S r   )LexerTypeActionr  s     r   r   zATNDeserializer.<lambda>	  r  r   r   r   c                     |t          | j                  k    s| j        |         "t          dt          |          z   dz              | j        |         ||          S )Nz The specified lexer action type r   )r   actionFactoriesrI   rJ   )r   r   r   r   s       r   r   z"ATNDeserializer.lexerActionFactory  s_    #d*++++t/CD/I/Q>TJM]]^^^-4'-eU;;;r   r   )3__name__
__module____qualname__	__slots__r
   r   r   r!   rJ   r8   r#   r$   r%   r&   r   r'   r(   r)   listr   r   r*   r.   r/   r0   r3   r   rW   r   r1   r2   boolr   r+   r-   r   rM   r   r   r  rZ   CHANNELCUSTOMMODEMOREPOP_MODE	PUSH_MODESKIPTYPEr"  r   rB   r   r   r   r   !   sy       AI. .!: . . . ."4 t        6    G G G
  . . .'<S '< '< '< '<RDC D D D D07C 7 7 7 713 1T 1xC7H 1 1 1 1-5C -5d -5 -5 -5 -5^" " " " "23 2 2 2 26 6 6 6 67As 7A 7A 7A 7A 7Atx S    0:# : : : : -eC -e -e -e -e^% %t % % % %  
" " "
9 9 9
! ! ! )(ffw wM MK Ki iH H: := =3 3D D%M,[c [ [ [# [C [c [X[ [bf [ [ [ [ &--11776666330000445544//N s     GFDDHIDDFFLLCCEEHHGGEECCO<c < <C < < < < < <r   r   N)r   r   ior   typingr   antlr4.Tokenr   antlr4.atn.ATNr   antlr4.atn.ATNTyper   antlr4.atn.ATNStateantlr4.atn.Transitionantlr4.atn.LexerAction$antlr4.atn.ATNDeserializationOptionsr
   BASE_SERIALIZED_UUIDr,   r   rH   rN   objectr   rB   r   r   <module>r<     s'  
                               & & & & & & ! ! ! ! # # # # $ $ $ $ J J J J J J tBCC 
 D?@@  )*;=  $p< p< p< p< p<v p< p< p< p< p<r   