
    NgcY                     6   d dl Z e j        d         dk    rd dlmZ n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 d dlmZ d dlmZmZ d dlmZ d dl m!Z!m"Z"m#Z#  G d de!          Z$ G d de          Z%dS )    N      )TextIO)TokenStream)TokenFactory)DefaultErrorStrategy)InputStream)
Recognizer)RuleContext)ParserRuleContext)Token)Lexer)ATNDeserializer)ATNDeserializationOptions)UnsupportedOperationExceptionRecognitionException)ParseTreePatternMatcher)ParseTreeListenerTerminalNode	ErrorNodec                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )TraceListener_parserc                     || _         d S N)r   )selfparsers     I/var/www/html/ai-engine/env/lib/python3.11/site-packages/antlr4/Parser.py__init__zTraceListener.__init__   s        c                     t          d| j        j        |                                         z   dz   | j        j                            d          j        z   | j        j                   d S )Nzenter   , LT(1)=r   fileprintr   	ruleNamesgetRuleIndex_inputLTtext_outputr   ctxs     r   enterEveryRulezTraceListener.enterEveryRule   z    j4<1#2B2B2D2DEE
RUYUaUhUkUklmUnUnUssz~  {G  {O  	P  	P  	P  	P  	P  	Pr    c                     t          dt          |j                  z   dz   | j        j        | j        j                                                 z   | j        j                   d S )Nzconsume z rule r#   )r&   strsymbolr   r'   _ctxr(   r,   r   nodes     r   visitTerminalzTraceListener.visitTerminal"   sr    j3t{+++h69OPTP\PaPnPnPpPp9qqx|  yE  yM  	N  	N  	N  	N  	N  	Nr    c                     d S r    r5   s     r   visitErrorNodezTraceListener.visitErrorNode&   s    r    c                     t          d| j        j        |                                         z   dz   | j        j                            d          j        z   | j        j                   d S )Nzexit    r"   r   r#   r%   r-   s     r   exitEveryRulezTraceListener.exitEveryRule*   r0   r    N)	__name__
__module____qualname__	__slots__r   r/   r7   r:   r<   r9   r    r   r   r      so        I  P P PN N N  P P P P Pr    r   c                       e Zd ZdZ e            Zej        fdede	f fdZ
d ZdefdZd Zd	 Zd
efdZd
efdZd Zd Zd Zd Zd ZdefdZd ZdCdededefdZd ZdefdZ d Z!defdZ"d Z#dDded e$d!e%fd"Z&d# Z'd$ Z(d%e)d&ed'efd(Z*d) Z+d%e)d*efd+Z,d, Z-d%e)d&ed'ed-efd.Z.d%e)d&ed'efd/Z/d0e)fd1Z0d'efd2Z1d%e2d-efd3Z3d4efd5Z4d6efd7Z5d8 Z6d9 Z7d:efd;Z8dCd<e2fd=Z9d> Z:d? Z;d@ Z<dAe=fdBZ> xZ?S )EParser)	r)   r,   _errHandler_precedenceStackr4   buildParseTrees_tracer_parseListeners_syntaxErrorsinputoutputc                 T   t                                                       d | _        || _        t	                      | _        t                      | _        | j                            d           d | _	        d| _
        d | _        d | _        d| _        |                     |           d S )Nr   T)superr   r)   r,   r   rC   listrD   appendr4   rE   rF   rG   rH   setInputStream)r   rI   rJ   	__class__s      r   r   zParser.__init__<   s     011 $$$Q''' 	  $   $ E"""""r    c                 `   | j         | j                             d           | j                            |            d | _        d| _        |                     d           t                      | _        | j        	                    d           | j
        | j
                                         d S d S )Nr   F)r)   seekrC   resetr4   rH   setTracerM   rD   rN   _interpr   s    r   rS   zParser.reset[   s    ;"KQt$$$	e $$$Q'''<#L      $#r    ttypec                 .   |                                  }|j        |k    r/| j                            |            |                                  nF| j                            |           }| j        r%|j        dk    r| j        	                    |           |S N
