Ë
    ÍÍ:jí9 ã                   ó>  — d dl Z d dlmZ d dlmZmZmZ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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mZmZm Z  d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3 d dl4m5Z5  G d„ de«      Z6y)é    N)ÚDFA)ÚPredictionContextCacheÚPredictionContextÚSingletonPredictionContextÚ PredictionContextFromRuleContext)ÚTokenStream)ÚParser)ÚParserRuleContext)ÚRuleContext)ÚToken)Ústr_list)ÚATN)Ú	ATNConfig)ÚATNConfigSet)ÚATNSimulator)ÚStarLoopEntryStateÚDecisionStateÚRuleStopStateÚATNState)ÚPredictionMode)ÚSemanticContextÚANDÚ
andContextÚ	orContext)Ú
TransitionÚRuleTransitionÚActionTransitionÚPrecedencePredicateTransitionÚPredicateTransitionÚAtomTransitionÚSetTransitionÚNotSetTransition)ÚDFAStateÚPredPrediction)ÚNoViableAltExceptionc                   ój  ‡ — e Zd ZdZdZdZdZdZdede	de
defˆ fd„Zd„ Zd	ed
edefd„Zdeded	ededef
d„Zdedefd„Zdededefd„Zdedefd„Zdededed	ededefd„Zdededefd„Zdedefd„Zd ed!edefd"„Z defd#„Z!d$e"d%efd&„Z#d'e$de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defd.„Z)d/e
ded0efd1„Z*d2e+ded3e$d4eded5efd6„Z,d2e+ded3e$d4eded7ed5efd8„Z-d2e+ded3e$d4eded7ed5efd9„Z.d:„ Z/d;efd<„Z0 e1«       Z2d=„ e2e"jf                  <   d>„ e2e"jh                  <   d?„ e2e"jj                  <   d@„ e2e"jl                  <   dA„ e2e"jn                  <   dB„ e2e"jp                  <   dC„ e2e"jr                  <   dD„ e2e"jt                  <   d2e+de"d4edEeded5efdF„Z;d2e+de<fdG„Z=d2e+dHe>d4edEedef
dI„Z?d2e+dHe@d4edEedef
dJ„ZAd2e+deBfdK„ZCdefdL„ZDdefdM„ZEdefdN„ZFd	efdO„ZGdPeHfdQ„ZId	edededefdR„ZJdefdS„ZKdedTededUefdV„ZLdedefdW„ZMdedXe$dededYef
dZ„ZNded[edededYef
d\„ZOdedededYed]ed'e$defd^„ZPˆ xZQS )_ÚParserATNSimulator)ÚparserÚdecisionToDFAÚpredictionModeÚ_inputÚ_startIndexÚ_outerContextÚ_dfaÚ
mergeCacheFr(   Úatnr)   ÚsharedContextCachec                 ó²   •— t         ‰| �  ||«       || _        || _        t        j
                  | _        d | _        d| _        d | _	        d | _
        d | _        y ©Nr   )ÚsuperÚ__init__r(   r)   r   ÚLLr*   r+   r,   r-   r.   r/   )Úselfr(   r0   r)   r1   Ú	__class__s        €úr/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/antlr4/atn/ParserATNSimulator.pyr5   zParserATNSimulator.__init__  sW   ø€ Ü‰Ñ˜Ð0Ô1ØˆŒØ*ˆÔä,×/Ñ/ˆÔàˆŒØˆÔØ!ˆÔØˆŒ	ð ˆ�ó    c                  ó   — y ©N© )r7   s    r9   ÚresetzParserATNSimulator.reset#  s   € Ør:   ÚinputÚdecisionÚouterContextc                 ó�  — t         j                  st         j                  r|t        dt	        |«      z   dz   | j                  |«      z   dz   t	        |j                  d«      j                  «      z   dz   t	        |j                  d«      j                  «      z   «       || _	        |j                  | _        || _        | j                  |   }|| _        |j                  «       }|j                  }	 |j                   r*|j#                  | j$                  j'                  «       «      }n|j(                  }|�€W|€t*        j,                  }t         j                  st         j                  r`t        dt	        |j.                  «      z   dz   | j                  |«      z   dz   |j1                  | j$                  j2                  d «      z   «       d}| j5                  |j6                  t*        j,                  |«      }	|j                   ri|	|j(                  _        | j;                  |	«      }	| j=                  |t?        |	¬	«      «      }|jA                  | j$                  j'                  «       |«       n#| j=                  |t?        |	¬	«      «      }||_        | jC                  |||||«      }
t         j                  r1t        d
|j1                  | j$                  j2                  «      z   «       |
d | _        d | _"        |jG                  |«       |jI                  |«       S # d | _        d | _"        |jG                  |«       |jI                  |«       w xY w)NzadaptivePredict decision ú exec LA(1)==ú line é   ú:zpredictATN decision z, outerContext=F©ÚconfigszDFA after predictATN: )%r'   ÚdebugÚdebug_list_atn_decisionsÚprintÚstrÚgetLookaheadNameÚLTÚlineÚcolumnr+   Úindexr,   r-   r)   r.   ÚmarkÚprecedenceDfaÚgetPrecedenceStartStater(   ÚgetPrecedenceÚs0r
   ÚEMPTYr@   ÚtoStringÚliteralNamesÚcomputeStartStateÚatnStartStaterH   ÚapplyPrecedenceFilterÚaddDFAStater#   ÚsetPrecedenceStartStateÚexecATNr/   ÚseekÚrelease)r7   r?   r@   rA   ÚdfaÚmrQ   rV   ÚfullCtxÚ
s0_closureÚalts              r9   ÚadaptivePredictz"ParserATNSimulator.adaptivePredict&  sÌ  € Ü×#Ò#Ô'9×'RÒ'RÜÐ-´°H³Ñ=Ø#2ñ3Ø59×5JÑ5JÈ5Ó5QñRà#+ñ,ä.1°%·(±(¸1³+×2BÑ2BÓ.CñDàFIñJô $' u§x¡x°£{×'9Ñ'9Ó#:ñ;ô <ð ˆŒØ Ÿ;™;ˆÔØ)ˆÔà× Ñ  Ñ*ˆØˆŒ	Ø�J‰J‹LˆØ—‘ˆð+	Ø× Ò ð ×0Ñ0°·±×1JÑ1JÓ1LÓM‘ð —V‘V�à‰zØÐ'Ü#4×#:Ñ#:�LÜ%×+Ò+Ô/A×/ZÒ/ZÜÐ0´3°s·|±|Ó3DÑDØ'6ñ7Ø9=×9NÑ9NÈuÓ9UñVà'8ñ9à;G×;PÑ;PÐQU×Q\ÑQ\×QiÑQiÐkoÓ;pñqô rð  �Ø!×3Ñ3°C×4EÑ4EÔGX×G^ÑG^Ð`gÓh�
à×$Ò$ð &0�C—F‘F”NØ!%×!;Ñ!;¸JÓ!G�JØ×)Ñ)¨#¬xÀ
Ô/KÓL�BØ×/Ñ/°·±×0IÑ0IÓ0KÈRÕPà×)Ñ)¨#¬xÀ
Ô/KÓL�BØ�C”Fà—,‘,˜s B¨¨u°lÓCˆCÜ!×'Ò'ÜÐ.°·±¸d¿k¹k×>VÑ>VÓ1WÑWÔXØàˆDŒIØ"ˆDŒOØ�J‰J�uÔØ�M‰M˜!Õøð ˆDŒIØ"ˆDŒOØ�J‰J�uÔØ�M‰M˜!Õús   Ã/G3L Ì2Mrb   rV   Ú
startIndexc           	      ó  — t         j                  st         j                  r†t        dt	        |j
                  «      z   dz   | j                  |«      z   dz   t	        |j                  d«      j                  «      z   dz   t	        |j                  d«      j                  «      z   «       |}t         j                  rt        dt	        |«      z   «       |j                  d«      }	 | j                  ||«      }|€| j                  |||«      }|| j                  u rb| j                  |||j                  |«      }	|j!                  |«       | j#                  |j                  |«      }
