
    <iV                         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K
Jr  S SK7  S SK7  S SK7  S SKJr  \" S	5      r\" S
5      r\\/rSr\r " S S\5      rg)    )UUID)StringIO)Callable)Token)ATN)ATNType)*)ATNDeserializationOptionsz$AADB8D7E-AEEF-4415-AD2B-8204D6CF042Ez$59627784-3BE5-417A-B9EB-8131A7286089   c                   X   \ rS rSrSrS[S\4S jjrS\S\4S jrS	\	4S
 jr
S	\	4S jrS rS rS rS\4S jrS\4S jrS\4S jrS\S\S\/ \4   4S jrS\S\4S jrS\4S jrS\4S jrS\4S jrS\S\4S jrS\S\4S jrS\4S jrS\4S jrS[S \ 4S! jjr!S" r"S# r#S$ r$S% r%S& S' S( S) S* S+ S, S- S. S/ S0 /r&S\S1\S2\S3\S4\S5\S6\S\4S7 jr'S8 S9 S: S; S< S= S> S? S@ SA SB SC SD /r(S1\SE\4SF jr)SGr*SHr+SIr,SJr-SKr.SLr/SMr0SNr1SO SP SQ SR SS ST SU SV /r2S1\SW\SX\4SY jr3SZr4g)\ATNDeserializer!   )deserializationOptionsdataposuuidNoptionsc                 6    Uc  [         R                  nXl        g N)r
   defaultOptionsr   )selfr   s     T/home/james-whalen/.local/lib/python3.13/site-packages/antlr4/atn/ATNDeserializer.py__init__ATNDeserializer.__init__$   s    ?/>>G&-#    feature
actualUuidc                 l    [         R                  U5      nUS:  a  g[         R                  U5      nXC:  $ )Nr   F)SUPPORTED_UUIDSindex)r   r   r   idx1idx2s        r   isFeatureSupported"ATNDeserializer.isFeatureSupported5   s4    $$W-6$$Z0|r   r   c                    U R                  U5        U R                  5         U R                  5         U R                  5       nU R	                  U5        U R                  U5        U R                  U5        / nU R                  X#U R                  5        U R                  [        U R                  5      (       a  U R                  X#U R                  5        U R                  X#5        U R                  U5        U R                  U5        U R!                  U5        U R#                  U5        U R$                  R&                  (       a@  UR(                  [*        R,                  :X  a"  U R'                  U5        U R#                  U5        U$ 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   deserializeATNDeserializer.deserialize<   s   

4llnssc. ""#4dii@@MM#T^^4s!3c"$$S)s&&DDOOw~~5..s3NN3
r   c                 ~    S nU Vs/ s H
  o2" U5      PM     nn[        US   5      US'   X@l        SU l        g s  snf )Nc                 8    [        U 5      nUS:  a  US-
  $ US-   $ )N      i  )ord)cvs     r   adjust%ATNDeserializer.reset.<locals>.adjustX   s$    AAA#1Q3,1u9,r   r   )rA   r   r   )r   r   rD   rB   temps        r   r&   ATNDeserializer.resetW   sC    	- %)*DqD*d1g,Q		 +s   :c                     U R                  5       nU[        :w  a-  [        S[        U5      -   S-   [        [        5      -   S-   5      eg )Nz'Could not deserialize ATN with version  (expected z).)r.   SERIALIZED_VERSION	Exceptionstr)r   versions     r   r'   ATNDeserializer.checkVersiona   sU    ,,.((EGTWddgjk}g~~  BF  F  G  G )r   c                     U R                  5       nU[        ;  a3  [        S[        U5      -   S-   [        [        5      -   S-   U[        5      eXl        g )Nz%Could not deserialize ATN with UUID: rI   z or a legacy UUID).)readUUIDr   rK   rL   SERIALIZED_UUIDr   )r   r   s     r   r(   ATNDeserializer.checkUUIDf   sZ    }}&Cc$iO)*,/,@ACXYZ^`oq q	r   c                     U R                  5       n[        R                  " U5      nU R                  5       n[        X#5      $ r   )r.   r   fromOrdinalr   )r   idxr7   maxTokenTypes       r   r)   ATNDeserializer.readATNm   s3    lln))#.||~;--r   r9   c                    / n/ nU R                  5       n[        SU5       H  nU R                  5       nU[        R                  :X  a  UR	                  S 5        M:  U R                  5       nUS:X  a  SnU R                  Xg5      nU[        R                  :X  a#  U R                  5       n	UR                  X45        O7[        U[        5      (       a"  U R                  5       n