getCurrentTokentyperC   reportMatchconsumerecoverInlinerE   
tokenIndexr4   addErrorNode)r   rW   ts      r   matchzParser.matchx   s      ""65==((...LLNNNN ..t44A# *b(8(8 	&&q)))r    c                 .   |                                  }|j        dk    r/| j                            |            |                                  nF| j                            |           }| j        r%|j        dk    r| j        	                    |           |S Nr   rZ   r[   )r   rc   s     r   matchWildcardzParser.matchWildcard   s      ""6A::((...LLNNNN ..t44A# *(:(: 	&&q)))r    c                 :    | j         t                      n| j         S r   )rG   rM   rV   s    r   getParseListenerszParser.getParseListeners   s    -5tvvv4;OOr    listenerc                 x    |t          d          | j        g | _        | j                            |           d S )Nrj   )ReferenceErrorrG   rN   r   rj   s     r   addParseListenerzParser.addParseListener   sD     ,,,'#%D ##H-----r    c                     | j         ;| j                             |           t          | j                   dk    rd | _         d S d S d S Nr   )rG   removelenrm   s     r   removeParseListenerzParser.removeParseListener   sT    + ''1114'((!+++/D((( ,+++r    c                     d | _         d S r   )rG   rV   s    r   removeParseListenerszParser.removeParseListeners   s    #r    c                     | j         >| j         D ]8}|                    | j                   | j                            |           7d S d S r   )rG   r/   r4   	enterRulerm   s     r   triggerEnterRuleEventzParser.triggerEnterRuleEvent   s^    + 0 . .''	222	##H---- ,+. .r    c                     | j         Kt          | j                   D ]8}| j                            |           |                    | j                   7d S d S r   )rG   reversedr4   exitRuler<   rm   s     r   triggerExitRuleEventzParser.triggerExitRuleEvent   sf    +$T%9:: 2 2	""8,,,&&ty1111	 ,+2 2r    c                     | j         S r   )rH   rV   s    r   getNumberOfSyntaxErrorszParser.getNumberOfSyntaxErrors   s    !!r    c                 $    | j         j        j        S r   r)   tokenSource_factoryrV   s    r   getTokenFactoryzParser.getTokenFactory   s    {&//r    factoryc                 (    || j         j        _        d S r   r   )r   r   s     r   setTokenFactoryzParser.setTokenFactory   s    +2(((r    c                    |                                  }|t          d          | j                            |d           }|At	                      }d|_        t          |                              |          }|| j        |<   |S )NzDThe current parser does not support an ATN with bypass alternatives.T)getSerializedATNr   bypassAltsAtnCachegetr   generateRuleBypassTransitionsr   deserialize)r   serializedAtnresultdeserializationOptionss       r   getATNWithBypassAltszParser.getATNWithBypassAlts  s    --// /0vwww(,,]DAA>%>%@%@"CG"@$%;<<HHWWF5;D#M2r    NpatternpatternRuleIndexlexerc                     |D|                                  0|                                  j        }t          |t                    r|}|t	          d          t          ||           }|                    ||          S )Nz$Parser can't discover a lexer to use)getTokenStreamr   
isinstancer   r   r   compile)r   r   r   r   r   ms         r   compileParseTreePatternzParser.compileParseTreePattern  s|    =""$$0"1133?{E33 ('E=/0VWWW#E400yy"2333r    c                 *    |                                  S r   )r   rV   s    r   getInputStreamzParser.getInputStream&  s    ""$$$r    c                 0    |                      |           d S r   )setTokenStreamr   rI   s     r   rO   zParser.setInputStream)  s    E"""""r    c                     | j         S r   )r)   rV   s    r   r   zParser.getTokenStream,  s
    {r    c                 J    d | _         |                                  || _         d S r   )r)   rS   r   s     r   r   zParser.setTokenStream0  s!    

r    c                 6    | j                             d          S Nr   )r)   r*   rV   s    r   r\   zParser.getCurrentToken8  s    {~~a   r    msgoffendingTokenec                     ||                                  }| xj        dz  c_        |j        }|j        }|                                 }|                    | |||||           d S r   )r\   rH   linecolumngetErrorListenerDispatchsyntaxError)r   r   r   r   r   r   rj   s          r   notifyErrorListenerszParser.notifyErrorListeners;  sr    !!1133Na"&0022T>4aHHHHHr    c                 X   |                                  }|j        t          j        k    r&|                                                                  | j        d uot          | j                  dk    }| j        s|r| j	        
                    |           r| j                            |          }n| j                            |          }|r_| j        D ]W}t          |t                    r|                    |           -t          |t"                    r|                    |           X|S rp   )r\   r]   r   EOFr   r_   rG   rr   rE   rC   inErrorRecoveryModer4   rb   addTokenNoder   r   r:   r   r7   )r   ohasListenerr6   rj   s        r   r_   zParser.consumeY  s)     ""6UY!!))+++*$6V3t?S;T;TUV;V 
	5; 
	533D99 1y--a00y--a00 5 $ 4 5 5H!$	22 5 //5555#D,77 5 ..t444r    c                 j    | j         j        &| j         j                            | j                    d S d S r   )r4   	parentCtxaddChildrV   s    r   addContextToParseTreezParser.addContextToParseTreek  s6    9*I((33333 +*r    localctxstate	ruleIndexc                     || _         || _        | j                            d          | j        _        | j        r|                                  | j        |                                  d S d S r   )	r   r4   r)   r*   startrE   r   rG   rx   )r   r   r   r   s       r   rw   zParser.enterRules  sm    
	+..++	 	)&&(((,&&((((( -,r    c                     | j                             d          | j        _        | j        |                                  | j        j        | _        | j        j        | _        d S rY   )	r)   r*   r4   stoprG   r|   invokingStater   r   rV   s    r   r{   zParser.exitRule|  sP    ++	+%%'''Y,
I'			r    altNumc                     |                     |           | j        rT| j        |k    rI| j        j        =| j        j                                         | j        j                            |           || _        d S r   )setAltNumberrE   r4   r   removeLastChildr   )r   r   r   s      r   enterOuterAltzParser.enterOuterAlt  su    f%%%  	7DI$9$9y".	#33555	#,,X666			r    c                 P    t          | j                  dk    rdS | j        d         S rf   )rr   rD   rV   s    r   getPrecedencezParser.getPrecedence  s+    t$%%q((2(,,r    
precedencec                     || _         | j                            |           || _        | j                            d          | j        _        | j        |                                  d S d S r   )	r   rD   rN   r4   r)   r*   r   rG   rx   )r   r   r   r   r   s        r   enterRecursionRulezParser.enterRecursionRule  sg    
$$Z000	+..++	+&&((((( ,+r    c                    | j         }||_        ||_        | j                            d          |_        || _         |j        | j         _        | j        r| j                             |           | j	        | 
                                 d S d S rY   )r4   r   r   r)   r*   r   r   rE   r   rG   rx   )r   r   r   r   previouss        r   pushNewRecursionContextzParser.pushNewRecursionContext  s    9%!&r**	".	 	)Ix(((+&&((((( ,+r    r   c                 l   | j                                          | j                            d          | j        _        | j        }| j        8| j        |ur.|                                  | j        j        | _        | j        |u.n|| _        ||_        | j	        r||
                    |           d S d S d S rY   )rD   popr)   r*   r4   r   rG   r|   r   rE   r   )r   r   retCtxs      r   unrollRecursionContextszParser.unrollRecursionContexts  s    !!###++	+)9,,))+++ I/	 )9,, "DI % 	'I$9v&&&&&	' 	'$9$9r    c                 ^    | j         }|#|                                |k    r|S |j        }|#d S r   )r4   r(   r   )r   r   r.   s      r   getInvokingContextzParser.getInvokingContext  s?    io!!Y..
-C o tr    c                 $    || j         d         k    S rY   )rD   )r   r   r   s      r   precpredzParser.precpred  s    T22666r    contextc                     dS )NFr9   )r   r   s     r   	inContextzParser.inContext  s    ur    r3   c                    | j         j        }| j        }|j        | j                 }|                    |          }||v rdS t          j        |vrdS |z|j        dk    rot          j        |v ra|j        |j                 }|j	        d         }|                    |j
                  }||v rdS |j        }||j        dk    rt          j        |v at          j        |v r|t          j        k    rdS dS )NTFr   )rU   atnr4   statesr   
nextTokensr   EPSILONr   transitionsfollowStater   r   )r   r3   r   r.   s	followingr   rts           r   isExpectedTokenzParser.isExpectedToken  s    liJtz"NN1%%	Y4}	))5o#"3Q"6"65=I;U;UJs'89M*1-Br~66I""t-C o#"3Q"6"65=I;U;U =I%%&EI*=*=45r    c                 V    | j         j                            | j        | j                  S r   )rU   r   getExpectedTokensr   r4   rV   s    r   r   zParser.getExpectedTokens   s!    |11$*diHHHr    c                 h    | j         j        }|j        | j                 }|                    |          S r   )rU   r   r   r   r   )r   r   r   s      r   "getExpectedTokensWithinCurrentRulez)Parser.getExpectedTokensWithinCurrentRule  s,    lJtz"~~a   r    ruleNamec                 ^    |                                                      |d           }||S dS rY   )getRuleIndexMapr   )r   r   r   s      r   r(   zParser.getRuleIndex	  s4    ((**..x>>	 2r    pc                     || j         }t                      }|Y|                                }|dk     r|                    d           n |                    | j        |                    |j        }|Y|S )Nr   zn/a)r4   rM   r(   rN   r'   r   )r   r   stackr   s       r   getRuleInvocationStackzParser.getRuleInvocationStack  sw    9	Am((I{{U####T^I6777A m r    c                 .    d | j         j        D             S )Nc                 ,    g | ]}t          |          S r9   )r2   ).0dfas     r   
<listcomp>z(Parser.getDFAStrings.<locals>.<listcomp>'  s    @@@cS@@@r    )rU   decisionToDFArV   s    r   getDFAStringszParser.getDFAStrings&  s    @@T\%?@@@@r    c                    d}t          dt          | j        j                            D ]}| j        j        |         }t          |j                  dk    r||rt          | j                   t          dt          |j                  z   dz   | j                   t          |	                    | j
        | j                  d| j                   d}d S )	NFr   r#   z	Decision : )endr$   T)rangerr   rU   r   r   r&   r,   r2   decisiontoStringliteralNamessymbolicNames)r   seenOneir   s       r   dumpDFAzParser.dumpDFA*  s    q#dl899:: 	 	A,,Q/C3:q   -t|,,,,kC$5$55;$,OOOOcll4#4d6HIIrX\Xdeeee	 	r    c                     | j         j        S r   )r)   
sourceNamerV   s    r   getSourceNamezParser.getSourceName6  s    {%%r    tracec                     |s#|                      | j                   d | _        d S | j        |                      | j                   t          |           | _        |                     | j                   d S r   )rs   rF   r   rn   )r   r  s     r   rT   zParser.setTrace<  st     	0$$T\222DLLL|'((666(..DL!!$,/////r    r   )NN)@r=   r>   r?   r@   dictr   sysstdoutr   r   r   rS   intrd   rg   ri   r   rn   rs   ru   rx   r|   r~   r   r   r   r   r2   r   r   r   r	   rO   r   r   r\   r   r   r   r_   r   r   rw   r{   r   r   r   r   r   r   r   r   r   r   r   r   r(   r   r   r   r  boolrT   __classcell__)rP   s   @r   rB   rB   /   sG       I :=* # #[ # # # # # # #>
! 
! 
!:#    :  P P P>.(9 . . . .0+< 0 0 0 0$ $ $. . .2 2 2" " "0 0 03l 3 3 3 3
 
 
,
4 
4c 
4C 
4u 
4 
4 
4 
4% % %#; # # # #  ;    ! ! !I Is I5 IK_ I I I I<  $4 4 4)!2 )3 )3 ) ) ) )( ( (%6 s    - - -)*; )3 )RU )be ) ) ) ))/@ ) )WZ ) ) ) )'0A ' ' ' '&3    7 7 7 7 7 7    $S    :I I I! ! !C     {    A A A	 	 	& & &0T 0 0 0 0 0 0 0 0r    rB   )&r  version_infotypingr   	typing.ioantlr4.BufferedTokenStreamr   antlr4.CommonTokenFactoryr   antlr4.error.ErrorStrategyr   antlr4.InputStreamr	   antlr4.Recognizerr
   antlr4.RuleContextr   antlr4.ParserRuleContextr   antlr4.Tokenr   antlr4.Lexerr   antlr4.atn.ATNDeserializerr   $antlr4.atn.ATNDeserializationOptionsr   antlr4.error.Errorsr   r   #antlr4.tree.ParseTreePatternMatcherr   antlr4.tree.Treer   r   r   r   rB   r9   r    r   <module>r     s  
 


A       2 2 2 2 2 2 2 2 2 2 2 2 ; ; ; ; ; ; * * * * * * ( ( ( ( ( ( * * * * * * 6 6 6 6 6 6             6 6 6 6 6 6 J J J J J J S S S S S S S S G G G G G G G G G G G G G G G GP P P P P% P P P,U0 U0 U0 U0 U0j U0 U0 U0 U0 U0r    