|
t$        j&                  k7  r|
S |	‚|j(                  �rz| j*                  t,        j.                  k7  �r\|j                  j0                  }|j2                  �¤t         j                  rt        d«       |j4                  }||k7  r|j!                  |«       | j7                  |j2                  |d«      }t9        |«      dk(  r&t         j                  rt        d	«       t;        |«      S ||k7  r|j!                  |«       t         j<                  r&t        d
t	        |«      z   dz   t	        |«      z   «       d}| j?                  |j@                  ||«      }| jC                  |||j                  ||j4                  «       | jE                  ||||||«      }
|
S |jF                  rÃ|j2                  €|jH                  S |j4                  }|j!                  |«       | j7                  |j2                  |d«      }t9        |«      dk(  r| j                  |||j                  |«      ‚t9        |«      dk(  rt;        |«      S | jK                  ||||d||j                  «       t;        |«      S |}|tL        jN                  k7  r!|jQ                  «        |j                  d«      }�Œ%)NzexecATN decision rC   rD   rE   rF   zs0 = Tz*DFA state has preds in DFA sim LL failoverzFull LL avoidedzctx sensitive state z in r   F))r'   rI   rJ   rK   rL   r@   rM   rN   rO   rP   ÚLAÚgetExistingTargetStateÚcomputeTargetStateÚERRORÚnoViableAltrH   r`   Ú7getSynValidOrSemInvalidAltThatFinishedDecisionEntryRuler   ÚINVALID_ALT_NUMBERÚrequiresFullContextr*   r   ÚSLLÚconflictingAltsÚ
predicatesrQ   ÚevalSemanticContextÚlenÚminÚ	dfa_debugrZ   r[   ÚreportAttemptingFullContextÚexecATNWithFullContextÚisAcceptStateÚ
predictionÚreportAmbiguityr   ÚEOFÚconsume)r7   rb   rV   r?   rh   rA   Ú	previousDÚtÚDÚerf   rs   ÚconflictIndexrd   re   Ú	stopIndexÚaltss                    r9   r_   zParserATNSimulator.execATN‚  sz  € Ü×#Ò#Ô'9×'RÒ'RÜÐ%¬¨C¯L©LÓ(9Ñ9Ø#ñ$Ø&*×&;Ñ&;¸EÓ&BñCàñä" 5§8¡8¨A£;×#3Ñ#3Ó4ñ5à7:ñ;ä=@ÀÇÁÈ!Ã×ASÑASÓ=TñUô Vð ˆ	ä×#Ò#Ü�'œC ›GÑ#Ô$à�H‰H�Q‹KˆàØ×+Ñ+¨I°qÓ9ˆAØˆyØ×+Ñ+¨C°¸AÓ>�Ø�D—J‘J‰ð ×$Ñ$ U¨L¸)×:KÑ:KÈZÓX�Ø—
‘
˜:Ô&Ø×RÑRÐS\×SdÑSdÐfrÓs�Øœ×.Ñ.Ò.Ø�JØ�à×$Ó$¨×)<Ñ)<Ä×@RÑ@RÓ)Rà"#§)¡)×";Ñ";�Ø—<‘<Ð+Ü)×/Ò/ÜÐJÔKØ$)§K¡K�MØ$¨
Ò2ØŸ
™
 :Ô.à&*×&>Ñ&>¸q¿|¹|È\Ð[_Ó&`�OÜ˜?Ó+¨QÒ.Ü-×3Ò3Ü!Ð"3Ô4Ü" ?Ó3Ð3à$¨
Ò2ð Ÿ
™
 =Ô1ä%×/Ò/ÜÐ0´3°|Ó3DÑDÀfÑLÌsÐSTËvÑUÔVØ�Ø!×3Ñ3°C×4EÑ4EÀ|ÐU\Ó]�
Ø×0Ñ0°°oÀqÇyÁyÐR\Ð^c×^iÑ^iÔjØ×1Ñ1°#°q¸*ÀeÈZÐYeÓf�Ø�
à�ŠØ—<‘<Ð'ØŸ<™<Ð'à!ŸK™K�	Ø—
‘
˜:Ô&Ø×/Ñ/°·±¸lÈDÓQ�Ü�t“9˜a’<Ø×*Ñ*¨5°,ÀÇ	Á	È:ÓVÐVÜ˜“Y ’\Ü˜t›9Ð$ð ×(Ñ(¨¨a°¸YÈÈtÐUV×U^ÑU^Ô_Ü˜t›9Ð$àˆIà”E—I‘IŠ~Ø—‘”Ø—H‘H˜Q“K�ñO r:   r€   r�   c                 ób   — |j                   }|�|dz   dk  s|dz   t        |«      k\  ry ||dz      S )NrE   r   )Úedgesrv   )r7   r€   r�   rˆ   s       r9   rk   z)ParserATNSimulator.getExistingTargetStateã  s:   € Ø—‘ˆØˆ=˜A ™E AšI¨¨Q©´#°e³*Ò)<Øà˜˜Q™‘<Ðr:   c                 óh  — | j                  |j                  |d«      }|€*| j                  |||| j                  «       | j                  S t	        |¬«      }| j                  |«      }t        j                  rŠt        j                  |«      }t        dt        |«      z   dz   t        |«      z   dz   t        |«      z   dz   t        t        j                  |«      «      z   dz   t        | j                  |«      «      z   «       |t        j                  k7  r d|_        ||j                  _        ||_        nrt        j&                  | j(                  |«      rR| j                  |«      |j                  _        d|_        d|_        t/        |j                  j*                  «      |_        |j                   rl|j                  j0                  rV| j3                  || j4                  j7                  |j8                  «      «       |j:                  �t        j                  |_        | j                  ||||«      }|S )	NFrG   zSLL altSubSets=z
, configs=ú
, predict=z, allSubsetsConflict=z, conflictingAlts=T)ÚcomputeReachSetrH   Ú
addDFAEdgerm   r#   ÚgetUniqueAltr'   rI   r   ÚgetConflictingAltSubsetsrK   rL   ÚallSubsetsConflictÚgetConflictingAltsr   rp   r{   Ú	uniqueAltr|   Ú#hasSLLConflictTerminatingPredictionr*   rs   rq   rw   ÚhasSemanticContextÚpredicateDFAStater0   ÚgetDecisionStater@   rt   )r7   rb   r€   r�   Úreachr‚   ÚpredictedAltÚ
altSubSetss           r9   rl   z%ParserATNSimulator.computeTargetStateö  s×  € Ø×$Ñ$ Y×%6Ñ%6¸¸5ÓAˆØˆ=Ø�O‰O˜C ¨A¨t¯z©zÔ:Ø—:‘:Ðô ˜UÔ#ˆà×(Ñ(¨Ó/ˆä×#Ò#Ü'×@Ñ@ÀÓGˆJÜÐ#¤c¨*£oÑ5¸ÑDÄsÈ5ÃzÑQØ$ñ%Ü'*¨<Ó'8ñ9Ø;RñSäœN×=Ñ=¸jÓIÓJñKàMañbô ˜D×3Ñ3°EÓ:Ó;ñ<ô =ð
 œ×/Ñ/Ò/à"ˆAŒOØ".ˆA�I‰IÔØ'ˆA�LÜ×?Ñ?À×@SÑ@SÐUZÔ[à(,×(?Ñ(?ÀÓ(FˆA�I‰IÔ%Ø$(ˆAÔ!à"ˆAŒOÜ˜qŸy™y×8Ñ8Ó9ˆAŒLà�?Š?˜qŸy™y×;Ò;Ø×"Ñ" 1 d§h¡h×&?Ñ&?ÀÇÁÓ&MÔNØ�|‰|Ð'Ü"×5Ñ5�”ð �O‰O˜C ¨A¨qÓ1ˆØˆr:   ÚdfaStateÚdecisionStatec                 ó  — t        |j                  «      }| j                  |j                  «      }| j	                  ||j                  |«      }|�-| j                  ||«      |_        t        j                  |_	        y t        |«      |_	        y r<   )rv   ÚtransitionsÚgetConflictingAltsOrUniqueAltrH   ÚgetPredsForAmbigAltsÚgetPredicatePredictionsrt   r   rp   r|   rw   )r7   r™   rš   ÚnaltsÚaltsToCollectPredsFromÚ	altToPreds         r9   r”   z$ParserATNSimulator.predicateDFAState  s„   € ô �M×-Ñ-Ó.ˆð "&×!CÑ!CÀH×DTÑDTÓ!UÐØ×-Ñ-Ð.DÀh×FVÑFVÐX]Ó^ˆ	ØÐ Ø"&×">Ñ">Ð?UÐW`Ó"aˆHÔÜ"%×"8Ñ"8ˆHÕô
 #&Ð&<Ó"=ˆHÕr:   r‚   c           	      óL  — t         j                  st         j                  rt        dt	        |«      «       d}d}d }	|}
|j                  |«       |j                  d«      }d}	 | j                  |
||«      }	|	€N| j                  |||
|«      }|j                  |«       | j                  |
|«      }|t        j                  k7  r|S |‚t        j                  |	«      }t         j                  r[t        dt	        |«      z   dz   t	        t        j                  |«      «      z   dz   t	        t        j                  |«      «      z   «       | j                  |	«      |	_        |	j                   t        j                  k7  r|	j                   }n¿| j"                  t        j$                  ur)t        j                  |«      }|t        j                  k7  rCnzt        j&                  |«      r-t        j(                  |«      rd}t        j*                  |«      }n8|	}
|t,        j.                  k7  r!|j1                  «        |j                  d«      }�Œâ|	j                   t        j                  k7  r!| j3                  |||	||j4                  «       |S | j7                  ||||j4                  |d |	«       |S )	Nrz   TFrE   éÿÿÿÿzLL altSubSets=rŠ   z, resolvesToJustOneViableAlt=)r'   rI   rJ   rK   rL   r`   rj   r‹   rn   ro   r   rp   r   rŽ   r�   ÚresolvesToJustOneViableAltr‘   r*   ÚLL_EXACT_AMBIG_DETECTIONr�   ÚallSubsetsEqualÚgetSingleViableAltr   r~   r   ÚreportContextSensitivityrQ   r}   )r7   rb   r‚   rV   r?   rh   rA   rd   ÚfoundExactAmbigr–   Úpreviousr�   r—   rƒ   rf   r˜   s                   r9   rz   z)ParserATNSimulator.execATNWithFullContext0  s[  € ô
 ×#Ò#Ô'9×'RÒ'RÜÐ*¬C°«GÔ4ØˆØˆØˆØˆØ�
