
    <i                     &   S SK Jr  Sr " S S\5      r " S S\5      r " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r	 " S S\5      r
Sr " S S\5      rC " S S\5      r " S S\\	5      r " S S\5      r\" 5       \l        g)    )Token)c                       \ rS rSrSrg)Tree    N__name__
__module____qualname____firstlineno____static_attributes__r	       J/home/james-whalen/.local/lib/python3.13/site-packages/antlr4/tree/Tree.pyr   r          r   r   c                       \ rS rSrSrg)
SyntaxTree   r	   Nr
   r	   r   r   r   r      r   r   r   c                       \ rS rSrSrg)	ParseTree   r	   Nr
   r	   r   r   r   r      r   r   r   c                       \ rS rSrSrg)RuleNode   r	   Nr
   r	   r   r   r   r      r   r   r   c                       \ rS rSrSrg)TerminalNode   r	   Nr
   r	   r   r   r   r      r   r   r   c                       \ rS rSrSrg)	ErrorNode   r	   Nr
   r	   r   r   r    r       r   r   r    c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)ParseTreeVisitor    c                 $    UR                  U 5      $ N)accept)selftrees     r   visitParseTreeVisitor.visit!   s    {{4  r   c                    U R                  5       nUR                  5       n[        U5       HP  nU R                  X5      (       d  Us  $ UR	                  U5      nUR                  U 5      nU R                  X&5      nMR     U$ r&   )defaultResultgetChildCountrangeshouldVisitNextChildgetChildr'   aggregateResult)r(   noderesultnicchildResults          r   visitChildrenParseTreeVisitor.visitChildren$   st    ##% qA,,T::a A((4.K))&>F  r   c                 "    U R                  5       $ r&   r-   r(   r3   s     r   visitTerminalParseTreeVisitor.visitTerminal1       !!##r   c                 "    U R                  5       $ r&   r<   r=   s     r   visitErrorNodeParseTreeVisitor.visitErrorNode4   r@   r   c                     g r&   r	   r(   s    r   r-   ParseTreeVisitor.defaultResult7       r   c                     U$ r&   r	   )r(   	aggregate
nextResults      r   r2    ParseTreeVisitor.aggregateResult:   s    r   c                     g)NTr	   )r(   r3   currentResults      r   r0   %ParseTreeVisitor.shouldVisitNextChild=   rG   r   r	   N)r   r   r   r   r*   r9   r>   rB   r-   r2   r0   r   r	   r   r   r#   r#       s%    !$$r   r#   Nc                   L    \ rS rSrS\4S jrS\4S jrS\4S jr	S\4S jr
Srg	)
ParseTreeListenerB   r3   c                     g r&   r	   r=   s     r   r>   ParseTreeListener.visitTerminalD       r   c                     g r&   r	   r=   s     r   rB    ParseTreeListener.visitErrorNodeG   rT   r   ctxc                     g r&   r	   r(   rW   s     r   enterEveryRule ParseTreeListener.enterEveryRuleJ   rT   r   c                     g r&   r	   rY   s     r   exitEveryRuleParseTreeListener.exitEveryRuleM   rT   r   r	   N)r   r   r   r   r   r>   r    rB   ParserRuleContextrZ   r]   r   r	   r   r   rP   rP   B   s4     ) !2  1 r   rP   c                      ^  \ rS rSrSrS\4S jrU 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S rSrU =r$ )TerminalNodeImplR   	parentCtxsymbolre   c                     S U l         Xl        g r&   rc   )r(   re   s     r   __init__TerminalNodeImpl.__init__U   s    r   c                 $   > [         TU ]  X5        g r&   )super__setattr__)r(   keyvalue	__class__s      r   rk   TerminalNodeImpl.__setattr__X   s    C'r   r6   c                     g r&   r	   )r(   r6   s     r   r1   TerminalNodeImpl.getChild[   rG   r   c                     U R                   $ r&   re   rE   s    r   	getSymbolTerminalNodeImpl.getSymbol^       {{r   c                     U R                   $ r&   )rd   rE   s    r   	getParentTerminalNodeImpl.getParenta   s    ~~r   c                     U R                   $ r&   rs   rE   s    r   
getPayloadTerminalNodeImpl.getPayloadd   rv   r   c                 Z    U R                   c  [        $ U R                   R                  nX4$ r&   )re   INVALID_INTERVAL
tokenIndex)r(   r   s     r   getSourceInterval"TerminalNodeImpl.getSourceIntervalg   s*    ;;##[[++
''r   c                     g)Nr   r	   rE   s    r   r.   TerminalNodeImpl.getChildCountm   s    r   visitorc                 $    UR                  U 5      $ r&   )r>   r(   r   s     r   r'   TerminalNodeImpl.acceptp   s    $$T**r   c                 .    U R                   R                  $ r&   )re   textrE   s    r   getTextTerminalNodeImpl.getTexts   s    {{r   c                     U R                   R                  [        R                  :X  a  gU R                   R                  $ )Nz<EOF>)re   typer   EOFr   rE   s    r   __str__TerminalNodeImpl.__str__v   s+    ;;uyy(;;###r   )r   r   r   r   	__slots__r   rg   rk   intr1   rt   rx   r{   r   r.   r#   r'   r   r   r   __classcell__rn   s   @r   ra   ra   R   sZ    'Ie ( (+- + $ $r   ra   c                   >   ^  \ rS rSrS\4U 4S jjrS\4S jrSrU =r	$ )ErrorNodeImpl   tokenc                 $   > [         TU ]  U5        g r&   )rj   rg   )r(   r   rn   s     r   rg   ErrorNodeImpl.__init__   s    r   r   c                 $    UR                  U 5      $ r&   )rB   r   s     r   r'   ErrorNodeImpl.accept   s    %%d++r   r	   )
r   r   r   r   r   rg   r#   r'   r   r   r   s   @r   r   r      s!     U  ,- , ,r   r   c                   N    \ rS rSrSrS\S\4S jrS\S\4S jr	S\S\4S jr
S	rg)
ParseTreeWalker   Nlistenertc                 4   [        U[        5      (       a  UR                  U5        g[        U[        5      (       a  UR	                  U5        gU R                  X5        UR                  5        H  nU R                  X5        M     U R                  X5        g)a  
Performs a walk on the given parse tree starting at the root and going down recursively
with depth-first search. On each node, {@link ParseTreeWalker#enterRule} is called before
recursively walking down into child nodes, then
{@link ParseTreeWalker#exitRule} is called after the recursive call to wind up.
@param listener The listener used by the walker to process grammar rules
@param t The parse tree to be walked on
N)	
isinstancer    rB   r   r>   	enterRulegetChildrenwalkexitRule)r(   r   r   childs       r   r   ParseTreeWalker.walk   st     a####A&<((""1%x#]]_EIIh& %h"r   rc                 h    UR                  5       nUR                  U5        UR                  U5        g)a  
Enters a grammar rule by first triggering the generic event {@link ParseTreeListener#enterEveryRule}
then by triggering the event specific to the given parse tree node
@param listener The listener responding to the trigger events
@param r The grammar rule containing the rule context
N)getRuleContextrZ   r   r(   r   r   rW   s       r   r   ParseTreeWalker.enterRule   s,      $hr   c                 h    UR                  5       nUR                  U5        UR                  U5        g)a  
Exits a grammar rule by first triggering the event specific to the given parse tree node
then by triggering the generic event {@link ParseTreeListener#exitEveryRule}
@param listener The listener responding to the trigger events
@param r The grammar rule containing the rule context
N)r   r   r]   r   s       r   r   ParseTreeWalker.exitRule   s,      Xs#r   r	   )r   r   r   r   DEFAULTrP   r   r   r   r   r   r   r	   r   r   r   r      sC    G#- # #4	 !2 	 h 	 	$ 1 	$X 	$r   r   )antlr4.Tokenr   r~   objectr   r   r   r   r   r    r#   r_   rP   ra   r   r   r   r	   r   r   <module>r      s     	6 		 		
 		y 		9 		 	v @    ($| ($`,$Y ,2$f 2$h *+ r   