
    khV                         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 d dl d dl d dlmZ  ed	      Z ed
      ZeegZdZeZ G d de      Zy)    )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Z2y)ZATNDeserializer)deserializationOptionsdataposuuidNoptionsc                 6    |t         j                  }|| _        y N)r
   defaultOptionsr   )selfr   s     V/var/www/teggl/fontify/venv/lib/python3.12/site-packages/antlr4/atn/ATNDeserializer.py__init__zATNDeserializer.__init__$   s    ?/>>G&-#    feature
actualUuidc                 l    t         j                  |      }|dk  ryt         j                  |      }||k\  S )Nr   F)SUPPORTED_UUIDSindex)r   r   r   idx1idx2s        r   isFeatureSupportedz"ATNDeserializer.isFeatureSupported5   s6    $$W-6$$Z0t|r   r   c                    | j                  |       | j                          | j                          | j                         }| j	                  |       | j                  |       | j                  |       g }| j                  ||| j                         | j                  t        | j                        r| j                  ||| j                         | j                  ||       | j                  |       | j                  |       | j!                  |       | j#                  |       | j$                  j&                  r?|j(                  t*        j,                  k(  r"| j'                  |       | j#                  |       |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<   s   

4llnssc4. ""#4dii@MM#tT^^4sD!3c"$$S)s&&DDOOw~~5..s3NN3
r   c                 |    d }|D cg c]
  } ||       }}t        |d         |d<   || _        d| _        y c c}w )Nc                 6    t        |       }|dkD  r|dz
  S |dz   S )N      i  )ord)cvs     r   adjustz%ATNDeserializer.reset.<locals>.adjustX   s$    AAA#1Q3,1u9,r   r   )r=   r   r   )r   r   r@   r>   temps        r   r#   zATNDeserializer.resetW   sD    	- %)*q**d1g,Q		 +s   9c                     | j                         }|t        k7  r-t        dt        |      z   dz   t        t              z   dz         y )Nz'Could not deserialize ATN with version  (expected z).)r+   SERIALIZED_VERSION	Exceptionstr)r   versions     r   r$   zATNDeserializer.checkVersiona   sU    ,,.((EGTWddgjk}g~~  BF  F  G  G )r   c                     | j                         }|t        vr3t        dt        |      z   dz   t        t              z   dz   |t              || _        y )Nz%Could not deserialize ATN with UUID: rC   z or a legacy UUID).)readUUIDr   rE   rF   SERIALIZED_UUIDr   )r   r   s     r   r%   zATNDeserializer.checkUUIDf   s\    }}&Cc$iO)*,/,@ACXYZ^`oq q	r   c                     | j                         }t        j                  |      }| j                         }t        ||      S r   )r+   r   fromOrdinalr   )r   idxr4   maxTokenTypes       r   r&   zATNDeserializer.readATNm   s5    lln))#.||~;--r   r6   c                    g }g }| j                         }t        d|      D ]  }| j                         }|t        j                  k(  r|j	                  d        8| j                         }|dk(  rd}| j                  ||      }|t        j                  k(  r$| j                         }	|j                  ||	f       n3t        |t              r#| j                         }
|j                  ||
f       |j	                  |        |D ]  }|j                  |d      |d   _         |D ]  }|j                  |d      |d   _         | j                         }t        d|      D ]&  }| j                         }d|j                  |   _        ( | j                         }t        d|      D ]&  }| j                         }d|j                  |   _        ( y )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LLNEh+++T"IF"	!!%3A)))&*lln#$++Q0C,DEA/!%&&>':;LLO%	* ) 	8D$'JJtAw$7DG!	8 $ 	3D"zz$q'2DG	3 "\\^q,- 	5A,,.K04CJJ{#-	5 #llnq-. 	<A,,.K7;CJJ{#4	<r   c                 t   | j                         }|j                  t        j                  k(  rdg|z  |_        dg|z  |_        t        d|      D ]  }| j                         }|j                  |   }||j
                  |<   |j                  t        j                  k(  sO| j                         }|dk(  rt        j                  }||j                  |<    dg|z  |_
        |j                  D ]J  }t        |t              s||j                  |j                  <   ||j
                  |j                     _        L y )Nr   rP   )r+   r4   r   LEXERruleToTokenTyperuleToStartStaterR   r[   r   EOFruleToStopStaterY   RuleStopStatere   	stopState)r   r6   nrulesrc   rf   