‰
�:ÔØ�H‰H�Q‹KˆØˆØØ×(Ñ(¨°1°gÓ>ˆEØˆ}ð ×$Ñ$ U¨L¸(ÀJÓO�Ø—
‘
˜:Ô&Ø×RÑRÐS[Ð]iÓj�Øœ×.Ñ.Ò.Ø�Jà�Gä'×@Ñ@ÀÓGˆJÜ!×'Ò'ÜÐ&¬¨Z«Ñ8¸<ÑGÜœ.×5Ñ5°jÓAÓBñCØEdñeäœ.×CÑCÀJÓOÓPñQô Rð #×/Ñ/°Ó6ˆEŒOà�‰¤× 6Ñ 6Ò6Ø$Ÿ™�ØØ×$Ñ$¬N×,SÑ,SÑSÜ-×HÑHÈÓT�Ø¤3×#9Ñ#9Ò9Øô "×4Ñ4°ZÔ@Ä^×EcÑEcÐdnÔEoØ&*�OÜ#1×#DÑ#DÀZÓ#P�LØð
 ˆHØ”E—I‘IŠ~Ø—‘”Ø—H‘H˜Q“K�ñc ðl �?‰?œc×4Ñ4Ò4Ø×)Ñ)¨#¨|¸UÀJÐPU×P[ÑP[Ô\ØÐð: 	×Ñ˜S ! Z°·±¸oÈtÐUZÔ[àÐr:   Úclosurerd   c           	      ó|  — t         j                  rt        dt        |«      z   «       | j                  €t        «       | _        t        |«      }d }|D ]â  }t         j                  r,t        d| j                  |«      z   dz   t        |«      z   «       t        |j                  t        «      r3|s|t        j                  k(  r|€
t        «       }|j                  |«       ŒŒ|j                  j                  D ]>  }| j!                  ||«      }|€Œ|j#                  t%        ||¬«      | j                  «       Œ@ Œä d }	|€H|t        j                  k7  r5t'        |«      dk(  r|}	n$| j)                  |«      t*        j,                  k7  r|}	|	€Et        |«      }	t/        «       }
|t        j                  k(  }|D ]  }| j1                  ||	|
d||«       Œ |t        j                  k(  r| j3                  |	|	|u «      }	|�:|rt5        j6                  |	«      s#|D ]  }|	j#                  || j                  «       Œ  t'        |	«      dk(  ry |	S )Nz&in computeReachSet, starting closure: ztesting z at ©ÚstateÚconfigrE   Fr   )r'   rI   rK   rL   r/   Údictr   ÚgetTokenNameÚ
isinstancer¯   r   r   r~   ÚlistÚappendrœ   ÚgetReachableTargetÚaddr   rv   r�   r   rp   Úsetr¬   Ú"removeAllConfigsNotInRuleStopStater   ÚhasConfigInRuleStopState)r7   r¬   r�   rd   ÚintermediateÚskippedStopStatesÚcÚtransÚtargetr–   ÚclosureBusyÚtreatEofAsEpsilons               r9   r‹   z"ParserATNSimulator.computeReachSet—  s  € Ü×#Ò#ÜÐ:¼SÀ»\ÑIÔJà�?‰?Ð"Ü"›fˆDŒOä# GÓ,ˆð !Ðð ò 	YˆAÜ!×'Ò'Ü�j 4×#4Ñ#4°QÓ#7Ñ7¸&Ñ@Ä3ÀqÃ6ÑIÔJä˜!Ÿ'™'¤=Ô1Ù˜a¤5§9¡9šnØ(Ð0Ü,0«FÐ)Ø%×,Ñ,¨QÔ/ØàŸ™×,Ñ,ò Y�Ø×0Ñ0°¸Ó:�ØÑ%Ø ×$Ñ$¤Y°VÀAÔ%FÈÏÉÕXñYð	Yð$ ˆð Ð$¨¬E¯I©IªÜ�<Ó  !Ò#ð
 %‘Ø×"Ñ" <Ó0´#×2HÑ2HÒHð %�ð
 ˆ=Ü  Ó)ˆEÜ›%ˆKØ !¤U§Y¡Y¡ÐØ!ò W�Ø—‘˜Q  {°E¸7ÐDUÕVðWð ”—	‘	Š>ð$ ×;Ñ;¸EÀ5ÈLÐCXÓYˆEð Ð(±GÄ^×ElÑElÐmrÔEsØ&ò .�Ø—	‘	˜!˜TŸ_™_Õ-ð.äˆu‹:�qŠ=ØàˆLr:   rH   ÚlookToEndOfRulec                 ó&  — t        j                  |«      r|S t        |j                  «      }|D ]ß  }t	        |j
                  t        «      r|j                  || j                  «       Œ:|sŒ=|j
                  j                  sŒT| j                  j                  |j
                  «      }t        j                  |v sŒŒ| j                  j                  |j
                  j                     }|j                  t!        ||¬«      | j                  «       Œá |S ©Nr®   )r   ÚallConfigsInRuleStopStatesr   rd   r³   r¯   r   r·   r/   ÚepsilonOnlyTransitionsr0   Ú