UR                  X45        UR	                  U5        M     U H  nUR                  US      US   l        M     U H  nUR                  US      US   l        M     U R                  5       n[        SU5       H'  nU R                  5       nSUR                  U   l        M)     U R                  5       n[        SU5       H'  nU R                  5       nSUR                  U   l        M)     g )Nr     r?   T)r.   rangeATNStateINVALID_TYPEaddStatestateFactoryLOOP_ENDappend
isinstanceBlockStartStatestatesloopBackStateendState	nonGreedyisPrecedenceRule)r   r9   loopBackStateNumbersendStateNumbersnstatesistype	ruleIndexsloopBackStateNumberendStateNumberpairnumNonGreedyStatesstateNumbernumPrecedenceStatess                  r   r*   ATNDeserializer.readStatess   s   !,,.q'"ALLNEh+++T"IF"	!!%3A)))&*lln#$++Q,DEA//!%&&':;LLO% #* )D$'JJtAw$7DG! ) $D"zz$q'2DG $ "\\^q,-A,,.K04CJJ{#- . #llnq-.A,,.K7;CJJ{#4 /r   c                    U R                  5       nUR                  [        R                  :X  a  S/U-  Ul        S/U-  Ul        [        SU5       H  nU R                  5       nUR                  U   nXQR
                  U'   UR                  [        R                  :X  d  MP  U R                  5       nUS:X  a  [        R                  nXaR                  U'   M     S/U-  Ul
        UR                   HO  n[        U[        5      (       d  M  XqR                  UR                  '   XqR
                  UR                     l        MQ     g )Nr   rY   )r.   r7   r   LEXERruleToTokenTyperuleToStartStater[   rd   r   EOFruleToStopStaterb   RuleStopStatern   	stopState)r   r9   nrulesrl   ro   
startState	tokenTypestates           r   r+   ATNDeserializer.readRules   s    ??gmm+#$#,C !sV|q&!AAAJ&0  #'--/ LLN	& %		I)2##A& "  !cFlZZEe]33380>C  1;	  r   c                     U R                  5       n[        SU5       H;  nU R                  5       nUR                  R                  UR                  U   5        M=     g Nr   )r.   r[   modeToStartStatera   rd   )r   r9   nmodesrl   ro   s        r   r,   ATNDeserializer.readModes   sE    q&!AA  ''

16 "r   r:   readUnicodec           	      j   U R                  5       n[        SU5       H  n[        5       nUR                  U5        U R                  5       nU R                  5       nUS:w  a  UR	                  S5        [        SU5       H.  n	U" 5       n
U" 5       nUR                  [        XS-   5      5        M0     M     g )Nr   rZ   r?   )r.   r[   IntervalSetra   addOneaddRange)r   r9   r:   r   mrl   isetncontainsEofji1i2s               r   r-   ATNDeserializer.readSets   s    LLNq!A=DKKA,,.KA~B1a[ ] ]eBQ/0 ! r   c                 ,   U R                  5       n[        SU5       H  nU R                  5       nU R                  5       nU R                  5       nU R                  5       nU R                  5       n	U R                  5       n
U R                  XXVXX5      nUR                  U   nUR	                  U5        M     UR                   H  n[        S[        UR                  5      5       H  nUR                  U   n[        U[        5      (       d  M)  SnUR                  UR                  R                     R                  (       a&  UR                  S:X  a  UR                  R                  n[        UR                  U5      nUR                   UR                  R                     R	                  U5        M     M     UR                   GHK  n[        U["        5      (       aJ  UR$                  c  ['        S5      eUR$                  R(                  b  ['        S5      eXR$                  l        [        U[*        5      (       a_  [        S[        UR                  5      5       H:  nUR                  U   R                  n[        U[,        5      (       d  M3  UUl        M<     M  [        U[0        5      (       d  M  [        S[        UR                  5      5       H:  nUR                  U   R                  n[        U[2        5      (       d  M3  UUl        M<     GMN     g )Nr   rZ   IllegalState)r.   r[   edgeFactoryrd   addTransitionlentransitionsrb   RuleTransitionrz   targetrn   rh   
precedenceEpsilonTransitionfollowStater|   rc   rf   rK   r   PlusLoopbackStatePlusBlockStartStatere   StarLoopbackStateStarLoopEntryState)r   r9   r:   nedgesrl   srctrgttypearg1arg2arg3transsrcStater   toutermostPrecedenceReturnr   s                    r   r1   ATNDeserializer.readEdges   sV   q&!A,,.C,,.CLLNE<<>D<<>D<<>D$$S4tREzz#H""5) " ZZE1c%"3"345%%a(!!^44,.)''(:(:;LL||q(45HH4F4F1)!--9RS##AHH$6$67EEeL 6   ZZE%11>>)#N33>>,,8#N33,1)%!233q#e&7&7"89A"..q188F!&*=>>/4, : E#455q#e&7&7"89A"..q188F!&*<==/4, :!  r   c                     U R                  5       n[        SU5       HC  nU R                  5       nUR                  U   nUR                  R	                  U5        X5l        ME     g r   )r.   r[   rd   decisionToStatera   decision)r   r9   
ndecisionsrl   ro   decStates         r   r2   ATNDeserializer.readDecisions   sP    \\^
q*%AAzz!}H&&x0 !	 &r   c                 ^   UR                   [        R                  :X  a  U R                  5       nS /U-  Ul        [        SU5       Hc  nU R                  5       nU R                  5       nUS:X  a  SnU R                  5       nUS:X  a  SnU R                  XEU5      nXqR                  U'   Me     g g )Nr   rY   rZ   )r7   r   rx   r.   lexerActionsr[   lexerActionFactory)r   r9   countrl   
actionTypedata1data2lexerActions           r   r3    ATNDeserializer.readLexerActions   s    ??gmm+LLNE!%x%/C1e_!\\^
F?EF?E"55jO&1  # % ,r   c                     [        UR                  5      nS/U-  Ul        [        SU5       H"  nUR                  U-   S-   UR                  U'   M$     [        SU5       H  nU R                  X5        M     g )Nr   r?   )r   rz   ry   r[   rV   generateRuleBypassTransition)r   r9   r   rl   s       r   r6   -ATNDeserializer.generateRuleBypassTransitions  sp    C(() !eemq%A%(%5%5%9A%=C" ! q%A--c5 !r   rU   c                 R   [        5       nX#l        UR                  U5        [        5       nX$l        UR                  U5        XCl        UR                  U5        X4l        S nUR                  U   R                  (       aW  S nUR                   H6  nU R                  Xr5      (       d  M  UnUR                  R                  S   n  O   Uc  [        S5      eOUR                  U   nUR                   H5  nUR                   H"  nX:X  a  M
  UR                  U:X  d  M  XHl        M$     M7     UR                  U   n	[!        U	R                  5      n
U
S:  a6  UR#                  U	R                  U
S-
     5        U	R                  S	 U
S:  a  M6  UR                  U   R#                  [%        U5      5        UR#                  [%        U5      5        ['        5       nUR                  U5        UR#                  [)        XAR*                  U   5      5        UR#                  [%        U5      5        g )Nr   zDCouldn't identify final state of the precedence rule prefix section.r?   rZ   )BasicBlockStartStatern   r^   BlockEndStaterf   defineDecisionStater   rz   rh   rd   stateIsEndStateForre   r   rK   r|   r   r   r   r   
BasicStateAtomTransitionry   )r   r9   rU   bypassStart
bypassStopexcludeTransitionrf   r   
transitionrz   r   
matchStates               r   r   ,ATNDeserializer.generateRuleBypassTransition  s   *, #[!"_
"Z ), + $55H**566$H(-(;(;(G(G(J%	 $ !( fgg )
 **3/H ZZE#//
2$$0(2%	 0   //4$001ai%%&6&B&B57&KL ,,R0 ai
 	S!//0A+0NO  !28!<=\
Z   
<O<OPS<T!UV!!"3J"?@r   r   c                 Z   UR                   U:w  a  g [        U[        5      (       d  g UR                  [	        UR                  5      S-
     R
                  n[        U[        5      (       d  g UR                  (       a.  [        UR                  S   R
                  [        5      (       a  U$ g )Nr?   r   )	rn   rb   r   r   r   r   LoopEndStateepsilonOnlyTransitionsr}   )r   r   rU   maybeLoopEndStates       r   r   "ATNDeserializer.stateIsEndStateForR  s    ??c!%!344!--c%2C2C.Dq.HIPP+\::33,88;BBMRRLr   c                    UR                    H  n[        U[        5      (       d  M  UR                  UR                     R
                  (       d  MD  UR                  [        UR                  5      S-
     R                  n[        U[        5      (       d  M  UR                  (       d  M  [        UR                  S   R                  [        5      (       d  M  SUl        M     g )Nr?   r   T)rd   rb   r   rz   rn   rh   r   r   r   r   r   r}   isPrecedenceDecision)r   r9   r   r   s       r   r4   'ATNDeserializer.markPrecedenceDecisionsj  s    ZZEe%788 ##EOO4EEE$)$5$5c%:K:K6Lq6P$Q$X$X!/>>(???&'8'D'DQ'G'N'NP]^^592  r   c                    U R                   R                  (       d  g UR                   GH  nUc  M	  U R                  UR                  =(       d    [        UR                  5      S:*  5        [        U[        5      (       a  U R                  UR                  S L5        [        U[        5      (       GaP  U R                  UR                  S L5        U R                  [        UR                  5      S:H  5        [        UR                  S   R                  [        5      (       aW  U R                  [        UR                  S   R                  [        5      5        U R                  UR                  (       + 5        O[        UR                  S   R                  [        5      (       aR  U R                  [        UR                  S   R                  [        5      5        U R                  UR                  5        O[        S5      e[        U[         5      (       a]  U R                  [        UR                  5      S:H  5        U R                  [        UR                  S   R                  [        5      5        [        U[        5      (       a  U R                  UR                  S L5        [        U["        5      (       a  U R                  UR$                  S L5        [        U[&        5      (       a  U R                  UR(                  S L5        [        U[*        5      (       a  U R                  UR,                  S L5        [        U[.        5      (       a@  U R                  [        UR                  5      S:*  =(       d    UR0                  S:  5        GMj  U R                  [        UR                  5      S:*  =(       d    [        U[2        5      5        GM     g )Nr?   r@   r   r   )r   r5   rd   checkConditionr   r   r   rb   r   re   r   r   StarBlockStartStater   rg   rK   r   RuleStartStater~   rc   rf   r   r   DecisionStater   r}   )r   r9   r   s      r   r5   ATNDeserializer.verifyATNz  s   **44ZZE} < < [EDUDU@VZ[@[\%!455##E$7$7t$CD%!344##E$7$7t$CD##C(9(9$:a$?@e//299;NOO''
53D3DQ3G3N3NP\(]^''EOO(;< 1 1! 4 ; ;\JJ''
53D3DQ3G3N3NPc(de''8#N33%!233##C(9(9$:a$?@##Ju/@/@/C/J/JL^$_`%..##E$7$7t$CD%00##EOO4$?@%11##ENN$$>?%//##E$4$4D$@A%//##C(9(9$:a$?$V5>>UVCVW##C(9(9$:a$?$c:eUbCcdS  r   	conditionc                 2    U(       d  Uc  Sn[        U5      eg )Nr   )rK   )r   r   messages      r   r   ATNDeserializer.checkCondition  s    (G$$ r   c                 b    U R                   U R                     nU =R                  S-  sl        U$ )Nr?   )r   r   )r   rl   s     r   r.   ATNDeserializer.readInt  s&    IIdhhAr   c                 P    U R                  5       nU R                  5       nXS-  -  $ )N   )r.   r   lowhighs      r   r0   ATNDeserializer.readInt32  s%    lln||~bj!!r   c                 X    U R                  5       nU R                  5       nUS-  US-  -  $ )Nl        )r0   r   s      r   readLongATNDeserializer.readLong  s/    nn~~((TRZ88r   c                 j    U R                  5       nU R                  5       nUS-  US-  -  n[        US9$ )Nl    @   )int)r   r   )r   r   r   allBitss       r   rP   ATNDeserializer.readUUID  s7    mmo}}++
;  r   c                     g r    )argss    r   <lambda>ATNDeserializer.<lambda>  s    Dr   c                     [        U5      $ r   )r   r9   r   r   r   r   r   r:   r   s           r   r   r     s    M^_eMfr   c                 \    US:w  a  [        U[        R                  U5      $ [        XsU5      $ r   )RangeTransitionr   r{   r   s           r   r   r     s*    DHAI		4@vSbciquSvvr   c                 6    [        U R                  U   XEU5      $ r   )r   rd   r   s           r   r   r     s    &szz$'7VLr   c                      [        XsXES:g  5      $ r   )PredicateTransitionr   s           r   r   r     s    +F$	Jr   c                 X    US:w  a  [        U[        R                  5      $ [        Xs5      $ r   )r   r   r{   r   s           r   r   r     s$    =AQYvuyy9hN[aLhhr   c                      [        XsXES:g  5      $ r   )ActionTransitionr   s           r   r   r     s    (tQYGr   c                     [        XvU   5      $ r   )SetTransitionr   s           r   r   r     s    %f4j9r   c                     [        XvU   5      $ r   )NotSetTransitionr   s           r   r   r     s    (d<r   c                     [        U5      $ r   )WildcardTransitionr   s           r   r   r     s
    *62r   c                     [        Xs5      $ r   )PrecedencePredicateTransitionr   s           r   r   r     s
    5fCr   typer   r   r   r   r   c	           
          UR                   U   n	U[        U R                  5      :  d  U R                  U   c  [        S[	        U5      -   S-   5      eU R                  U   " XXEXgX5      $ )NzThe specified transition type:  is not valid.)rd   r   edgeFactoriesrK   rL   )
r   r9   r
  r   r   r   r   r   r:   r   s
             r   r   ATNDeserializer.edgeFactory  si    C#d(())T-?-?-E-M=D	IL\\]]%%d+CcTZZr   c                      g r   r   r   r   r   r   r     s    r   c                      [        5       $ r   )r   r   r   r   r   r     s    r   c                      [        5       $ r   )r   r   r   r   r   r     s    !1r   c                      [        5       $ r   )r   r   r   r   r   r     s    !5!7r   c                      [        5       $ r   )r   r   r   r   r   r         !4!6r   c                      [        5       $ r   )r   r   r   r   r   r     r  r   c                      [        5       $ r   )TokensStartStater   r   r   r   r     s    !1!3r   c                      [        5       $ r   )r}   r   r   r   r   r         r   c                      [        5       $ r   )r   r   r   r   r   r     r  r   c                      [        5       $ r   )r   r   r   r   r   r         !2!4r   c                      [        5       $ r   )r   r   r   r   r   r     s    !3!5r   c                      [        5       $ r   )r   r   r   r   r   r     r  r   c                      [        5       $ r   )r   r   r   r   r   r     s    r   rn   c                     U[        U R                  5      :  d  U R                  U   c  [        S[        U5      -   S-   5      eU R                  U   " 5       nUb  X#l        U$ )NzThe specified state type r  )r   stateFactoriesrK   rL   rn   )r   r
  rn   ro   s       r   r_   ATNDeserializer.stateFactory  sb    T(())T-@-@-F-N7#d)CFVVWW##D)+A}'r   r   r?   r@   r               c                     [        U 5      $ r   )LexerChannelActionr   r   s     r   r   r     s
    -?-Fr   c                     [        X5      $ r   )LexerCustomActionr)  s     r   r   r     s
    ->u-Lr   c                     [        U 5      $ r   )LexerModeActionr)  s     r   r   r     	    _U-Cr   c                 "    [         R                  $ r   )LexerMoreActionINSTANCEr)  s     r   r   r     
    _-E-Er   c                 "    [         R                  $ r   )LexerPopModeActionr1  r)  s     r   r   r     s    -?-H-Hr   c                     [        U 5      $ r   )LexerPushModeActionr)  s     r   r   r     s
    -@-Gr   c                 "    [         R                  $ r   )LexerSkipActionr1  r)  s     r   r   r     r2  r   c                     [        U 5      $ r   )LexerTypeActionr)  s     r   r   r   	  r.  r   r   r   c                     U[        U R                  5      :  d  U R                  U   c  [        S[        U5      -   S-   5      eU R                  U   " X#5      $ )Nz The specified lexer action type r  )r   actionFactoriesrK   rL   )r   r
  r   r   s       r   r   "ATNDeserializer.lexerActionFactory  sV    #d**++t/C/CD/I/Q>TJM]]^^''-e;;r   )r   r   r   r   r   )5__name__
__module____qualname____firstlineno__	__slots__r
   r   r   r#   rL   r;   r&   r'   r(   r)   r   r*   r+   r,   listr   r   r-   r1   r2   r3   r6   r   r\   r   r4   r5   boolr   r.   r0   r   rP   r  r   r!  r_   CHANNELCUSTOMMODEMOREPOP_MODE	PUSH_MODESKIPTYPEr<  r   __static_attributes__r   r   r   r   r   !   sf   AI.!: ."4 t  6 G
.'<S '<RDC D07C 713 1T 1xC7H 1-5C -5d -5^" "23 26 67As 7A 7Atx S 0:# : -eC -e^%t %
"
9
! )fwMKiH:=3D%M,[c [ [ [# [C [c [X[ [bf [ &-1766300454/N s  GFDDHIDDFLCEHGE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   rJ   rQ   objectr   r   r   r   <module>rY     si   
      & ! # $ J BC 
 ?@  )*;=  $p<v p<r   