startState	tokenTypestates           r   r(   zATNDeserializer.readRules   s   ??gmm+#$#,C !sV|q&! 		3AAAJ&0C  #'--/ LLN	& %		I)2##A&		3  !cFlZZ 	DEe]338C0>CC  1;		Dr   c                     | j                         }t        d|      D ]:  }| j                         }|j                  j                  |j                  |          < y Nr   )r+   rR   modeToStartStaterX   r[   )r   r6   nmodesrc   rf   s        r   r)   zATNDeserializer.readModes   sJ    q&! 	7AA  ''

16	7r   r7   readUnicodec           	      b   | j                         }t        d|      D ]  }t               }|j                  |       | j                         }| j                         }|dk7  r|j	                  d       t        d|      D ].  }	 |       }
 |       }|j                  t        |
|dz                0  y )Nr   rQ   r;   )r+   rR   IntervalSetrX   addOneaddRange)r   r6   r7   r}   mrc   isetncontainsEofji1i2s               r   r*   zATNDeserializer.readSets   s    LLNq! 
	1A=DKKA,,.KA~B1a[ 1 ] ]eBQ/01
	1r   c                    | j                         }t        d|      D ]  }| j                         }| j                         }| j                         }| j                         }| j                         }	| j                         }
| j                  ||||||	|
|      }|j                  |   }|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	                  |         |j                  D ](  }t        |t"              rI|j$                  t'        d      |j$                  j(                  t'        d      ||j$                  _        t        |t*              rVt        dt        |j                              D ]3  }|j                  |   j                  }t        |t,              s-||_        5 t        |t0              st        dt        |j                              D ]3  }|j                  |   j                  }t        |t2              s-||_        5 + y )Nr   rQ   IllegalState)r+   rR   edgeFactoryr[   addTransitionlentransitionsrY   RuleTransitionrp   targetre   r_   
precedenceEpsilonTransitionfollowStaterr   rZ   r]   rE   rv   PlusLoopbackStatePlusBlockStartStater\   StarLoopbackStateStarLoopEntryState)r   r6   r7   nedgesrc   srctrgttypearg1arg2arg3transsrcStaterx   toutermostPrecedenceReturnr   s                    r   r.   zATNDeserializer.readEdges   sp   q&! 		*A,,.C,,.CLLNE<<>D<<>D<<>D$$S%c4tTREzz#H""5)		* ZZ 
	ME1c%"3"345 	M%%a(!!^4,.)''(:(:;LL||q(45HH4F4F1)!--9RS##AHH$6$67EEeL	M
	M ZZ 	5E%1>>)#N33>>,,8#N33,1)%!23q#e&7&7"89 5A"..q188F!&*=>/4,5 E#45q#e&7&7"89 5A"..q188F!&*<=/4,5!	5r   c                     | j                         }t        d|      D ]C  }| j                         }|j                  |   }|j                  j	                  |       ||_        E y rz   )r+   rR   r[   decisionToStaterX   decision)r   r6   
ndecisionsrc   rf   decStates         r   r/   zATNDeserializer.readDecisions   sW    \\^
q*% 	"AAzz!}H&&x0 !H		"r   c                 X   |j                   t        j                  k(  r| j                         }d g|z  |_        t        d|      D ]b  }| j                         }| j                         }|dk(  rd}| j                         }|dk(  rd}| j                  |||      }||j                  |<   d y y )Nr   rP   rQ   )r4   r   rn   r+   lexerActionsrR   lexerActionFactory)r   r6   countrc   
actionTypedata1data2lexerActions           r   r0   z ATNDeserializer.readLexerActions   s    ??gmm+LLNE!%x%/C1e_ 	2!\\^
F?EF?E"55j%O&1  #	2 ,r   c                     t        |j                        }dg|z  |_        t        d|      D ]!  }|j                  |z   dz   |j                  |<   # t        d|      D ]  }| j                  ||        y )Nr   r;   )r   rp   ro   rR   rN   generateRuleBypassTransition)r   r6   r   rc   s       r   r3   z-ATNDeserializer.generateRuleBypassTransitions  s|    C(() !eemq% 	>A%(%5%5%9A%=C"	> q% 	6A--c15	6r   rM   c                 0   t               }||_        |j                  |       t               }||_        |j                  |       ||_        |j                  |       ||_        d }|j                  |   j                  rOd }|j                  D ]1  }| j                  ||      s|}|j                  j                  d   } n |t        d      |j                  |   }|j                  D ]0  }|j                  D ]  }||k(  r	|j                  |k(  s||_        ! 2 |j                  |   }	t!        |	j                        }
|
dkD  r4|j#                  |	j                  |
dz
            |	j                  d= |
