
    <iv                         S SK r S SKJr  S SKJr  S SKJr  S SKJrJ	r	J
r
JrJr  Sr " S S\5      r " S S	\5      r " S
 S\5      rCg)    N)IntervalSet)Token)ATNState)RecognitionExceptionNoViableAltExceptionInputMismatchExceptionFailedPredicateExceptionParseCancellationExceptionc                   p    \ rS rSrS\4S jr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rS
rg)ErrorStrategy   
recognizerc                     g N selfr   s     T/home/james-whalen/.local/lib/python3.13/site-packages/antlr4/error/ErrorStrategy.pyresetErrorStrategy.reset           c                     g r   r   r   s     r   recoverInlineErrorStrategy.recoverInline   r   r   ec                     g r   r   r   r   r   s      r   recoverErrorStrategy.recover   r   r   c                     g r   r   r   s     r   syncErrorStrategy.sync   r   r   c                     g r   r   r   s     r   inErrorRecoveryMode!ErrorStrategy.inErrorRecoveryMode   r   r   c                     g r   r   r   s      r   reportErrorErrorStrategy.reportError"   r   r   r   N)__name__
__module____qualname____firstlineno__Parserr   r   r   r   r"   r%   r(   __static_attributes__r   r   r   r   r      sZ    v v  +? f V V /C r   r   c                   h  ^  \ rS rSrU 4S jrS\4S jr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\S	\4S jrS\S	\4S jrS rS\4S jrS\4S jrS\4S jrS\4S jrS\4S jrS\4S jr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r"U =r#$ )DefaultErrorStrategy)   c                 h   > [         TU ]  5         SU l        SU l        S U l        S U l        SU l        g )NFr   )super__init__errorRecoveryModelastErrorIndexlastErrorStatesnextTokensContextnextTokenState)r   	__class__s    r   r6   DefaultErrorStrategy.__init__+   s:     "' !#!%r   r   c                 &    U R                  U5        g r   endErrorConditionr   s     r   r   DefaultErrorStrategy.resetB       z*r   c                     SU l         g )NTr7   r   s     r   beginErrorCondition(DefaultErrorStrategy.beginErrorConditionK   s
    !%r   c                     U R                   $ r   rD   r   s     r   r%   (DefaultErrorStrategy.inErrorRecoveryModeN   s    %%%r   c                 .    SU l         S U l        SU l        g )NFr4   )r7   r9   r8   r   s     r   r@   &DefaultErrorStrategy.endErrorConditionW   s    !&# r   c                 &    U R                  U5        g r   r?   r   s     r   reportMatch DefaultErrorStrategy.reportMatcha   rB   r   r   c                    U R                  U5      (       a  g U R                  U5        [        U[        5      (       a  U R	                  X5        g [        U[
        5      (       a  U R                  X5        g [        U[        5      (       a  U R                  X5        g [        S[        U5      R                  -   5        UR                  UR                  UR                  U5        g )Nz unknown recognition error type: )r%   rE   
isinstancer   reportNoViableAlternativer   reportInputMismatchr	   reportFailedPredicateprinttyper*   notifyErrorListenersmessageoffendingTokenr   s      r   r(    DefaultErrorStrategy.reportErrorw   s     ##J//  ,q.00**:9244$$Z3466&&z54tAw7G7GGH++AIIq7G7GKr   c                    U R                   UR                  5       R                  :X  a7  U R                  b*  UR                  U R                  ;   a  UR                  5         UR                  R                  U l         U R                  c  / U l        U R                  R                  UR                  5        U R                  U5      nU R                  X5        g r   )
r8   getInputStreamindexr9   stateconsume_inputappendgetErrorRecoverySetconsumeUntil)r   r   r   	followSets       r   r   DefaultErrorStrategy.recover   s    
 9 9 ; A AA$$0  D$8$88
  (//55'#%D ##J$4$45,,Z8	*0r   c                    U R                  U5      (       a  g UR                  R                  R                  UR                     nUR                  5       R                  S5      nUR                  R                  U5      nX4;   a  S U l        [        R                  U l        g [        R                  U;   a0  U R                  c"  UR                  U l        UR                  U l        g UR"                  [        R$                  [        R&                  [        R(                  [        R*                  4;   a  U R-                  U5      b  g [/        U5      eUR"                  [        R0                  [        R2                  4;   aS  U R5                  U5        UR7                  5       nUR9                  U R;                  U5      5      nU R=                  X5        g g N   )r%   _interpatnstatesr\   getTokenStreamLA
nextTokensr:   r   INVALID_STATE_NUMBERr;   r   EPSILON_ctx_stateNumbernextTokensState	stateTypeBLOCK_STARTSTAR_BLOCK_STARTPLUS_BLOCK_STARTSTAR_LOOP_ENTRYsingleTokenDeletionr   PLUS_LOOP_BACKSTAR_LOOP_BACKreportUnwantedTokengetExpectedTokensaddSetr`   ra   )r   r   slarl   	expectingwhatFollowsLoopIterationOrRules          r   r"   DefaultErrorStrategy.sync   sy   ##J//""))**:*:;&&(++A.^^..q1
%)D""*"?"?D]]j(%%- *4&'1'>'>$;;8//1J1J ( 9 98;S;SU U ''
3>,Z88[[X44h6M6MNN$$Z0"446I-6-=-=d>V>VWa>b-c*jI r   c                 2   UR                  5       nUbR  UR                  R                  [        R                  :X  a  SnO)UR                  UR                  UR                  5      nOSnSU R                  U5      -   nUR                  XRR                  U5        g )N<EOF>z<unknown input>zno viable alternative at input )	rj   
startTokenrT   r   EOFgetTextrW   escapeWSAndQuoterU   )r   r   r   tokensinputmsgs         r   rP   .DefaultErrorStrategy.reportNoViableAlternative   s{    **,||  %))+q||Q5E5EF%E/$2G2G2NN''-=-=qAr   c                     SU R                  UR                  5      -   S-   UR                  5       R                  UR                  UR
                  5      -   nUR                  X2R                  U5        g )Nzmismatched input  expecting )getTokenErrorDisplayrW   r{   toStringliteralNamessymbolicNamesrU   )r   r   r   r   s       r   rQ   (DefaultErrorStrategy.reportInputMismatch  sg    !D$=$=a>N>N$OO ! 3 3 5 > >z?V?VXbXpXp qr''-=-=qAr   c                     UR                   UR                  R                  5          nSU-   S-   UR                  -   nUR	                  XBR
                  U5        g )Nzrule  )	ruleNamesro   getRuleIndexrV   rU   rW   )r   r   r   ruleNamer   s        r   rR   *DefaultErrorStrategy.reportFailedPredicate  sM    ''
(D(D(FG 3&2''-=-=qAr   c                 :   U R                  U5      (       a  g U R                  U5        UR                  5       nU R                  U5      nU R	                  U5      nSU-   S-   UR                  UR                  UR                  5      -   nUR                  XRS 5        g )Nzextraneous input r   )	r%   rE   getCurrentTokenr   r{   r   r   r   rU   )r   r   t	tokenNamer   r   s         r   rz   (DefaultErrorStrategy.reportUnwantedToken4  s    ##J//  ,&&(--a0	**:6	!I-=  !8!8*:R:RST''5r   c                 6   U R                  U5      (       a  g U R                  U5        UR                  5       nU R                  U5      nSUR	                  UR
                  UR                  5      -   S-   U R                  U5      -   nUR                  XBS 5        g )Nzmissing z at )	r%   rE   r   r{   r   r   r   r   rU   )r   r   r   r   r   s        r   reportMissingToken'DefaultErrorStrategy.reportMissingTokenP  s    ##J//  ,&&(**:6	9--j.E.EzG_G_``22156''5r   c                     U R                  U5      nUb  UR                  5         U$ U R                  U5      (       a  U R                  U5      $ [	        U5      er   )rw   r]   singleTokenInsertiongetMissingSymbolr   )r   r   matchedSymbols      r   r   "DefaultErrorStrategy.recoverInline  s]    00<$     $$Z00((44 %Z00r   c                 6   UR                  5       R                  S5      nUR                  R                  nUR                  UR
                     nUR                  S   R                  nUR                  XQR                  5      nX&;   a  U R                  U5        gg)Nrf   r   TF)rj   rk   rg   rh   ri   r\   transitionstargetrl   ro   r   )r   r   currentSymbolTyperh   currentStatenextexpectingAtLL2s          r   r   )DefaultErrorStrategy.singleTokenInsertion  s    &557::1=   $$zz*"2"23''*11oo>.##J/r   c                     UR                  5       R                  S5      nU R                  U5      nX#;   aD  U R                  U5        UR	                  5         UR                  5       nU R                  U5        U$ g )N   )rj   rk   r{   rz   r]   r   rL   )r   r   nextTokenTyper   r   s        r   rw   (DefaultErrorStrategy.singleTokenDeletion  sr    "11366q9**:6	%$$Z0
  &668MZ(  r   c           
      r   UR                  5       nU R                  U5      nUS   nU[        R                  :X  a  SnOfS nU[	        UR
                  5      :  a  UR
                  U   nUc(  U[	        UR                  5      :  a  UR                  U   nS[        U5      -   S-   nUnUR                  5       R                  S5      nUR                  [        R                  :X  a  Ub  UnUR                  5       R                  UR                  XE[        R                  SSUR                  UR                   5      $ )Nr   z<missing EOF>z	<missing >r4   )r   r{   r   r   lenr   r   strrj   LTrT   getTokenFactorycreatesourceDEFAULT_CHANNELlinecolumn)	r   r   currentSymbolr   expectedTokenType	tokenTextnamecurrentlookbacks	            r   r   %DefaultErrorStrategy.getMissingSymbol  s   "224**:6	%aLeii''ID 3z'>'>#??!../@A| 1C
8P8P4Q Q!//0AB#c$i/#5I,,.11"5<<"x';G))+227>>%*?*?GLL'..2 	2r   c                 "    UR                  5       $ r   )r{   r   s     r   r{   &DefaultErrorStrategy.getExpectedTokens  s    ++--r   r   c                     Uc  gUR                   nUc<  UR                  [        R                  :X  a  SnOS[	        UR                  5      -   S-   nU R                  U5      $ )Nz
<no token>r   <r   )textrT   r   r   r   r   )r   r   r}   s      r   r   )DefaultErrorStrategy.getTokenErrorDisplay  sU    9FF9vvuyy #aff+%+$$Q''r   r}   c                 ~    UR                  SS5      nUR                  SS5      nUR                  SS5      nSU-   S-   $ )N
z\nz\r	z\t')replace)r   r}   s     r   r   %DefaultErrorStrategy.escapeWSAndQuote  s@    IId5!IId5!IId5!Qw}r   c                    UR                   R                  nUR                  n[        5       nUb  UR                  S:  au  UR
                  UR                     nUR                  S   nUR                  UR                  5      nUR                  U5        UR                  nUb  UR                  S:  a  Mu  UR                  [        R                  5        U$ )Nr   )rg   rh   ro   r   invokingStateri   r   rl   followStater|   	parentCtx	removeOner   rn   )r   r   rh   ctx
recoverSetr   rtfollows           r   r`   (DefaultErrorStrategy.getErrorRecoverySet|  s      $$oo ]
o#"3"3Q"6JJs'8'89M**1-B^^BNN3Ff%--C o#"3"3Q"6 	U]]+r   set_c                    UR                  5       R                  S5      nU[        R                  :w  aR  X2;  aL  UR	                  5         UR                  5       R                  S5      nU[        R                  :w  a  X2;  a  MJ  g g g g re   )rj   rk   r   r   r]   )r   r   r   ttypes       r   ra   !DefaultErrorStrategy.consumeUntil  sj    ))+..q1uyy  --/2215E uyy   r   )r7   r8   r9   r;   r:   rq   )$r*   r+   r,   r-   r6   r.   r   rE   r%   r@   rL   r   r(   r   r"   r   rP   r   rQ   rR   rz   r   r   r   rw   r   r{   r   r   r   r   r`   setra   r/   __classcell__)r<   s   @r   r1   r1   )   sF    .+v +&V &&V &!6 !+V +,LV L/C L.1 1+? 1|%f %^
B6 
B=Q 
B*BV B7M BB,
6V 
686F 6r1v 1Bf BV H2& 2*.6 .	(U 	( DV 6f 63 6 6r   r1   c                   B    \ rS rSrS\S\4S jrS\4S jrS\4S jrSr	g)	BailErrorStrategyi  r   r   c                 d    UR                   nUb  X#l        UR                  nUb  M  [        U5      er   )ro   	exceptionr   r
   )r   r   r   contexts       r   r   BailErrorStrategy.recover  s7    //! !''G ! )++r   c                 :    U R                  U[        U5      5        g r   )r   r   r   s     r   r   BailErrorStrategy.recoverInline  s    Z!7
!CDr   c                     g r   r   r   s     r   r"   BailErrorStrategy.sync  r   r   r   N)
r*   r+   r,   r-   r.   r   r   r   r"   r/   r   r   r   r   r     s0    , ,+? ,Ev Ef r   r   )sysantlr4.IntervalSetr   antlr4.Tokenr   antlr4.atn.ATNStater   antlr4.error.Errorsr   r   r   r	   r
   r.   objectr   r1   r   r   r   r   <module>r      sQ     *  (9 9 
F 0f	6= f	6J, . r   