grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?háã@sTddlZddlmZmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlZgd¢Zdd„ZGdd„dƒZeƒZGdd „d ƒZGd d „d eƒZGd d „d eƒZGdd„dƒZedk�rPddlZddlZeejdƒ�Ze ¡Z Wdƒn1sú0Yee ej! "ejd¡ddƒZ#e# $¡D]$Z%e# &e%¡Z'e(e'e' )¡e' *¡ƒ�q*dS)éN)ÚUSEÚ DEF_GLOBALÚ DEF_NONLOCALÚ DEF_LOCALÚ DEF_PARAMÚ DEF_IMPORTÚ DEF_BOUNDÚ DEF_ANNOTÚ SCOPE_OFFÚ SCOPE_MASKÚFREEÚLOCALÚGLOBAL_IMPLICITÚGLOBAL_EXPLICITÚCELL)ÚsymtableÚ SymbolTableÚClassÚFunctionÚSymbolcCst |||¡}t||ƒS©N)Ú _symtablerÚ_newSymbolTable)ÚcodeÚfilenameZ compile_typeÚtop©rú-/opt/alt/python39/lib64/python3.9/symtable.pyr src@s$eZdZdd„Zdd„Zdd„ZdS)ÚSymbolTableFactorycCst ¡|_dSr)ÚweakrefZWeakValueDictionaryÚ_SymbolTableFactory__memo©ÚselfrrrÚ__init__szSymbolTableFactory.__init__cCs6|jtjkrt||ƒS|jtjkr,t||ƒSt||ƒSr)ÚtyperÚ TYPE_FUNCTIONrÚ TYPE_CLASSrr)r"ÚtablerrrrÚnews     zSymbolTableFactory.newcCs8||f}|j |d¡}|dur4| ||¡}|j|<|Sr)r Úgetr()r"r'rÚkeyÚobjrrrÚ__call__s zSymbolTableFactory.__call__N)Ú__name__Ú __module__Ú __qualname__r#r(r,rrrrrsrc@s|eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS)rcCs||_||_i|_dSr)Ú_tableÚ _filenameÚ_symbols)r"Z raw_tablerrrrr#'szSymbolTable.__init__cCsN|jtkrd}n d|jj}|jjdkr6d ||j¡Sd ||jj|j¡SdS)NÚz%s rz<{0}SymbolTable for module {1}>z<{0}SymbolTable for {1} in {2}>)Ú __class__rr-r0ÚnameÚformatr1)r"ÚkindrrrÚ__repr__,s   þzSymbolTable.__repr__cCs:|jjtjkrdS|jjtjkr$dS|jjtjkr6dSdS)NÚmoduleZfunctionÚclass)r0r$rZ TYPE_MODULEr%r&r!rrrÚget_type9szSymbolTable.get_typecCs|jjSr)r0Úidr!rrrÚget_idCszSymbolTable.get_idcCs|jjSr)r0r5r!rrrÚget_nameFszSymbolTable.get_namecCs|jjSr)r0Úlinenor!rrrÚ get_linenoIszSymbolTable.get_linenocCst|jjtjkƒSr)Úboolr0r$rr%r!rrrÚ is_optimizedLszSymbolTable.is_optimizedcCs t|jjƒSr)rAr0Únestedr!rrrÚ is_nestedOszSymbolTable.is_nestedcCs t|jjƒSr)rAr0Úchildrenr!rrrÚ has_childrenRszSymbolTable.has_childrencCs |jj ¡Sr)r0ÚsymbolsÚkeysr!rrrÚget_identifiersUszSymbolTable.get_identifierscCsT|j |¡}|durP|jj|}| |¡}|jjdk}t||||d�}|j|<|S)Nr©Ú module_scope)r2r)r0rGÚ_SymbolTable__check_childrenr5r)r"r5ZsymÚflagsÚ namespacesrKrrrÚlookupXs    ÿzSymbolTable.lookupcs‡fdd„ˆ ¡DƒS)Ncsg|]}ˆ |¡‘qSr)rO©Ú.0Úidentr!rrÚ cóz+SymbolTable.get_symbols..)rIr!rr!rÚ get_symbolsbszSymbolTable.get_symbolscs‡‡fdd„ˆjjDƒS)Ncs"g|]}|jˆkrt|ˆjƒ‘qSr)r5rr1©rQÚst©r5r"rrrSfs þz0SymbolTable.__check_children..©r0rE)r"r5rrXrZ__check_childrenes ÿzSymbolTable.__check_childrencs‡fdd„ˆjjDƒS)Ncsg|]}t|ˆjƒ‘qSr)rr1rVr!rrrSksÿz,SymbolTable.get_children..rYr!rr!rÚ get_childrenjs ÿzSymbolTable.get_childrenN)r-r.r/r#r8r;r=r>r@rBrDrFrIrOrUrLrZrrrrr%s   rc@sPeZdZdZdZdZdZdZdd„Zdd„Z dd„Z dd „Z d d „Z d d „Z dS)rNcst‡‡fdd„ˆ ¡DƒƒS)Nc3s"|]}ˆˆjj|ƒr|VqdSr)r0rGrP©r"Z test_funcrrÚ ysÿz-Function.__idents_matching..)ÚtuplerIr[rr[rZ__idents_matchingxszFunction.__idents_matchingcCs |jdur| dd„¡|_|jS)NcSs|t@Sr)r©ÚxrrrÚ~rTz)Function.get_parameters..)Ú_Function__paramsÚ_Function__idents_matchingr!rrrÚget_parameters|s zFunction.get_parameterscs0|jdur*ttf‰‡fdd„}| |¡|_|jS)Ncs|t?t@ˆvSr©r r r^©Zlocsrrr`„rTz%Function.get_locals..)Ú_Function__localsr rrb©r"ÚtestrrerÚ get_locals�s    zFunction.get_localscs0|jdur*ttf‰‡fdd„}| |¡|_|jS)Ncs|t?t@ˆvSrrdr^©Zglobrrr`‹rTz&Function.get_globals..)Ú_Function__globalsrrrbrgrrjrÚ get_globalsˆs    zFunction.get_globalscCs |jdur| dd„¡|_|jS)NcSs|t@Sr)rr^rrrr`‘rTz(Function.get_nonlocals..)Ú_Function__nonlocalsrbr!rrrÚ get_nonlocals�s zFunction.get_nonlocalscCs$|jdurdd„}| |¡|_|jS)NcSs|t?t@tkSr)r r r r^rrrr`–rTz$Function.get_frees..)Ú_Function__freesrb)r"Úis_freerrrÚ get_frees”s  zFunction.get_frees)r-r.r/rarfrorkrmrbrcrirlrnrqrrrrrosrc@seZdZdZdd„ZdS)rNcCs6|jdur0i}|jjD]}d||j<qt|ƒ|_|jS)Né)Ú_Class__methodsr0rEr5r])r"ÚdrWrrrÚ get_methodsŸs     zClass.get_methods)r-r.r/rsrurrrrr›src@s”eZdZd$ddœdd„Zdd„Zdd „Zd d „Zd d „Zdd„Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zd d!„Zd"d#„ZdS)%rNFrJcCs.||_||_|t?t@|_|p d|_||_dS)Nr)Ú _Symbol__nameÚ_Symbol__flagsr r Ú_Symbol__scopeÚ_Symbol__namespacesÚ_Symbol__module_scope)r"r5rMrNrKrrrr#ªs  zSymbol.__init__cCs d |j¡S)Nz)r6rvr!rrrr8±szSymbol.__repr__cCs|jSr)rvr!rrrr>´szSymbol.get_namecCst|jtj@ƒSr)rArwrrr!rrrÚ is_referenced·szSymbol.is_referencedcCst|jt@ƒSr)rArwrr!rrrÚ is_parameterºszSymbol.is_parametercCs"t|jttfvp|jo|jt@ƒSr)rArxrrrzrwrr!rrrÚ is_global½sÿzSymbol.is_globalcCst|jt@ƒSr)rArwrr!rrrÚ is_nonlocalÃszSymbol.is_nonlocalcCst|jtkƒSr)rArxrr!rrrÚis_declared_globalÆszSymbol.is_declared_globalcCs"t|jttfvp|jo|jt@ƒSr)rArxr rrzrwrr!rrrÚis_localÉsÿzSymbol.is_localcCst|jt@ƒSr)rArwr r!rrrÚ is_annotatedÏszSymbol.is_annotatedcCst|jtkƒSr)rArxr r!rrrrpÒszSymbol.is_freecCst|jt@ƒSr)rArwrr!rrrÚ is_importedÕszSymbol.is_importedcCst|jt@ƒSr)rArwrr!rrrÚ is_assignedØszSymbol.is_assignedcCs t|jƒSr)rAryr!rrrÚ is_namespaceÛs zSymbol.is_namespacecCs|jSr)ryr!rrrÚget_namespacesèszSymbol.get_namespacescCs t|jƒdkrtdƒ‚|jdS)Nrrz$name is bound to multiple namespacesr)ÚlenryÚ ValueErrorr!rrrÚ get_namespaceìszSymbol.get_namespace)N)r-r.r/r#r8r>r{r|r}r~rr€r�rpr‚rƒr„r…rˆrrrrr¨s  rÚ__main__rrÚexec)+rrrrrrrrr r r r r rrrrÚ__all__rrrrrrrr-ÚosÚsysÚopenÚargvÚfÚreadÚsrcÚpathÚsplitÚmodrIrRrOÚinfoÚprintr€r„rrrrÚs$DJ, M &