dkD  r4|j                  |   j#                  t%        |             |j#                  t%        |             t'               }|j                  |       |j#                  t)        ||j*                  |                |j#                  t%        |             y )Nr   zDCouldn't identify final state of the precedence rule prefix section.r;   rQ   )BasicBlockStartStatere   rU   BlockEndStater]   defineDecisionStaterv   rp   r_   r[   stateIsEndStateForr\   r   rE   rr   r   r   r   r   
BasicStateAtomTransitionro   )r   r6   rM   bypassStart
bypassStopexcludeTransitionr]   rx   
transitionrp   r   
matchStates               r   r   z,ATNDeserializer.generateRuleBypassTransition  s   *, #[!"_
"
Z ), +
 $55H **5#6$H(-(;(;(G(G(J%	 !( fgg **3/H ZZ 	3E#// 3
!22$$0(2J%	3	3 //4$001ai%%&6&B&B57&KL ,,R0 ai
 	S!//0A+0NO  !28!<=\
Z   
C<O<OPS<T!UV!!"3J"?@r   rx   c                 0   |j                   |k7  ry t        |t              sy |j                  t	        |j                        dz
     j
                  }t        |t              sy |j                  r)t        |j                  d   j
                  t              r|S y )Nr;   r   )	re   rY   r   r   r   r   LoopEndStateepsilonOnlyTransitionsrs   )r   rx   rM   maybeLoopEndStates       r   r   z"ATNDeserializer.stateIsEndStateForR  s    ??c!%!34!--c%2C2C.Dq.HIPP+\:33,88;BBMRLr   c                    |j                   D ]  }t        |t              s|j                  |j                     j
                  s8|j                  t        |j                        dz
     j                  }t        |t              sx|j                  st        |j                  d   j                  t              sd|_         y )Nr;   r   T)r[   rY   r   rp   re   r_   r   r   r   r   r   rs   isPrecedenceDecision)r   r6   rx   r   s       r   r1   z'ATNDeserializer.markPrecedenceDecisionsj  s    ZZ 	:Ee%78 ##EOO4EE$)$5$5c%:K:K6Lq6P$Q$X$X!/>(??&'8'D'DQ'G'N'NP]^592	:r   c                    | j                   j                  sy |j                  D ]_  }|| j                  |j                  xs t        |j                        dk         t        |t              r| j                  |j                  d u       t        |t              rB| j                  |j                  d u       | j                  t        |j                        dk(         t        |j                  d   j                  t              rS| j                  t        |j                  d   j                  t                     | j                  |j                          nt        |j                  d   j                  t              rR| j                  t        |j                  d   j                  t                     | j                  |j                         nt        d      t        |t               r]| j                  t        |j                        dk(         | j                  t        |j                  d   j                  t                     t        |t              r| j                  |j                  d u       t        |t"              r| j                  |j$                  d u       t        |t&              r| j                  |j(                  d u       t        |t*              r| j                  |j,                  d u       t        |t.              r:| j                  t        |j                        dk  xs |j0                  dk\         '| j                  t        |j                        dk  xs t        |t2                     b y )Nr;   r<   r   r   )r   r2   r[   checkConditionr   r   r   rY   r   r\   r   r   StarBlockStartStater   r^   rE   r   RuleStartStatert   rZ   r]   r   rv   DecisionStater   rs   )r   r6   rx   s      r   r2   zATNDeserializer.verifyATNz  s   **44ZZ )	eE} < < [EDUDU@VZ[@[\%!45##E$7$7t$CD%!34##E$7$7t$CD##C(9(9$:a$?@e//299;NO''
53D3DQ3G3N3NP\(]^''EOO(;< 1 1! 4 ; ;\J''
53D3DQ3G3N3NPc(de''8#N33%!23##C(9(9$:a$?@##Ju/@/@/C/J/JL^$_`%.##E$7$7t$CD%0##EOO4$?@%1##ENN$$>?%/##E$4$4D$@A%/##C(9(9$:a$?$V5>>UVCVW##C(9(9$:a$?$c:eUbCcdS)	er   	conditionc                 &    |s|d}t        |      y )Nr   )rE   )r   r   messages      r   r   zATNDeserializer.checkCondition  s    (G$$ r   c                 b    | j                   | j                     }| xj                  dz  c_        |S )Nr;   )r   r   )r   rc   s     r   r+   zATNDeserializer.readInt  s&    IIdhhAr   c                 R    | j                         }| j                         }||dz  z  S )N   )r+   r   lowhighs      r   r-   zATNDeserializer.readInt32  s'    lln||~dbj!!r   c                 X    | j                         }| j                         }|dz  |dz  z  S )Nl        )r-   r   s      r   readLongzATNDeserializer.readLong  s/    nn~~((TRZ88r   c                 p    | j                         }| j                         }|dz  |dz  z  }t        |      S )Nl    @   )int)r   r   )r   r   r   allBitss       r   rI   zATNDeserializer.readUUID  s7    mmo}}++
;  r   c                      y r    )argss    r   <lambda>zATNDeserializer.<lambda>      r   c                     t        |      S r   )r   r6   r   r   r   r   r   r7   r   s           r   r   zATNDeserializer.<lambda>  s    M^_eMf r   c                 \    |dk7  rt        |t        j                  |      S t        |||      S rz   )RangeTransitionr   rq   r   s           r   r   zATNDeserializer.<lambda>  s1    DHAI		4@ SbcikoquSv r   c                 8    t        | j                  |   |||      S r   )r   r[   r   s           r   r   zATNDeserializer.<lambda>  s    &szz$'7tVL r   c                 $    t        ||||dk7        S rz   )PredicateTransitionr   s           r   r   zATNDeserializer.<lambda>  s    +FD$	J r   c                 X    |dk7  rt        |t        j                        S t        ||      S rz   )r   r   rq   r   s           r   r   zATNDeserializer.<lambda>  s,    =AQYvuyy9 LZ[acgLh r   c                 $    t        ||||dk7        S rz   )ActionTransitionr   s           r   r   zATNDeserializer.<lambda>  s    (tTQYG r   c                      t        |||         S r   )SetTransitionr   s           r   r   zATNDeserializer.<lambda>  s    %fd4j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 r   c                     t        ||      S r   )PrecedencePredicateTransitionr   s           r   r   zATNDeserializer.<lambda>  s    5fdC r   typer   r   r   r   r   c	           
          |j                   |   }	|t        | j                        kD  s| j                  |   t        dt	        |      z   dz          | j                  |   ||||||||	      S )NzThe specified transition type:  is not valid.)r[   r   edgeFactoriesrE   rF   )