nextTokensr   ÚEPSILONÚruleToStopStateÚ	ruleIndexr   )r7   rH   rÂ   Úresultr°   rÇ   ÚendOfRuleStates          r9   r¹   z5ParserATNSimulator.removeAllConfigsNotInRuleStopState  sÈ   € Ü×4Ñ4°WÔ=ØˆNÜ˜gŸo™oÓ.ˆØò 	`ˆFÜ˜&Ÿ,™,¬Ô6Ø—
‘
˜6 4§?¡?Ô3ØÚ 6§<¡<×#FÓ#FØ!ŸX™X×0Ñ0°·±Ó>�
Ü—=‘= JÒ.Ø%)§X¡X×%=Ñ%=¸f¿l¹l×>TÑ>TÑ%U�NØ—J‘Jœy¨~ÀfÔMÈtÏÉÕ_ð	`ð ˆr:   ÚpÚctxc           	      ó"  — t        | j                  |«      }t        |«      }t        dt	        |j
                  «      «      D ]K  }|j
                  |   j                  }t        ||dz   |«      }t        «       }	| j                  |||	d|d«       ŒM |S )Nr   rE   TF)
r   r0   r   Úrangerv   rœ   r¿   r   r¸   r¬   )
r7   rÍ   rÎ   rd   ÚinitialContextrH   Úir¿   r½   rÀ   s
             r9   rZ   z$ParserATNSimulator.computeStartState'  s‡   € ä9¸$¿(¹(ÀCÓHˆÜ˜wÓ'ˆä�qœ#˜aŸm™mÓ,Ó-ò 	HˆAØ—]‘] 1Ñ%×,Ñ,ˆFÜ˜& ! A¡# ~Ó6ˆAÜ›%ˆKØ�L‰L˜˜G [°$¸ÀÕGð		Hð
 ˆr:   c                 ó¬  — t        «       }t        |j                  «      }|D ]º  }|j                  dk7  rŒ|j                  j                  | j                  | j                  «      }|€ŒF|j                  ||j                  j                  <   ||j                  ur(|j                  t        ||¬«      | j                  «       ŒŸ|j                  || j                  «       Œ¼ |D ]p  }|j                  dk(  rŒ|j                  s6|j                  |j                  j                  d «      }||j                  k(  rŒU|j                  || j                  «       Œr |S )NrE   )r°   Úsemantic)r±   r   rd   rf   ÚsemanticContextÚevalPrecedencer(   r-   Úcontextr¯   ÚstateNumberr·   r   r/   ÚprecedenceFilterSuppressedÚget)r7   rH   ÚstatesFromAlt1Ú	configSetr°   ÚupdatedContextr×   s          r9   r\   z(ParserATNSimulator.applyPrecedenceFilterk  s#  € Ü›ˆÜ  §¡Ó1ˆ	Øò 	7ˆFà�z‰z˜QŠØØ#×3Ñ3×BÑBÀ4Ç;Á;ÐPT×PbÑPbÓcˆNØÐ%àà7=·~±~ˆN˜6Ÿ<™<×3Ñ3Ñ4Ø V×%;Ñ%;Ñ;Ø—‘œi¨vÀÔOÐQU×Q`ÑQ`Õaà—‘˜f d§o¡oÕ6ð	7ð ò 	3ˆFØ�z‰z˜QŠàð ×4Ò4Ø(×,Ñ,¨V¯\©\×-EÑ-EÀtÓL�Ø˜FŸN™NÒ*àà�M‰M˜& $§/¡/Õ2ð	3ð" Ðr:   r¾   Úttypec                 ój   — |j                  |d| j                  j                  «      r|j                  S y r3   )Úmatchesr0   ÚmaxTokenTyper¿   )r7   r¾   rÞ   s      r9   r¶   z%ParserATNSimulator.getReachableTarget�  s)   € Ø�=‰=˜  4§8¡8×#8Ñ#8Ô9Ø—<‘<Ðàr:   Ú	ambigAltsr    c                 ó”  — d g|dz   z  }|D ]A  }|j                   |v sŒt        ||j                      |j                  «      ||j                   <   ŒC d}t        d|dz   «      D ]6  }||   €t        j
                  ||<   Œ||   t        j
                  usŒ2|dz  }Œ8 |dk(  rd }t        j                  rt        dt        |«      z   «       |S )NrE   r   zgetPredsForAmbigAlts result )
rf   r   rÕ   rÐ   r   ÚNONEr'   rI   rK   r   )r7   râ   rH   r    r¢   r½   Ú	nPredAltsrÒ   s           r9   rž   z'ParserATNSimulator.getPredsForAmbigAlts–  sÚ   € ð �F˜e a™iÑ(ˆ	Øò 	RˆAØ�u‰u˜	Ò!Ü#,¨Y°q·u±uÑ-=¸q×?PÑ?PÓ#Q�	˜!Ÿ%™%Ò ð	Rð ˆ	Ü�q˜% ™'Ó"ò 	ˆAØ˜‰|Ð#Ü.×3Ñ3�	˜!’Ø˜1‘¤_×%9Ñ%9Ò9Ø˜Q‘‘	ð		ð �aŠ<ØˆIÜ×#Ò#ÜÐ0´8¸IÓ3FÑFÔGØÐr:   r¢   c                 ó¾   — g }d}t        dt        |«      «      D ]=  }||   }|�||v r|j                  t        ||«      «       |t        j
                  usŒ<d}Œ? |sy |S )NFrE   T)rÐ   rv   rµ   r$   r   rä   )r7   râ   r¢   ÚpairsÚcontainsPredicaterÒ   Úpreds          r9   rŸ   z*ParserATNSimulator.getPredicatePredictions¶  sp   € ØˆØ!ÐÜ�qœ#˜i›.Ó)ò 	)ˆAØ˜Q‘<ˆDàÐ$¨¨i©Ø—‘œ^¨D°!Ó4Ô5Øœ?×/Ñ/Ò/Ø$(Ñ!ð	)ñ !Øàˆr:   c                 ó   — | j                  ||«      \  }}| j                  |«      }|t        j                  k7  r|S t	        |«      dkD  r&| j                  |«      }|t        j                  k7  r|S t        j                  S r3   )Ú splitAccordingToSemanticValidityÚ#getAltThatFinishedDecisionEntryRuler   rp   rv   )r7   rH   rA   ÚsemValidConfigsÚsemInvalidConfigsrf   s         r9   ro   zJParserATNSimulator.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRuleô  s}   € Ø-1×-RÑ-RÐSZÐ\hÓ-iÑ*ˆÐ*Ø×6Ñ6°ÓGˆØ”×&Ñ&Ò&ØˆJäÐ Ó! !Ò#Ø×:Ñ:Ð;LÓMˆCØ”C×*Ñ*Ò*Ø�
Ü×%Ñ%Ð%r:   c                 ó6  — t        «       }|D ]b  }|j                  dkD  s6t        |j                  t        «      sŒ-|j
                  j                  «       sŒH|j                  |j                  «       Œd t        |«      dk(  rt        j                  S t        |«      S r3   )r¸   ÚreachesIntoOuterContextr³   r¯   r   r×   ÚhasEmptyPathr·   rf   rv   r   rp   rw   )r7   rH   r†   r½   s       r9   rì   z6ParserATNSimulator.getAltThatFinishedDecisionEntryRule   sw   € Ü‹uˆØò 	 ˆAØ×(Ñ(¨Ò*¬z¸!¿'¹'Ä=Õ/QÐVW×V_ÑV_×VlÑVlÕVnØ—‘˜Ÿ™•ð	 ô ˆt‹9�aŠ<Ü×)Ñ)Ð)ä�t“9Ðr:   c                 ó^  — t        |j                  «      }t        |j                  «      }|D ]{  }|j                  t        j                  urL|j                  j                  | j                  |«      }|r|j                  |«       ŒY|j                  |«       Œk|j                  |«       Œ} ||fS r<   )r   rd   rÕ   r   rä   Úevalr(   r·   )r7   rH   rA   Ú	succeededÚfailedr½   ÚpredicateEvaluationResults          r9   rë   z3ParserATNSimulator.splitAccordingToSemanticValidity  s’   € Ü  §¡Ó1ˆ	Ü˜gŸo™oÓ.ˆØò 	!ˆAØ× Ñ ¬×(<Ñ(<Ñ<Ø,-×,=Ñ,=×,BÑ,BÀ4Ç;Á;ÐP\Ó,]Ð)Ù,Ø—M‘M !Õ$à—J‘J˜q•Mà—‘˜aÕ ð	!ð ˜&Ð!Ð!r:   ÚpredPredictionsÚcompletec                 óF  — t        «       }|D �]  }|j                  t        j                  u r!|j	                  |j
                  «       |s |S ŒA|j                  j                  | j                  |«      }t        j                  st        j                  r&t        dt        |«      z   dz   t        |«      z   «       |sŒ°t        j                  st        j                  r!t        dt        |j
                  «      z   «       |j	                  |j
                  «       |r�Œ |S  |S )Nz
