+
    i;  c                   s   ^ RI t ^ RI HtHtHtHtHtHtHtHtH	t	H
t
HtHtHtHtHtHtHtHtHt ^ RIt^ RIHt . ROtR	 t ! R
 R4      t]! 4       t ! R R]4      t ! R R4      tR t ! R R]4      t ! R R]4      t ! R R4      t R]3.t!]!PE                  R ]#! 4       PI                  4        4       4       Rt%]% U u/ uF  p ]#! 4       V ,          V bK  	  up t&R t'](R8X  d    ^ RI)t)]'! ])PT                  R,          4       R# R# u up i )    N)USE
DEF_GLOBALDEF_NONLOCAL	DEF_LOCAL	DEF_PARAMDEF_TYPE_PARAMDEF_FREE_CLASS
DEF_IMPORT	DEF_BOUND	DEF_ANNOTDEF_COMP_ITERDEF_COMP_CELL	SCOPE_OFF
SCOPE_MASKFREELOCALGLOBAL_IMPLICITGLOBAL_EXPLICITCELL)StrEnumSymbolTableTypeSymbolTableClassFunctionSymbolc                 sF    \         P                  ! WV4      p\        W14      # N)	_symtablesymtable_newSymbolTable)ZcodefilenameZcompile_typetops   &&& !/usr/lib64/python3.14/symtable.pyr   r      s!     

T\
:C3))    c                   s2   a  ] tR t^t o R tR tR tRtV tR# )SymbolTableFactoryc                s:    \         P                  ! 4       V n        R # r   )weakrefZWeakValueDictionary_SymbolTableFactory__memoself   &r    __init__ZSymbolTableFactory.__init__   s    113r!   c                s    VP                   \        P                  8X  d   \        W4      # VP                   \        P                  8X  d   \        W4      # \        W4      # r   )typer   TYPE_FUNCTIONr   
TYPE_CLASSr   r   )r&   tabler      &&&r    newZSymbolTableFactory.new!   sG    ::000E,,::---))5++r!   c                s    W3pV P                   P                  VR 4      pVf    V P                  W4      ;q@P                   V&   V# r   )r$   getr.   )r&   r,   r   ZkeyZobjs   &&&  r    __call__ZSymbolTableFactory.__call__(   sA    okkooc4(;%)XXe%>>C++c"
r!   )Z__memoN)	__name__
__module____qualname____firstlineno__r(   r.   r0   __static_attributes____classdictcell__Z__classdict__   @r    r"   r"      s     4, r!   r"   c                   s2    ] tR t^2tRtRtRtRtRtRt	Rt
RtR	# )
r   moduleZfunctionZclassZ
annotationz
type aliasztype parametersztype variable N)r1   r2   r3   r4   MODULEFUNCTIONCLASS
ANNOTATION
TYPE_ALIASTYPE_PARAMETERSTYPE_VARIABLEr5   r:   r!   r    r   r   2   s%    FHEJJ'O#Mr!   c                   st   a  ] tR t^<t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tRtV tR# )r   c                s,    Wn         W n        / V n        R # r   )_table	_filename_symbols)r&   Z	raw_tabler   r-   r    r(   ZSymbolTable.__init__>   s    !r!   c                s:   V P                   \        8X  d   R pMRV P                   P                  ,          pV P                  P                  R8X  d   RP                  WP                  4      # RP                  VV P                  P                  V P                  4      # ) z%s r   z<{0}SymbolTable for module {1}>z<{0}SymbolTable for {1} in {2}>)	__class__r   r1   rB   nameZformatrC   )r&   Zkind   & r    __repr__ZSymbolTable.__repr__C   sy    >>[(D4>>222D;;u$4;;D..QQ4;;D<@KK<L<L<@NNL Lr!   c                s$   V P                   P                  \        P                  8X  d   \        P
                  # V P                   P                  \        P                  8X  d   \        P                  # V P                   P                  \        P                  8X  d   \        P                  # V P                   P                  \        P                  8X  d   \        P                  # V P                   P                  \        P                  8X  d   \        P                  # V P                   P                  \        P                  8X  d   \        P                  # V P                   P                  \        P                   8X  d   \        P"                  # R # r   )rB   r)   r   ZTYPE_MODULEr   r;   r*   r<   r+   r=   ZTYPE_ANNOTATIONr>   ZTYPE_TYPE_ALIASr?   TYPE_TYPE_PARAMETERSr@   ZTYPE_TYPE_VARIABLErA   r%   r'   r    get_typeZSymbolTable.get_typeP   s    ;;y444")));;y666"+++;;y333"(((;;y888"---;;y888"---;;y==="222;;y;;;"000 <r!   c                .    V P                   P                  # r   )rB   Zidr%   r'   r    get_idZSymbolTable.get_idf   s     {{~~r!   c                rL   r   )rB   rG   r%   r'   r    get_nameZSymbolTable.get_namek   s     {{r!   c                rL   r   )rB   Zlinenor%   r'   r    