r   r6   r   r   r   r   r   r   r7   r   s
             r   r   zATNDeserializer.edgeFactory  st    C#d(())T-?-?-E-M=D	IL\\]]+4%%d+Cc4tTSYZZr   c                       y r   r   r   r   r   r   zATNDeserializer.<lambda>  r   r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  s     r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  s	    !1 r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  s
    !5!7 r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  
    !4!6 r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  r   r   c                      t               S r   )TokensStartStater   r   r   r   zATNDeserializer.<lambda>  s
    !1!3 r   c                      t               S r   )rs   r   r   r   r   zATNDeserializer.<lambda>       r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  r   r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  
    !2!4 r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  s
    !3!5 r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  r  r   c                      t               S r   )r   r   r   r   r   zATNDeserializer.<lambda>  s     r   re   c                     |t        | j                        kD  s| j                  |   t        dt        |      z   dz          | j                  |          }|||_        |S )NzThe specified state type r   )r   stateFactoriesrE   rF   re   )r   r   re   rf   s       r   rV   zATNDeserializer.stateFactory  sf    T(())T-@-@-F-N7#d)CFVVWW)##D)+A}'r   r   r;   r<   r               c                     t        |       S r   )LexerChannelActionr   r   s     r   r   zATNDeserializer.<lambda>  s    -?-F r   c                     t        | |      S r   )LexerCustomActionr  s     r   r   zATNDeserializer.<lambda>  s    ->ue-L r   c                     t        |       S r   )LexerModeActionr  s     r   r   zATNDeserializer.<lambda>      _U-C r   c                 "    t         j                  S r   )LexerMoreActionINSTANCEr  s     r   r   zATNDeserializer.<lambda>      _-E-E r   c                 "    t         j                  S r   )LexerPopModeActionr  r  s     r   r   zATNDeserializer.<lambda>  s    -?-H-H r   c                     t        |       S r   )LexerPushModeActionr  s     r   r   zATNDeserializer.<lambda>  s    -@-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                        kD  s| j                  |   t        dt        |      z   dz          | j                  |   ||      S )Nz The specified lexer action type r   )r   actionFactoriesrE   rF   )r   r   r   r   s       r   r   z"ATNDeserializer.lexerActionFactory  sZ    #d**++t/C/CD/I/Q>TJM]]^^-4''-eU;;r   r   )3__name__
__module____qualname__	__slots__r
   r   r   r!   rF   r8   r#   r$   r%   r&   r   r'   r(   r)   listr   r   r*   r.   r/   r0   r3   r   rS   r   r1   r2   boolr   r+   r-   r   rI   r   r   r  rV   CHANNELCUSTOMMODEMOREPOP_MODE	PUSH_MODESKIPTYPEr   r   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   rD   rJ   objectr   r   r   r   <module>r:     si   
      & ! # $ J BC 
 ?@  )*;=  $p<v p<r   