eval pred ú=zPREDICT )r¸   ré   r   rä   r·   rf   ró   r(   r'   rI   rx   rK   rL   )r7   r÷   rA   rø   ÚpredictionsÚpairrö   s          r9   ru   z&ParserATNSimulator.evalSemanticContext'  sç   € Ü“eˆØ#ó 	ˆDØ�y‰yœO×0Ñ0Ñ0Ø—‘ §¡Ô)ÙØð Ðð Ø(,¯	©	¯©°t·{±{ÀLÓ(QÐ%Ü!×'Ò'Ô+=×+GÒ+GÜ�l¤S¨£YÑ.°Ñ4´sÐ;TÓ7UÑUÔVâ(Ü%×+Ò+Ô/A×/KÒ/KÜ˜*¤s¨4¯8©8£}Ñ4Ô5Ø—‘ §¡Ô)ÛØØÐð!	ð  Ðr:   r°   rÀ   ÚcollectPredicatesrÁ   c           	      ó6   — d}| j                  |||||||«       y r3   )ÚclosureCheckingStopState)r7   r°   rH   rÀ   rý   rd   rÁ   ÚinitialDepths           r9   r¬   zParserATNSimulator.closureC  s'   € ØˆØ×%Ñ% f¨g°{ÐDUØ!(¨,Ð8Iõ	Kr:   Údepthc           
      ó–  — t         j                  rt        dt        |«      z   dz   «       t	        |j
                  t        «      �rí|j                  j                  «       �srt        dt        |j                  «      «      D �]N  }|j                  j                  |«      }	|	t        j                  u rœ|rA|j                  t        |j
                  t        j                   |¬«      | j"                  «       Œtt         j                  r1t        d| j%                  |j
                  j&                  «      z   «       | j)                  |||||||«       ŒÍ| j*                  j,                  |	   }
|j                  j/                  |«      }t        |
|j0                  ||j2                  ¬«      }|j4                  |_        | j7                  ||||||dz
  |«       �ŒQ y |r|j                  || j"                  «       y t         j                  r1t        d| j%                  |j
                  j&                  «      z   «       | j)                  |||||||«       y )Nzclosure(ú)r   ©r¯   r×   r°   zFALLING off rule )r¯   rf   r×   rÔ   rE   )r'   rI   rK   rL   r³   r¯   r   r×   ÚisEmptyrÐ   rv   ÚgetReturnStater   ÚEMPTY_RETURN_STATEr·   r   rW   r/   ÚgetRuleNamerÊ   Úclosure_r0   ÚstatesÚ	getParentrf   rÕ   rð   rÿ   )r7   r°   rH   rÀ   rý   rd   r  rÁ   rÒ   r¯   ÚreturnStateÚ
newContextr½   s                r9   rÿ   z+ParserATNSimulator.closureCheckingStopStateI  sñ  € Ü×#Ò#Ü�*œs 6›{Ñ*¨SÑ0Ô1ä�f—l‘l¤MÕ2ð —>‘>×)Ñ)Õ+Ü˜q¤# f§n¡nÓ"5Ó6ó E�AØ"ŸN™N×9Ñ9¸!Ó<�EØÔ 1× DÑ DÑDÙ"Ø#ŸK™K¬	¸¿¹ÔN_×NeÑNeÐntÔ(uÐw{÷  xGñ  xGô  HØ$ô  2×7Ò7Ü %Ð&9¸D×<LÑ<LÈVÏ\É\×McÑMcÓ<dÑ&dÔ eØ ŸM™M¨&°'¸;ÐHYØ%,¨eÐ5FôHà Ø"&§(¡(§/¡/°%Ñ"8�KØ!'§¡×!9Ñ!9¸!Ó!<�JÜ!¨¸¿¹ÈZÐbh×bxÑbxÔy�Að 17×0NÑ0N�AÔ-Ø×1Ñ1°!°W¸kÐK\Ð^eÐglÐopÑgpð  sDö  Eð)Eð* Ùà—‘˜F D§O¡OÔ4Øô &×+Ò+ÜÐ-°×0@Ñ0@ÀÇÁ×AWÑAWÓ0XÑXÔYà�‰�f˜g {Ð4EÀwÐPUÐWhÕir:   c           
      ón  — |j                   }|j                  s|j                  || j                  «       d}	|j                  D �]o  }
|	rd}	| j                  |«      rŒ|xr t        |
t        «       }| j                  ||
||dk(  ||«      }|€ŒK|}t        |j                   t        «      rµ| j                  �J| j                  j                  r4|
j                  | j                  j                  j                  k(  rd|_        |xj                   dz  c_        ||v rŒ×|j                  |«       d|_        |dz  }t$        j&                  rUt)        dt+        |«      z   «       n=|
j,                  s||v r�Œ.|j                  |«       t        |
t.        «      r
|dk\  r|dz  }| j1                  |||||||«       �Œr y )NTFr   rE   zdips into outer ctx: )r¯   rÆ   r·   r/   rœ   Ú'canDropLoopEntryEdgeInLeftRecursiveRuler³   r   ÚgetEpsilonTargetr   r.   rS   ÚoutermostPrecedenceReturnr[   rÊ   rÙ   rð   ÚdipsIntoOuterContextr'   rI   rK   rL   Ú	isEpsilonr   rÿ   )r7   r°   rH   rÀ   rý   rd   r  rÁ   rÍ   Úfirstr�   ÚcontinueCollectingr½   ÚnewDepths                 r9   r	  zParserATNSimulator.closure_s  s–  € Ø�L‰Lˆà×'Ò'Ø�K‰K˜ §¡Ô0ð ˆØ—‘ó '	AˆAÙØ�Ø×?Ñ?ÀÔGØà!2Ò!Z¼:ÀaÔIYÓ;ZÐ7ZÐØ×%Ñ% f¨aÐ1CÀUÈaÁZÐQXÐZkÓlˆAØ‰}Ø �Ü˜vŸ|™|¬]Ô;ð —y‘yÐ,°·±×1HÒ1HØ×6Ñ6¸$¿)¹)×:QÑ:Q×:[Ñ:[Ò[Ø;?˜AÔ8Ø×-Ò-°Ñ2Õ-Ø˜KÑ'à Ø—O‘O AÔ&Ø37�GÔ0Ø ‘M�HÜ)×/Ò/ÜÐ5¼¸A»Ñ>Õ?àŸ;š;Ø Ñ+á$Ø#Ÿ™¨Ô*Ü! !¤^Ô4à# qš=Ø$¨™M˜Hà×-Ñ-¨a°¸+ÐGYÐ[bÐdlÐnö  AñO'	Ar:   c                 ó¢  — |j                   }|j                  t        j                  k7  s@|j                  r4|j
                  j                  «       s|j
                  j                  «       ryt        |j
                  «      }t        d|«      D ]O  }| j                  j                  |j
                  j                  |«         }|j                  |j                  k7  sŒO y |j                  d   j                  }|j                   j"                  }| j                  j                  |   }t        d|«      D �]  }|j
                  j                  |«      }	| j                  j                  |	   }t        |j                  «      dk7  s|j                  d   j$                  s y|j                  d   j                  }