get_linenoZSymbolTable.get_linenot   s     {{!!!r!   c                sb    \        V P                  P                  \        P                  8H  4      # r   )boolrB   r)   r   r*   r%   r'   r    is_optimizedZSymbolTable.is_optimizedz   s$     DKK$$	(?(??@@r!   c                @    \        V P                  P                  4      # r   )rP   rB   nestedr%   r'   r    	is_nestedZSymbolTable.is_nested   s     DKK&&''r!   c                rR   r   )rP   rB   childrenr%   r'   r    has_childrenZSymbolTable.has_children   s     DKK(())r!   c                sJ    V P                   P                  P                  4       # r   )rB   symbolsZkeysr%   r'   r    get_identifiersZSymbolTable.get_identifiers   s     {{""''))r!   c                s
   V P                   P                  V4      pVfd   V P                  P                  V,          pV P	                  V4      pV P                  P
                  R8H  p\        WVVR7      ;q P                   V&   V# )Nr   )module_scope)rD   r/   rB   rW   _SymbolTable__check_childrenrG   r   )r&   rG   Zsymflags
namespacesrY   s   &&    r    lookupZSymbolTable.lookup   s{    
 mm%;KK''-E..t4J KK,,5L(.tJ<H)J JC--%
r!   c                sh    V P                  4        Uu. uF  qP                  V4      NK  	  up# u upi r   )rX   r]   )r&   identrH   r    get_symbolsZSymbolTable.get_symbols   s.     150D0D0FG0FuE"0FGGGs   /c                s    V P                   P                   Uu. uF+  pVP                  V8X  g   K  \        W P                  4      NK-  	  up# u upi r   )rB   rU   rG   r   rC   )r&   rG   sts   && r    Z__check_childrenZSymbolTable.__check_children   sG    ++..$.B77d? 4NN3.$ 	$ $s
   AAc                s~    V P                   P                   Uu. uF  p\        WP                  4      NK  	  up# u upi r   )rB   rU   r   rC   )r&   r`   rH   r    get_childrenZSymbolTable.get_children   s<     ++..0.B  NN3.0 	0 0s   :)rC   rD   rB   N)r1   r2   r3   r4   r(   rI   rK   rM   rN   rO   rQ   rT   rV   rX   r]   r_   rZ   ra   r5   r6   r7   r8   r    r   r   <   sS     
L=,
 "A(
*
*
H$
0 0r!   c                 s2    V \         ,	          \        ,          # r   )r   r   )r[   r'   r    
_get_scoperb      s    Y*,,r!   c                   sX   a  ] tR t^t o RtRtRtRtRtR t	R t
R tR tR tR tRtV tR# )	r   Nc                s   a a \         ;QJ d&    . V V3R  lS P                  4        4       F  NK  	  5# ! V V3R  lS P                  4        4       4      # )c              3   s~   <"   T F2  pS! SP                   P                  V,          4      '       g   K.  Vx  K4  	  R # 5ir   )rB   rW   ).0r^   r&   	test_funcs   & r    	<genexpr>Z-Function.__idents_matching.<locals>.<genexpr>   s1      ?(>u!$++"5"5e"<= U(>s   +=
=)tuplerX   )r&   rd   s   ffr    Z__idents_matchingZFunction.__idents_matching   sE    u ?(<(<(> ?u 	?u ?(<(<(> ? ? 	?r!   c                d    V P                   f   V P                  R 4      V n         V P                   # )Nc                     V \         ,          # r   )r   xr'   r    <lambda>Z)Function.get_parameters.<locals>.<lambda>   s    A	Mr!   )_Function__params_Function__idents_matchingr%   r'   r    get_parametersZFunction.get_parameters   s+     ==  223IJDM}}r!   c                   a V P                   f)   \        \        3oV3R lpV P                  V4      V n         V P                   # )Nc                     < \        V 4      S9   # r   rb   )rj   locs   &r    rk   Z%Function.get_locals.<locals>.<lambda>       Z]d2r!   )_Function__localsr   r   rm   )r&   testrr      & @r    
get_localsZFunction.get_locals   s9     == 4=D2D 2248DM}}r!   c                ro   )Nc                 rp   r   rq   )rj   globrs   r    rk   Z&Function.get_globals.<locals>.<lambda>   rt   r!   )_Function__globalsr   r   rm   )r&   rv   ry   rw   r    get_globalsZFunction.get_globals   s:     >>!#_5D2D!33D9DN~~r!   c                rg   )Nc                 rh   r   )r   ri   r'   r    rk   Z(Function.get_nonlocals.<locals>.<lambda>   s	    q<?Or!   )_Function__nonlocalsrm   r%   r'   r    get_nonlocalsZFunction.get_nonlocals   s0     ##556OPDr!   c                sh    V P                   f   R pV P                  V4      V n         V P                   # )Nc                 s&    \        V 4      \        8H  # r   )rb   r   ri   r'   r    rk   Z$Function.get_frees.<locals>.<lambda>   s    
1 5r!   )_Function__freesrm   )r&   is_freerH   r    	get_freesZFunction.get_frees   s/     <<5G11':DL||r!   )Z__freesZ	__globalsZ__localsZ__nonlocalsZ__params)r1   r2   r3   r4   rl   ru   r~   rz   r|   rm   rn   rx   r{   r}   r   r5   r6   r7   r8   r    r   r      sC      HHGIK?  r!   c                   s*   a  ] tR t^t o RtR tRtV tR# )r   Nc                s  a  ^ RI pS P                  P                   RS P                  P                   2pVP	                  V R2\
        ^R7       S P                  Ef   / pV 3R lpS P                  P                   F  pV! VP                  4      '       g   K  VP                  ;\        P                  8X  d6    VP                  R8X  d   RVP                  9   d   Kb  ^W5P                  &   Kr  \        P                  8X  g   K  VP                  pVP                   F<  pVP                  V8X  g   K  VP                  \        P                  8X  g   K7  ^W6&    K  	  K  	  \        V4      S n        S P                  # )r    NZ.z@.get_methods() is deprecated and will be removed in Python 3.16.)Z
