
    <icY                     ,   S SK r \ R                  S   S:  a  S SKJr  OS SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJrJr  S SKJr  S SK J!r!J"r"J#r#   " S S\!5      r$ " S S\5      r%g)    N      )TextIO)TokenStream)TokenFactory)DefaultErrorStrategy)InputStream)
Recognizer)RuleContext)ParserRuleContext)Token)Lexer)ATNDeserializer)ATNDeserializationOptions)UnsupportedOperationExceptionRecognitionException)ParseTreePatternMatcher)ParseTreeListenerTerminalNode	ErrorNodec                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
TraceListener   _parserc                     Xl         g Nr   )selfparsers     G/home/james-whalen/.local/lib/python3.13/site-packages/antlr4/Parser.py__init__TraceListener.__init__   s        c                     [        SU R                  R                  UR                  5          -   S-   U R                  R                  R                  S5      R                  -   U R                  R                  S9  g )Nzenter   , LT(1)=r   fileprintr   	ruleNamesgetRuleIndex_inputLTtext_outputr   ctxs     r    enterEveryRuleTraceListener.enterEveryRule   r    j4<<11#2B2B2DEE
RUYUaUaUhUhUkUklmUnUsUssz~  {G  {G  {O  {O  	Pr#   c                     [        S[        UR                  5      -   S-   U R                  R                  U R                  R
                  R                  5          -   U R                  R                  S9  g )Nzconsume z rule r&   )r)   strsymbolr   r*   _ctxr+   r/   r   nodes     r    visitTerminalTraceListener.visitTerminal"   si    j3t{{++h69O9OPTP\P\PaPaPnPnPp9qqx|  yE  yE  yM  yM  	Nr#   c                     g r    r9   s     r    visitErrorNodeTraceListener.visitErrorNode&   s    r#   c                     [        SU R                  R                  UR                  5          -   S-   U R                  R                  R                  S5      R                  -   U R                  R                  S9  g )Nzexit    r%   r   r&   r(   r0   s     r    exitEveryRuleTraceListener.exitEveryRule*   r4   r#   r   N)__name__
__module____qualname____firstlineno__	__slots__r!   r2   r;   r?   rB   __static_attributes__r>   r#   r    r   r      s#    IPNPr#   r   c                   6  ^  \ rS rSrSr\" 5       r\R                  4S\	S\
4U 4S jjjrS rS\4S jrS	 rS
 rS\4S jrS\4S jrS rS rS rS rS rS\4S jrS rSDS\S\S\4S jjrS rS\ 4S jr!S r"S\	4S jr#S r$SES\S \%S!\&4S" jjr'S# r(S$ r)S%\*S&\S'\4S( jr+S) r,S%\*S*\4S+ jr-S, r.S%\*S&\S'\S-\4S. jr/S%\*S&\S'\4S/ jr0S0\*4S1 jr1S'\4S2 jr2S%\3S-\4S3 jr4S4\4S5 jr5S6\4S7 jr6S8 r7S9 r8S:\4S; jr9SDS<\34S= jjr:S> r;S? r<S@ r=SA\>4SB jr?SCr@U =rA$ )FParser/   )	r,   r/   _errHandler_precedenceStackr8   buildParseTrees_tracer_parseListeners_syntaxErrorsinputoutputc                   > [         TU ]  5         S U l        X l        [	        5       U l        [        5       U l        U R                  R                  S5        S U l	        SU l
        S U l        S U l        SU l        U R                  U5        g )Nr   T)superr!   r,   r/   r   rM   listrN   appendr8   rO   rP   rQ   rR   setInputStream)r   rS   rT   	__class__s      r    r!   Parser.__init__<   s     01 $$$Q' 	  $   $ E"r#   c                 l   U R                   b  U R                   R                  S5        U R                  R                  U 5        S U l        SU l        U R                  S5        [        5       U l        U R                  R                  S5        U R                  b  U R                  R                  5         g g )Nr   F)r,   seekrM   resetr8   rR   setTracerW   rN   rX   _interpr   s    r    r^   Parser.reset[   s    ;;"KKQt$	e $$$Q'<<#LL  $r#   ttypec                 N   U R                  5       nUR                  U:X  a-  U R                  R                  U 5        U R	                  5         U$ U R                  R                  U 5      nU R                  (       a+  UR                  S:X  a  U R                  R                  U5        U$ N