|j                  t        j&                  k(  r|
|u rŒ¦||u rŒ«|
|u rŒ°|
j                  t        j&                  k(  rNt        |
j                  «      dk(  r6|
j                  d   j$                  r|
j                  d   j                  |u r�Œ y y)NFr   rE   T)r¯   Ú	stateTyper   ÚSTAR_LOOP_ENTRYÚisPrecedenceDecisionr×   r  rñ   rv   rÐ   r0   r
  r  rÊ   rœ   r¿   ÚendStaterØ   r  Ú	BLOCK_END)r7   r°   rÍ   ÚnumCtxsrÒ   r  ÚdecisionStartStateÚblockEndStateNumÚblockEndStateÚreturnStateNumberÚreturnStateTargets              r9   r  z:ParserATNSimulator.canDropLoopEntryEdgeInLeftRecursiveRuleÿ  s  € à�L‰Lˆð �;‰;œ(×2Ñ2Ò2Ø×-Ò-Ø—>‘>×)Ñ)Ô+Ø—>‘>×.Ñ.Ô0Øô �f—n‘nÓ%ˆÜ�q˜'Ó"ò 	ˆAØŸ(™(Ÿ/™/¨&¯.©.×*GÑ*GÈÓ*JÑKˆKØ×$Ñ$¨¯©Ó3Ùð	ð
 Ÿ]™]¨1Ñ-×4Ñ4ÐØ-×6Ñ6×BÑBÐØŸ™Ÿ™Ð(8Ñ9ˆô �q˜'Ó"ó  	ˆAØ &§¡× =Ñ =¸aÓ @ÐØŸ(™(Ÿ/™/Ð*;Ñ<ˆKä�;×*Ñ*Ó+¨qÒ0¸×8OÑ8OÐPQÑ8R×8\Ò8\Ùð !,× 7Ñ 7¸Ñ :× AÑ AÐØ×$Ñ$¬×(:Ñ(:Ò:Ð?PÐTUÑ?UØð
 ˜mÑ+Øð ! MÑ1Øð !×*Ñ*¬h×.@Ñ.@Ò@ÜÐ)×5Ñ5Ó6¸!Ò;Ø%×1Ñ1°!Ñ4×>Ò>Ø%×1Ñ1°!Ñ4×;Ñ;¸qÑ@Ùñ ðA 	ðD r:   rQ   c                 óx   — | j                   �|dk\  r| j                   j                  |   S dt        |«      z   dz   S )Nr   z<rule ú>)r(   Ú	ruleNamesrL   )r7   rQ   s     r9   r  zParserATNSimulator.getRuleName@  s;   € Ø�;‰;Ð" u¨a¢xØ—;‘;×(Ñ(¨Ñ/Ð/àœc %›jÑ(¨3Ñ.Ð.r:   c                 ó&   — | j                  ||«      S r<   )ÚruleTransition©Úsimr°   r�   rý   Ú	inContextrd   rÁ   s          r9   ú<lambda>zParserATNSimulator.<lambda>G  s   € Ø×Ñ˜6 1Ó%ð r:   c                 ó,   — | j                  |||||«      S r<   )ÚprecedenceTransitionr(  s          r9   r+  zParserATNSimulator.<lambda>I  s   € Ø× Ñ  ¨Ð,=¸yÈ'ÓRð r:   c                 ó,   — | j                  |||||«      S r<   )ÚpredTransitionr(  s          r9   r+  zParserATNSimulator.<lambda>K  s   € Ø×Ñ˜6 1Ð&7¸ÀGÓLð r:   c                 ó&   — | j                  ||«      S r<   )ÚactionTransitionr(  s          r9   r+  zParserATNSimulator.<lambda>M  s   € Ø×Ñ˜V QÓ'ð r:   c                 ó0   — t        |j                  |¬«      S rÄ   )r   r¿   r(  s          r9   r+  zParserATNSimulator.<lambda>O  s   € Ü˜Ÿ™¨Ô0ð r:   c                 óz   — |r8|j                  t        j                  dd«      rt        |j                  |¬«      S d S ©Nr   rE   r®   ©rà   r   r~   r   r¿   r(  s          r9   r+  zParserATNSimulator.<lambda>Q  ó7   € Ù4EÈ!Ï)É)ÔTY×T]ÑT]Ð_`ÐbcÔJdŒ	˜Ÿ™¨Ô0ð Øjnð r:   c                 óz   — |r8|j                  t        j                  dd«      rt        |j                  |¬«      S d S r4  r5  r(  s          r9   r+  zParserATNSimulator.<lambda>S  r6  r:   c                 óz   — |r8|j                  t        j                  dd«      rt        |j                  |¬«      S d S r4  r5  r(  s          r9   r+  zParserATNSimulator.<lambda>U  r6  r:   r*  c           	      óp   — | j                   j                  |j                  d «      }|€y  || ||||||«      S r<   )ÚepsilonTargetMethodsrÚ   ÚserializationType)r7   r°   r�   rý   r*  rd   rÁ   rc   s           r9   r  z#ParserATNSimulator.getEpsilonTargetX  sA   € Ø×%Ñ%×)Ñ)¨!×*=Ñ*=¸tÓDˆØˆ9Øá�T˜6 1Ð&7¸ÀGÐM^Ó_Ð_r:   c                 óÄ   — t         j                  r:t        dt        |j                  «      z   dz   t        |j
                  «      z   «       t        |j                  |¬«      S )NzACTION edge rF   r®   )r'   rI   rK   rL   rÊ   ÚactionIndexr   r¿   )r7   r°   r�   s      r9   r1  z#ParserATNSimulator.actionTransition_  sE   € Ü×#Ò#Ü�.¤3 q§{¡{Ó#3Ñ3°cÑ9¼CÀÇÁÓ<NÑNÔOÜ˜qŸx™x°Ô7Ð7r:   Úptc                 óP  — t         j                  rnt        dt        |«      z   dz   t        |j                  «      z   dz   «       | j
                  �/t        dt        | j
                  j                  «       «      z   «       d }|rå|rã|r¤| j                  j                  }| j                  j                  | j                  «       |j                  «       j                  | j
                  | j                  «      }| j                  j                  |«       |rlt        |j                  |¬«      }nTt!        |j"                  |j                  «       «      }	t        |j                  |	|¬«      }nt        |j                  |¬«      }t         j                  rt        dt        |«      z   «       |S )NúPRED (collectPredicates=ú) z>=_p, ctx dependent=trueúcontext surrounding pred is r®   ©r¯   rÔ   r°   úconfig from pred transition=)r'   rI   rK   rL   Ú
precedencer(   ÚgetRuleInvocationStackr+   rQ   r`   r,   ÚgetPredicateró   r-   r   r¿   r   rÕ   ©
r7   r°   r>  rý   r*  rd   r½   ÚcurrentPositionÚpredSucceedsÚ	newSemCtxs
             r9   r-  z'ParserATNSimulator.precedenceTransitiond  sD  € Ü×#Ò#ÜÐ,¬sÐ3DÓ/EÑEÈÑLÜ˜Ÿ™Ó&ñ'Ø)CñDô Eà�{‰{Ð&ÜÐ4´s¸4¿;¹;×;]Ñ;]Ó;_Ó7`Ñ`ÔaàˆÙ¡Ùð
 #'§+¡+×"3Ñ"3�Ø—‘× Ñ  ×!1Ñ!1Ô2Ø!Ÿ™Ó0×5Ñ5°d·k±kÀ4×CUÑCUÓV�Ø—‘× Ñ  Ô1ÙÜ!¨¯	©	¸&ÔA‘Aä& v×'=Ñ'=¸r¿¹Ó?PÓQ�	Ü B§I¡I¸	È&ÔQ‘ä §	¡	°&Ô9ˆAä×#Ò#ÜÐ0´3°q³6Ñ9Ô:Øˆr:   c                 óÞ  — t         j                  r�t        dt        |«      z   dz   t        |j                  «      z   dz   t        |j
                  «      z   dz   t        |j                  «      z   «       | j                  �/t        dt        | j                  j                  «       «      z   «       d }|rý|j                  r|j                  rå|rã|r¤| j                  j                  }| j                  j                  | j                  «       |j                  «       j                  | j                  | j                  «      }| j                  j                  |«       |rlt!        |j"                  |¬«      }nTt%        |j&                  |j                  «       «      }	t!        |j"                  |	|¬«      }nt!        |j"                  |¬«      }t         j                  rt        dt        |«      z   «       |S )	Nr@  rA  rF   z, ctx dependent=rB  r®   rC  rD  )r'   rI   rK   rL   rÊ   Ú	predIndexÚisCtxDependentr(   rF  r+   rQ   r`   r,   rG  ró   r-   r   r¿   r   rÕ   rH  s
             r9   r/  z!ParserATNSimulator.predTransition‚  s‚  € Ü×#Ò#ÜÐ,¬sÐ3DÓ/EÑEÈÑLÌsÐSU×S_ÑS_ÓO`Ñ`ØñÜ˜bŸl™lÓ+ñ,Ø.@ñAÜCFÀr×GXÑGXÓCYñZô [à�{‰{Ð&ÜÐ4´s¸4¿;¹;×;]Ñ;]Ó;_Ó7`Ñ`ÔaàˆÙ b×&7Ò&7¸B×<MÒ<MÑR[Ùð
 #'§+¡+×"3Ñ"3�Ø—‘× Ñ  ×!1Ñ!1Ô2Ø!Ÿ™Ó0×5Ñ5°d·k±kÀ4×CUÑCUÓV�Ø—‘× Ñ  Ô1ÙÜ!¨¯	©	¸&ÔA‘Aä& v×'=Ñ'=¸r¿¹Ó?PÓQ�	Ü B§I¡I¸	È&ÔQ‘ä §	¡	°&Ô9ˆAä×#Ò#ÜÐ0´3°q³6Ñ9Ô:Øˆr:   c                 óR  — t         j                  rJt        d| j                  |j                  j
                  «      z   dz   t        |j                  «      z   «       |j                  }t        j                  |j                  |j                  «      }t        |j                  ||¬«      S )Nz