stacklevelc                 s   < SP                   P                  P                  V ^ 4      pV\        ,	          \        ,          \
        8H  # r    )rB   rW   r/   r   r   r   )r^   r[   r&   s   & r    is_local_symbolZ*Class.get_methods.<locals>.is_local_symbol   s4    ++//q9)+z9eCCr!   Zgenexprz.0)warningsrF   r2   r1   ZwarnZDeprecationWarning_Class__methodsrB   rU   rG   r)   r   r*   ZvarnamesrJ   rf   )r&   r   ZtypenameZdr   r`   Z
scope_nameZcs   f       r    get_methodsZClass.get_methods   s,    	nn//0$..2I2I1JK
 #< =(Q 	 	8 >>!AD kk**"277++''4Y44  "ww)38K ()*AggJ&;;; *,J%'[[#$66Z#7AFFiF]F]<] 56AM$) &1 +4 #1XDN~~r!   )Z	__methods)r1   r2   r3   r4   r   r   r5   r6   r7   r8   r    r   r      s     I+ +r!   c                   s   a  ] tR tRt o RRR/R lltR tR tR tR	 tR
 t	R t
R tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )r   i  NrY   Fc               sl    Wn         W n        \        V4      V n        T;'       g    RV n        W@n        R # )Nr:   )_Symbol__name_Symbol__flagsrb   _Symbol__scope_Symbol__namespaces_Symbol__module_scope)r&   rG   r[   r\   rY   s   &&&&$r    r(   ZSymbol.__init__  s.    !%(&,,"*r!   c                s    R P                  V P                  4       4      pRV P                  : RV P                  4        RV R2# )Z|z<symbol : , Z>)join
_flags_strr   
_scope_str)r&   Z	flags_strrH   r    rI   ZSymbol.__repr__$  s>    HHT__./	$++4??+<*=R	{!LLr!   c                sz    \         P                  V P                  4      ;'       g    \        V P                  4      # r   )_scopes_value_to_namer/   r   Zstrr%   r'   r    r   ZSymbol._scope_str(  s(    $((6KK#dll:KKr!   c              #  sh   "   \          F#  w  rV P                  V,          V8X  g   K  Vx  K%  	  R # 5ir   )_flagsr   )r&   ZflagnameZ	flagvalues   &  r    r   ZSymbol._flags_str+  s(     #)H||i'94 $*s   !2
2c                    V P                   # r   )r   r%   r'   r    rN   ZSymbol.get_name0  s     {{r!   c                B    \        V P                  \        ,          4      # r   )rP   r   r   r%   r'   r    is_referencedZSymbol.is_referenced5  s     DLL3&''r!   c                r   r   )rP   r   r   r%   r'   r    is_parameterZSymbol.is_parameter;       DLL9,--r!   c                r   r   )rP   r   r   r%   r'   r    is_type_parameterZSymbol.is_type_parameter@       DLL>122r!   c                    \        V P                  \        \        39   ;'       g,    V P                  ;'       d    V P
                  \        ,          4      # r   )rP   r   r   r   r   r   r	   r%   r'   r    	is_globalZSymbol.is_globalE  sI     DLL_o$FF J J++HHy0HK 	Kr!   c                r   r   )rP   r   r   r%   r'   r    is_nonlocalZSymbol.is_nonlocalK  s    DLL</00r!   c                :    \        V P                  \        8H  4      # r   )rP   r   r   r%   r'   r    is_declared_globalZSymbol.is_declared_globalO  s     DLLO344r!   c                r   r   )rP   r   r   r   r   r   r	   r%   r'   r    is_localZSymbol.is_localT  sH     DLLUDM1 J J++HHy0HK 	Kr!   c                r   r   )rP   r   r
   r%   r'   r    is_annotatedZSymbol.is_annotatedZ  r   r!   c                r   r   )rP   r   r   r%   r'   r    r   ZSymbol.is_free_  s     DLLD())r!   c                r   r   )rP   r   r   r%   r'   r    is_free_classZSymbol.is_free_classe  r   r!   c                r   r   )rP   r   r   r%   r'   r    is_importedZSymbol.is_importedj  s     DLL:-..r!   c                r   r   )rP   r   r   r%   r'   r    is_assignedZSymbol.is_assignedp  s    DLL9,--r!   c                r   r   )rP   r   r   r%   r'   r    is_comp_iterZSymbol.is_comp_itert       DLL=011r!   c                r   r   )rP   r   r   r%   r'   r    is_comp_cellZSymbol.is_comp_celly  r   r!   c                s,    \        V P                  4      # r   )rP   r   r%   r'   r    is_namespaceZSymbol.is_namespace~  s     D%%&&r!   c                r   r   )r   r%   r'   r    get_namespacesZSymbol.get_namespaces  s       r!   c                s    \        V P                  4      ^ 8X  d   \        R4      h\        V P                  4      ^8  d   \        R4      hV P                  ^ ,          # )r    z#name is not bound to any namespacesz$name is bound to multiple namespaces)Zlenr   Z