getCurrentTokentyperM   reportMatchconsumerecoverInlinerO   
tokenIndexr8   addErrorNode)r   rc   ts      r    matchParser.matchx   s      "665=((.LLN    ..t4A##b(8 		&&q)r#   c                 N   U R                  5       nUR                  S:  a-  U R                  R                  U 5        U R	                  5         U$ U R                  R                  U 5      nU R                  (       a+  UR                  S:X  a  U R                  R                  U5        U$ Nr   rf   rg   )r   ro   s     r    matchWildcardParser.matchWildcard   s      "66A:((.LLN    ..t4A##(: 		&&q)r#   c                 H    U R                   c
  [        5       $ U R                   $ r   )rQ   rW   ra   s    r    getParseListenersParser.getParseListeners   s     --5tvO4;O;OOr#   listenerc                 ~    Uc  [        S5      eU R                  c  / U l        U R                  R                  U5        g )Nry   )ReferenceErrorrQ   rX   r   ry   s     r    addParseListenerParser.addParseListener   s;     ,,'#%D ##H-r#   c                     U R                   b=  U R                   R                  U5        [        U R                   5      S:X  a  S U l         g g g Nr   )rQ   removelenr|   s     r    removeParseListenerParser.removeParseListener   sG    +  ''14''(!++/D( , ,r#   c                     S U l         g r   )rQ   ra   s    r    removeParseListenersParser.removeParseListeners   s
    #r#   c                     U R                   bJ  U R                    H9  nUR                  U R                  5        U R                  R                  U5        M;     g g r   )rQ   r2   r8   	enterRuler|   s     r    triggerEnterRuleEventParser.triggerEnterRuleEvent   sG    + 00''		2		##H- 1 ,r#   c                     U R                   bS  [        U R                   5       H9  nU R                  R                  U5        UR	                  U R                  5        M;     g g r   )rQ   reversedr8   exitRulerB   r|   s     r    triggerExitRuleEventParser.triggerExitRuleEvent   sL    +$T%9%9:		""8,&&tyy1 ; ,r#   c                     U R                   $ r   )rR   ra   s    r    getNumberOfSyntaxErrorsParser.getNumberOfSyntaxErrors   s    !!!r#   c                 B    U R                   R                  R                  $ r   r,   tokenSource_factoryra   s    r    getTokenFactoryParser.getTokenFactory   s    {{&&///r#   factoryc                 8    XR                   R                  l        g r   r   )r   r   s     r    setTokenFactoryParser.setTokenFactory   s    +2(r#   c                     U R                  5       nUc  [        S5      eU R                  R                  US 5      nUc9  [	        5       nSUl        [        U5      R                  U5      nX R                  U'   U$ )NzDThe current parser does not support an ATN with bypass alternatives.T)getSerializedATNr   bypassAltsAtnCachegetr   generateRuleBypassTransitionsr   deserialize)r   serializedAtnresultdeserializationOptionss       r    getATNWithBypassAltsParser.getATNWithBypassAlts  sz    --/ /0vww((,,]DA>%>%@"CG"@$%;<HHWF5;##M2r#   patternpatternRuleIndexlexerc                     UcB  U R                  5       b1  U R                  5       R                  n[        U[        5      (       a  UnUc  [	        S5      e[        X05      nUR                  X5      $ )Nz$Parser can't discover a lexer to use)getTokenStreamr   
isinstancer   r   r   compile)r   r   r   r   r   ms         r    compileParseTreePatternParser.compileParseTreePattern  sf    =""$0"113??{E33'E=/0VWW#E0yy33r#   c                 "    U R                  5       $ r   )r   ra   s    r    getInputStreamParser.getInputStream&  s    ""$$r#   c                 &    U R                  U5        g r   )setTokenStreamr   rS   s     r    rY   Parser.setInputStream)  s    E"r#   c                     U R                   $ r   )r,   ra   s    r    r   Parser.getTokenStream,  s    {{r#   c                 >    S U l         U R                  5         Xl         g r   )r,   r^   r   s     r    r   Parser.setTokenStream0  s    