CALL rule z, ctx=r  )r'   rI   rK   r  r¿   rÊ   rL   r×   ÚfollowStater   ÚcreaterØ   r   )r7   r°   r�   r  r  s        r9   r'  z!ParserATNSimulator.ruleTransition   s|   € Ü×#Ò#Ü�, ×!1Ñ!1°!·(±(×2DÑ2DÓ!EÑEÈÑPÔSVÐW]×WeÑWeÓSfÑfÔgØ—m‘mˆÜ/×6Ñ6°v·~±~À{×G^ÑG^Ó_ˆ
Ü˜qŸx™x°ÀFÔLÐLr:   c                 óV   — t        j                  |«      }t        j                  |«      S r<   )r   rŽ   ÚgetAlts)r7   rH   Úaltsetss      r9   r�   z%ParserATNSimulator.getConflictingAlts§  s#   € Ü ×9Ñ9¸'ÓBˆÜ×%Ñ% gÓ.Ð.r:   c                 óª   — d }|j                   t        j                  k7  r't        «       }|j	                  |j                   «       |S |j
                  }|S r<   )r‘   r   rp   r¸   r·   rs   )r7   rH   rs   s      r9   r�   z0ParserATNSimulator.getConflictingAltsOrUniqueAltÏ  sQ   € ØˆØ×Ñœs×5Ñ5Ò5Ü!›eˆOØ×Ñ × 1Ñ 1Ô2ð Ðð &×5Ñ5ˆOØÐr:   c                 ó  — |t         j                  k(  ry| j                  �c| j                  j                  �M|t	        | j                  j                  «      k  r+| j                  j                  |   dz   t        |«      z   dz   S t        |«      S )Nr~   ú<r$  )r   r~   r(   rY   rv   rL   )r7   r�   s     r9   r²   zParserATNSimulator.getTokenNameØ  sr   € ØŒe�i‰iŠ<ØØ�;‰;Ð"Ø�K‰K×$Ñ$Ð0Ø”�D—K‘K×,Ñ,Ó-Ò-ØŸ™×0Ñ0°Ñ3°cÑ9¼CÀ»FÑBÀSÑHÐHä�q“6ˆMr:   c                 óB   — | j                  |j                  d«      «      S ©NrE   )r²   rj   )r7   r?   s     r9   rM   z#ParserATNSimulator.getLookaheadNameâ  s   € Ø× Ñ  §¡¨!£Ó-Ð-r:   Únvaec                 ó  — t        d«       |j                  «       D ]è  }d}t        |j                  j                  «      dkD  r‡|j                  j                  d   }t        |t        «      rd| j                  |j                  «      z   }n?t        |t        «      r/t        |t        «      }|rdnddz   t        |j                  «      z   }t        |j                  | j                  d«      d	z   |z   t        j                   ¬
«       Œê y )Nzdead end configs: zno edgesr   zAtom ú~Ú zSet TrF   )Úfile)rK   ÚgetDeadEndConfigsrv   r¯   rœ   r³   r    r²   Úlabelr!   r"   rL   r¸   rX   r(   ÚsysÚstderr)r7   rZ  r½   r¾   r�   Únegs         r9   ÚdumpDeadEndConfigsz%ParserATNSimulator.dumpDeadEndConfigsé  sÑ   € ÜÐ"Ô#Ø×'Ñ'Ó)ò 		PˆAØˆEÜ�1—7‘7×&Ñ&Ó'¨Ò)Ø—G‘G×'Ñ'¨Ñ*�Ü˜a¤Ô0Ø# T×%6Ñ%6°q·w±wÓ%?Ñ?‘EÜ ¤=Ô1Ü$ QÔ(8Ó9�CÙ$'™S¨R°Ñ7¼¸Q¿U¹U»ÑC�EÜ�!—*‘*˜TŸ[™[¨$Ó/°#Ñ5¸Ñ=ÄCÇJÁJÖOñ		Pr:   c                 ór   — t        | j                  ||j                  |«      |j                  d«      ||«      S rY  )r%   r(   rÚ   rN   )r7   r?   rA   rH   rh   s        r9   rn   zParserATNSimulator.noViableAltö  s/   € Ü# D§K¡K°¸¿	¹	À*Ó8MÈuÏxÉxÐXYË{Ð\cÐeqÓrÐrr:   c                 ó¶   — t         j                  }|D ]C  }|t         j                  k(  r|j                  }Œ#|j                  |k7  sŒ3t         j                  c S  |S r<   )r   rp   rf   )r7   rH   rf   r½   s       r9   r�   zParserATNSimulator.getUniqueAltù  sQ   € Ü×$Ñ$ˆØò 	.ˆAØ”c×,Ñ,Ò,Ø—e‘e‘Ø—‘˜“Ü×-Ñ-Ò-ð		.ð
 ˆ
r:   Úfrom_Útoc                 ó,  — t         j                  r;t        dt        |«      z   dz   t        |«      z   dz   | j	                  |«      z   «       |€y | j                  ||«      }|�|dk  s|| j                  j                  kD  r|S |j                  €"d g| j                  j                  dz   z  |_        ||j                  |dz   <   t         j                  rA| j                  €d n| j                  j                  }t        d|j                  |«      z   «       |S )NzEDGE z -> z upon r¤   é   rE   zDFA=
)r'   rI   rK   rL   r²   r]   r0   rá   rˆ   r(   rY   rX   )r7   rb   rg  r�   rh  Únamess         r9   rŒ   zParserATNSimulator.addDFAEdge  sò   € Ü×#Ò#Ü�'œC ›JÑ&¨Ñ/´#°b³'Ñ9¸HÑDÀt×GXÑGXÐYZÓG[Ñ[Ô\àˆ:Øà×Ñ˜c 2Ó&ˆØˆ=˜A šF a¨$¯(©(×*?Ñ*?Ò&?ØˆIà�;‰;ÐØ˜& D§H¡H×$9Ñ$9¸AÑ$=Ñ>ˆEŒKØˆ�‰�A�a‘CÑä×#Ò#Ø ŸK™KÐ/‘D°T·[±[×5MÑ5MˆEÜ�(˜SŸ\™\¨%Ó0Ñ0Ô1àˆ	r:   c                 óž  — || j                   u r|S |j                  j                  |d «      }|�|S t        |j                  «      |_        |j
                  j                  s6|j
                  j                  | «       |j
                  j                  d«       ||j                  |<   t        j                  rt        dt        |«      z   «       |S )NTzadding new DFA state: )rm   r
  rÚ   rv   rØ   rH   ÚreadonlyÚoptimizeConfigsÚsetReadonlyr'   rI   rK   rL   )r7   rb   r‚   Úexistings       r9   r]   zParserATNSimulator.addDFAState:  s    € Ø�—