ValueErrorr%   r'   r    get_namespaceZSymbol.get_namespace  sS     t  !Q&BCC""#a'CDD$$Q''r!   )Z__flagsZ__module_scopeZ__nameZ__namespacesZ__scoper   )r1   r2   r3   r4   r(   rI   r   r   rN   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r6   r7   r8   r    r   r     s     +U +ML

(.
3
K15
K.
*3
/.2
2
'!( (r!   r   c              #   sd   "   T F&  q^ ,          P                  R4      '       g   K"  Vx  K(  	  R# 5i)r    ZDEF_N)Z
startswith)rc   ZkvrH   r    re   re     s#     I,R10@0@0Hbb,s   0
0c                 s:  a ^ RI pRV3R lloT ;'       g    R. Fi  pVR8X  d   VP                  P                  4       pRpM-\        VR4      ;_uu_ 4       pVP                  4       pRRR4       \	        XVR4      pS! V4       Kk  	  R#   + '       g   i     L+; i)r    Nc           
      s  < R V,          pV P                  4       '       d   RMRpV P                  4       R8X  d   RV P                  : 2pMV P                  4       : p\	        V RV V P                  4        RV R24       V P                  4        F  pV P                  V4      pRP                  VP                  4       4      P                  4       p\	        R V VP                  4       P                  4        R	VP                  4       : R
V 24       K  	  \	        4        V P                  4        F  pS	! W^,           4       K  	  R# )z    znested rE   r9   z
from file zsymbol table for Z Z:r   z symbol r   N)rT   rK   rC   rN   ZprintrX   r]   r   r   Zlowerr   ra   )
r,   ZlevelZindentrS   Zwhatr^   Zsymbolr[   Ztable2print_symbolss
   &&       r    r   Zmain.<locals>.print_symbols  s   %#oo//R>>x'23Dnn&)D)&%..2B1C1TF!LM**,E\\%(FIIf//1288:ED!2!2!4!:!:!< =XfooFWEZZ\]b\cde - 	((*F&!), +r!   Z-z<stdin>ZrbZexecr   )sysZstdinZreadZopenr   )Zargsr   r   ZsrcZfZmodr   s   &     @r    mainr     s{    -" MMSEMs?)).."C Hh%%ffh &sHf-c "
 &%s   B

BZ__main__:i   NN)r   r   r   r   r   r   )r   r   r   r   r   )+r   r   r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r#   Zenumr   Z__all__r   r"   r   r   r   rb   r   r   r   r   ZextendZglobalsZitemsZ_scopes_namesr   r   r1   r   Zargv)Zns   0r    <module>r      s   	 	 	 	 	 	  
W* $ %&$g $p0 p0f-3{ 3l/K /d( (D #, I79??,I IO2?@-Q1q-@ < z" C As   ?D