r#   c                 8    U R                   R                  S5      $ Nr   )r,   r-   ra   s    r    rh   Parser.getCurrentToken8  s    {{~~a  r#   msgoffendingTokenec                     Uc  U R                  5       nU =R                  S-  sl        UR                  nUR                  nU R	                  5       nUR                  XXEX5        g r   )rh   rR   linecolumngetErrorListenerDispatchsyntaxError)r   r   r   r   r   r   ry   s          r    notifyErrorListenersParser.notifyErrorListeners;  s]    !!113Na""&&002T4Hr#   c                    U R                  5       nUR                  [        R                  :w  a  U R	                  5       R                  5         U R                  S L=(       a    [        U R                  5      S:  nU R                  (       d  U(       a  U R                  R                  U 5      (       a  U R                  R                  U5      nOU R                  R                  U5      nU(       ac  U R                   HS  n[        U[        5      (       a  UR!                  U5        M+  [        U["        5      (       d  MB  UR%                  U5        MU     U$ r   )rh   ri   r   EOFr   rk   rQ   r   rO   rM   inErrorRecoveryModer8   rn   addTokenNoder   r   r?   r   r;   )r   ohasListenerr:   ry   s        r    rk   Parser.consumeY  s      "66UYY!))+**$6V3t?S?S;TUV;V;33D99yy--a0yy--a0 $ 4 4H!$	22 //5#D,77 ..t4	 !5
 r#   c                     U R                   R                  b0  U R                   R                  R                  U R                   5        g g r   )r8   	parentCtxaddChildra   s    r    addContextToParseTreeParser.addContextToParseTreek  s3    99*II((3 +r#   localctxstate	ruleIndexc                     X l         Xl        U R                  R                  S5      U R                  l        U R
                  (       a  U R                  5         U R                  b  U R                  5         g g r   )	r   r8   r,   r-   startrO   r   rQ   r   )r   r   r   r   s       r    r   Parser.enterRules  sV    
	++..+		&&(,&&( -r#   c                     U R                   R                  S5      U R                  l        U R                  b  U R                  5         U R                  R                  U l        U R                  R                  U l        g re   )	r,   r-   r8   stoprQ   r   invokingStater   r   ra   s    r    r   Parser.exitRule|  sT    +		+%%'YY,,
II''	r#   altNumc                 4   UR                  U5        U R                  (       ap  U R                  U:w  a`  U R                  R                  bI  U R                  R                  R	                  5         U R                  R                  R                  U5        Xl        g r   )setAltNumberrO   r8   r   removeLastChildr   )r   r   r   s      r    enterOuterAltParser.enterOuterAlt  si    f% DII$9yy"".		##335		##,,X6	r#   c                 T    [        U R                  5      S:X  a  gU R                  S   $ rs   )r   rN   ra   s    r    getPrecedenceParser.getPrecedence  s)    t$$%q(((,,r#   
precedencec                     X l         U R                  R                  U5        Xl        U R                  R                  S5      U R                  l        U R                  b  U R                  5         g g r   )	r   rN   rX   r8   r,   r-   r   rQ   r   )r   r   r   r   r   s        r    enterRecursionRuleParser.enterRecursionRule  sU    
$$Z0	++..+		+&&( ,r#   c                 J   U R                   nXl        X$l        U R                  R	                  S5      Ul        Xl         UR                  U R                   l        U R                  (       a  U R                   R                  U5        U R                  b  U R                  5         g g re   )r8   r   r   r,   r-   r   r   rO   r   rQ   r   )r   r   r   r   previouss        r    pushNewRecursionContextParser.pushNewRecursionContext  sw    99%!&r*	"..		IIx(+&&( ,r#   r   c                    U R                   R                  5         U R                  R                  S5      U R                  l        U R                  nU R                  bL  U R                  ULa<  U R                  5         U R                  R                  U l        U R                  ULa  M<  OXl        Xl        U R                  (       a  Ub  UR                  U5        g g g re   )rN   popr,   r-   r8   r   rQ   r   r   rO   r   )r   r   retCtxs      r    unrollRecursionContextsParser.unrollRecursionContexts  s    !!#+		+))9,))+ II//	 ))9, "I %I$9v& %:r#   c                 p    U R                   nUb'  UR                  5       U:X  a  U$ UR                  nUb  M'  g r   )r8   r+   r   )r   r   r1   s      r    getInvokingContextParser.getInvokingContext  s;    iio!Y.
--C o r#   c                 $    X R                   S   :  $ re   )rN   )r   r   r   s      r    precpredParser.precpred  s    222666r#   contextc                     g)NFr>   )r   r   s     r    	inContextParser.inContext  s    r#   r7   c                 n   U R                   R                  nU R                  nUR                  U R                     nUR                  U5      nX;   a  g[        R                  U;  a  gUb  UR                  S:  a  [        R                  U;   a~  UR                  UR                     nUR                  S   nUR                  UR                  5      nX;   a  gUR                  nUb&  UR                  S:  a  [        R                  U;   a  M~  [        R                  U;   a  U[        R                  :X  a  gg)NTFr   )r`   atnr8   statesr   
nextTokensr   EPSILONr   transitionsfollowStater   r   )r   r7   r  r1   s	followingr   rts           r    isExpectedTokenParser.isExpectedToken  s    lliiJJtzz"NN1%	}}	)o#"3"3Q"65==I;UJJs'8'89M**1-Br~~6I"--C o#"3"3Q"65==I;U ==I%&EII*=r#   c                 v    U R                   R                  R                  U R                  U R                  5      $ r   )r`   r  getExpectedTokensr   r8   ra   s    r    r  Parser.getExpectedTokens   s'    ||11$**diiHHr#   c                     U R                   R                  nUR                  U R                     nUR	                  U5      $ r   )r`   r  r  r   r  )r   r  r  s      r    "getExpectedTokensWithinCurrentRule)Parser.getExpectedTokensWithinCurrentRule  s2    llJJtzz"~~a  r#   ruleNamec                 N    U R                  5       R                  US 5      nUb  U$ gre   )getRuleIndexMapr   )r   r  r   s      r    r+   Parser.getRuleIndex	  s,    ((*..x>	 r#   pc                     Uc  U R                   n[        5       nUbW  UR                  5       nUS:  a  UR                  S5        OUR                  U R                  U   5        UR
                  nUb  MW  U$ )Nr   zn/a)r8   rW   r+   rX   r*   r   )r   r  stackr   s       r    getRuleInvocationStackParser.getRuleInvocationStack  sg    9		Am(I{U#T^^I67A m r#   c                 l    U R                   R                   Vs/ s H  n[        U5      PM     sn$ s  snf r   )r`   decisionToDFAr6   )r   dfas     r    getDFAStringsParser.getDFAStrings&  s*    %)\\%?%?@%?cS%?@@@s   1c                    Sn[        S[        U R                  R                  5      5       H  nU R                  R                  U   n[        UR                  5      S:  d  M7  U(       a  [        U R                  S9  [        S[        UR                  5      -   S-   U R                  S9  [        UR                  U R                  U R                  5      SU R                  S9  SnM     g )	NFr   r&   z	Decision : )endr'   T)ranger   r`   r  r  r)   r/   r6   decisiontoStringliteralNamessymbolicNames)r   seenOneir  s       r    dumpDFAParser.dumpDFA*  s    q#dll889:A,,,,Q/C3::q t||,kC$55;$,,Ocll4#4#4d6H6HIrX\XdXde ;r#   c                 .    U R                   R                  $ r   )r,   
sourceNamera   s    r    getSourceNameParser.getSourceName6  s    {{%%%r#   tracec                     U(       d#  U R                  U R                  5        S U l        g U R                  b  U R                  U R                  5        [        U 5      U l        U R                  U R                  5        g r   )r   rP   r   r}   )r   r2  s     r    r_   Parser.setTrace<  sX    $$T\\2DL||'((6(.DL!!$,,/r#   )
r8   rM   r,   r/   rQ   rN   rR   rP   rO   r   r   )NN)BrD   rE   rF   rG   rH   dictr   sysstdoutr   r   r!   r^   intrp   rt   rw   r   r}   r   r   r   r   r   r   r   r   r   r6   r   r   r   r	   rY   r   r   rh   r   r   r   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r+   r  r  r,  r0  boolr_   rI   __classcell__)rZ   s   @r    rK   rK   /   s   I :=** #[ # # #>
!:# :P>.(9 .0+< 0$.2"03l 3
,
4c 
4C 
4u 
4%#; #; !Is I5 IK_ I<$4)!2 )3 )3 )(%6 s -)*; )3 )RU )be ))/@ ) )WZ )'0A '&3 7 7 7 $S :I!C { A	&0T 0 0r#   rK   )&r6  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   rK   r>   r#   r    <module>rL     sm   
 A  2 2 ; * ( * 6   6 J S G G GP% P,U0j U0r#   