‘
‰?ØˆHð —:‘:—>‘> ! TÓ*ˆØÐØˆOä˜CŸJ™J›ˆŒØ�y‰y×!Ò!Ø�I‰I×%Ñ% dÔ+Ø�I‰I×!Ñ! $Ô'Øˆ�
‰
�1‰Ü×#Ò#ÜÐ*¬S°«VÑ3Ô4Øˆr:   rs   r…   c                 óŠ  — t         j                  st         j                  r^t        dt	        |j
                  «      z   dz   t	        |«      z   dz   | j                  j                  «       j                  ||«      z   «       | j                  �9| j                  j                  «       j                  | j                  |||||«       y y )Nz%reportAttemptingFullContext decision=rF   ú, input=)r'   rI   Úretry_debugrK   rL   r@   r(   ÚgetTokenStreamÚgetTextÚgetErrorListenerDispatchry   )r7   rb   rs   rH   rh   r…   s         r9   ry   z.ParserATNSimulator.reportAttemptingFullContextL  sµ   € Ü×#Ò#Ô'9×'EÒ'EÜÐ9¼CÀÇÁÓ<MÑMÐPSÑSÔVYÐZaÓVbÑbØ)ñ*Ø,0¯K©K×,FÑ,FÓ,H×,PÑ,PÐQ[Ð]fÓ,gñhô ià�;‰;Ð"Ø�K‰K×0Ñ0Ó2×NÑNÈtÏ{É{Ð\_ÐakÐmvð  yHð  JQõ  Rð #r:   r|   c                 óŠ  — t         j                  st         j                  r^t        dt	        |j
                  «      z   dz   t	        |«      z   dz   | j                  j                  «       j                  ||«      z   «       | j                  �9| j                  j                  «       j                  | j                  |||||«       y y )Nz"reportContextSensitivity decision=rF   rr  )r'   rI   rs  rK   rL   r@   r(   rt  ru  rv  r©   )r7   rb   r|   rH   rh   r…   s         r9   r©   z+ParserATNSimulator.reportContextSensitivityS  s°   € Ü×#Ò#Ô'9×'EÒ'EÜÐ6¼¸S¿\¹\Ó9JÑJÈSÑPÔSVÐW^ÓS_Ñ_Ø)ñ*Ø,0¯K©K×,FÑ,FÓ,H×,PÑ,PÐQ[Ð]fÓ,gñhô ià�;‰;Ð"Ø�K‰K×0Ñ0Ó2×KÑKÈDÏKÉKÐY\Ð^hÐjsÐuð  BIõ  Jð #r:   Úexactc           	      óx  — t         j                  st         j                  rTt        dt	        |«      z   dz   t	        |«      z   dz   | j
                  j                  «       j                  ||«      z   «       | j
                  �:| j
                  j                  «       j                  | j
                  ||||||«       y y )NzreportAmbiguity rF   rr  )
r'   rI   rs  rK   rL   r(   rt  ru  rv  r}   )r7   rb   r‚   rh   r…   rx  râ   rH   s           r9   r}   z"ParserATNSimulator.reportAmbiguity[  s­   € ä×#Ò#Ô'9×'EÒ'Eô" Ð$¤s¨9£~Ñ5¸Ñ;¼cÀ'»lÑJØ)ñ*Ø,0¯K©K×,FÑ,FÓ,H×,PÑ,PÐQ[Ð]fÓ,gñhô ià�;‰;Ð"Ø�K‰K×0Ñ0Ó2×BÑBÀ4Ç;Á;ÐPSÐU_ÐajÐlqÐs|ð  Fõ  Gð #r:   )RÚ__name__Ú
__module__Ú__qualname__Ú	__slots__rI   rJ   rx   rs  r	   r   r´   r   r5   r>   r   Úintr
   rg   r   r#   r_   rk   rl   r   r”   r   rz   Úboolr‹   r¹   r   r   rZ   r\   r   r¶   r¸   rž   rŸ   ro   rì   rë   ru   r   r¬   rÿ   r	  r  r  r±   r:  ÚRULEÚ
PRECEDENCEÚ	PREDICATEÚACTIONrÈ   ÚATOMÚRANGEÚSETr  r   r1  r   r-  r   r/  r   r'  r�   r�   r²   rM   r%   rd  rn   r�   rŒ   r]   ry   r©   r}   Ú__classcell__)r8   s   @r9   r'   r'     s™  ø„ ð€Ið
 €EØ$ÐØ€IØ€Kð˜fð ¨#ð ¸Tð ÐVlõ ò,ð< Kð <¸#ð <ÐL]ó <ðxT ˜#ð T  (ð T °+ð T È#ð T Ð\mó T ðB ¨xð  ¸3ó  ð&& Sð &°Hð &Àó &ðP>¨ð >Àó >ð$e¨ð e°ð eØ,8ðeà/:ðeð 58ðeð 7Hó	eðNk lð k°cð kÀ4ó kðB¸ð ÐW[ó ð
 (ð 
°ð 
ÀTó 
ðH#¨Ló #ðJ zð ¸ó ð¨Sð ¸,ð Ècó ð@°ð ¸tó ð|
&Èlð 
&Ðizó 
&ð¸,ó ð&"°|ð "ÐRcó "ð(°$ð ÐEVð Ðaeó ð8K˜Yð K°ð KÈ#ð KÐaeð KÐosð Kð  HLó Kð'j¨ið 'jÀð 'jÐ[^ð 'jÐrvð 'jð  AEð 'jð  MPð 'jð  dhó 'jðT0A˜ið 0A°ð 0AÈ3ð 0AÐbfð 0AÐptð 0AÐ|ð 0Að  TXó 0AòX>ðB/ ó /ñ  ›6Ðñ-&Ð˜Ÿ™Ñ)ñ3SÐ˜×.Ñ.Ñ/ñ2MÐ˜×-Ñ-Ñ.ñ/(Ð˜×*Ñ*Ñ+ñ01Ð˜×+Ñ+Ñ,ñ-oÐ˜Ÿ™Ñ)ñ.oÐ˜×)Ñ)Ñ*ñ,oÐ˜Ÿ™Ñ(ð` ið `°:ð `ÐQUð `Ðaeð `Ðosð `ð  HLó `ð8 ið 8Ð3Có 8ð
¨)ð Ð8Uð Ðjnð Ðz~ð ð  IMó ð< Ið Ð2Eð ÐY]ð Ðimð Ðw{ó ð<M Ið M°ó Mð/¨ó /ðP°Ló ð˜Só ð. [ó .ðPÐ&:ó Pðs ð sÐ:Kð sÐUað sÐnqó sð <ó ð:˜Sð ¨ð °Cð ¸Hó ðH˜cð  Xó ð$R¨cð RÀ3ð RÐP\ð RÐilð RÐx{ó RðJ¨3ð J¸3ð JÈð JÐadð JÐpsó JðG #ð G¨ð G¸cð GÈSð GØ)-ðGØ9<ðGØFR÷Gr:   r'   )7ra  Úantlr4r   Úantlr4.PredictionContextr   r   r   r   Úantlr4.BufferedTokenStreamr   Úantlr4.Parserr	   Úantlr4.ParserRuleContextr
   Úantlr4.RuleContextr   Úantlr4.Tokenr   Úantlr4.Utilsr   Úantlr4.atn.ATNr   Úantlr4.atn.ATNConfigr   Úantlr4.atn.ATNConfigSetr   Úantlr4.atn.ATNSimulatorr   Úantlr4.atn.ATNStater   r   r   r   Úantlr4.atn.PredictionModer   Úantlr4.atn.SemanticContextr   r   r   r   Úantlr4.atn.Transitionr   r   r   r   r   r    r!   r"   Úantlr4.dfa.DFAStater#   r$   Úantlr4.error.Errorsr%   r'   r=   r:   r9   ú<module>rš     sm   ðóT Ý ÷%ó %å 2Ý  Ý 6Ý *Ý Ý !Ý Ý *Ý 0Ý 0ß ZÓ ZÝ 4ß RÓ R÷I÷ Ió Iç 8Ý 4ôpG˜õ pGr:   