grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B ¸²¨ý7¾Ìã @sJddlZddlmZmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZddlZdddddgZdd„ZGd d „d ƒZeƒZGd d„deƒZGd d„deƒZGd d„deƒZGdd„deƒZedk�rFddlZddlZeejdƒ�Ze ¡Z WdQRXee ej! "ejd¡ddƒZ#x0e# $¡D]$Z%e# &e%¡Z'e(e'e' )¡e' *¡ƒ�qWdS)éN)ÚUSEÚ DEF_GLOBALÚ 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/python37/lib64/python3.7/symtable.pyr sc@s$eZdZdd„Zdd„Zdd„ZdS)ÚSymbolTableFactorycCst ¡|_dS)N)ÚweakrefZWeakValueDictionaryÚ_SymbolTableFactory__memo)ÚselfrrrÚ__init__szSymbolTableFactory.__init__cCs6|jtjkrt||ƒS|jtjkr,t||ƒSt||ƒS)N)ÚtyperÚ TYPE_FUNCTIONrÚ TYPE_CLASSrr)rÚtablerrrrÚnews     zSymbolTableFactory.newcCs8||f}|j |d¡}|dkr4| ||¡}|j|<|S)N)rÚgetr%)rr$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„Zdd„ZdS) rcCs||_||_i|_dS)N)Ú_tableÚ _filenameÚ_symbols)rZ raw_tablerrrrr 'szSymbolTable.__init__cCsN|jtkrd}n d|jj}|jjdkr6d ||j¡Sd ||jj|j¡SdS)NÚz%s Úglobalz<{0}SymbolTable for module {1}>z<{0}SymbolTable for {1} in {2}>)Ú __class__rr*r-ÚnameÚformatr.)rÚkindrrrÚ__repr__,s   zSymbolTable.__repr__cCs:|jjtjkrdS|jjtjkr$dS|jjtjkr6dSdS)NÚmoduleZfunctionÚclass)r-r!rZ TYPE_MODULEr"r#)rrrrÚget_type9szSymbolTable.get_typecCs|jjS)N)r-Úid)rrrrÚget_idCszSymbolTable.get_idcCs|jjS)N)r-r3)rrrrÚget_nameFszSymbolTable.get_namecCs|jjS)N)r-Úlineno)rrrrÚ get_linenoIszSymbolTable.get_linenocCst|jjtjkƒS)N)Úboolr-r!rr")rrrrÚ is_optimizedLszSymbolTable.is_optimizedcCs t|jjƒS)N)r?r-Únested)rrrrÚ is_nestedOszSymbolTable.is_nestedcCs t|jjƒS)N)r?r-Úchildren)rrrrÚ has_childrenRszSymbolTable.has_childrencCsdS)NFr)rrrrÚhas_execUszSymbolTable.has_execcCs |jj ¡S)N)r-ÚsymbolsÚkeys)rrrrÚget_identifiersYszSymbolTable.get_identifierscCsD|j |¡}|dkr@|jj|}| |¡}t|||ƒ}|j|<|S)N)r/r&r-rFÚ_SymbolTable__check_childrenr)rr3ZsymÚflagsÚ namespacesrrrÚlookup\s    zSymbolTable.lookupcs‡fdd„ˆ ¡DƒS)Ncsg|]}ˆ |¡‘qSr)rL)Ú.0Úident)rrrú esz+SymbolTable.get_symbols..)rH)rr)rrÚ get_symbolsdszSymbolTable.get_symbolscs‡‡fdd„ˆjjDƒS)Ncs"g|]}|jˆkrt|ˆjƒ‘qSr)r3rr.)rMÚst)r3rrrrOhsz0SymbolTable.__check_children..)r-rC)rr3r)r3rrZ__check_childrengs zSymbolTable.__check_childrencs‡fdd„ˆjjDƒS)Ncsg|]}t|ˆjƒ‘qSr)rr.)rMrQ)rrrrOmsz,SymbolTable.get_children..)r-rC)rr)rrÚ get_childrenls zSymbolTable.get_childrenN)r*r+r,r r6r9r;r<r>r@rBrDrErHrLrPrIrRrrrrr%s  c@sDeZdZdZdZdZdZdd„Zdd„Zdd„Z dd „Z d d „Z dS) rNcst‡‡fdd„ˆ ¡DƒƒS)Nc3s"|]}ˆˆjj|ƒr|VqdS)N)r-rF)rMrN)rÚ test_funcrrú zsz-Function.__idents_matching..)ÚtuplerH)rrSr)rrSrZ__idents_matchingyszFunction.__idents_matchingcCs |jdkr| dd„¡|_|jS)NcSs|t@S)N)r)ÚxrrrÚóz)Function.get_parameters..)Ú_Function__paramsÚ_Function__idents_matching)rrrrÚget_parameters}s zFunction.get_parameterscs0|jdkr*ttf‰‡fdd„}| |¡|_|jS)Ncs|t?t@ˆkS)N)r r )rV)ÚlocsrrrW…rXz%Function.get_locals..)Ú_Function__localsr rrZ)rÚtestr)r\rÚ get_locals‚s    zFunction.get_localscs0|jdkr*ttf‰‡fdd„}| |¡|_|jS)Ncs|t?t@ˆkS)N)r r )rV)ÚglobrrrWŒrXz&Function.get_globals..)Ú_Function__globalsr rrZ)rr^r)r`rÚ get_globals‰s    zFunction.get_globalscCs$|jdkrdd„}| |¡|_|jS)NcSs|t?t@tkS)N)r r r )rVrrrrW’rXz$Function.get_frees..)Ú_Function__freesrZ)rÚis_freerrrÚ get_frees�s  zFunction.get_frees) r*r+r,rYr]rcrarZr[r_rbrerrrrrqsc@seZdZdZdd„ZdS)rNcCs:|jdkr4i}x|jjD]}d||j<qWt|ƒ|_|jS)Né)Ú_Class__methodsr-rCr3rU)rÚdrQrrrÚ get_methods›s   zClass.get_methods)r*r+r,rgrirrrrr—sc@s†eZdZd dd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„ZdS)!rNcCs(||_||_|t?t@|_|p d|_dS)Nr)Ú _Symbol__nameÚ_Symbol__flagsr r Ú_Symbol__scopeÚ_Symbol__namespaces)rr3rJrKrrrr ¦szSymbol.__init__cCs d |j¡S)Nz)r4rj)rrrrr6¬szSymbol.__repr__cCs|jS)N)rj)rrrrr<¯szSymbol.get_namecCst|jtj@ƒS)N)r?rkrr)rrrrÚ is_referenced²szSymbol.is_referencedcCst|jt@ƒS)N)r?rkr)rrrrÚ is_parameterµszSymbol.is_parametercCst|jttfkƒS)N)r?rlr r)rrrrÚ is_global¸szSymbol.is_globalcCst|jtkƒS)N)r?rlr)rrrrÚis_declared_global»szSymbol.is_declared_globalcCst|jttfkƒS)N)r?rlr r)rrrrÚis_local¾szSymbol.is_localcCst|jt@ƒS)N)r?rkr)rrrrÚ is_annotatedÁszSymbol.is_annotatedcCst|jtkƒS)N)r?rlr )rrrrrdÄszSymbol.is_freecCst|jt@ƒS)N)r?rkr)rrrrÚ is_importedÇszSymbol.is_importedcCst|jt@ƒS)N)r?rkr)rrrrÚ is_assignedÊszSymbol.is_assignedcCs t|jƒS)N)r?rm)rrrrÚ is_namespaceÍs zSymbol.is_namespacecCs|jS)N)rm)rrrrÚget_namespacesÚszSymbol.get_namespacescCs t|jƒdkrtdƒ‚|jdS)Nrfz$name is bound to multiple namespacesr)ÚlenrmÚ ValueError)rrrrÚ get_namespaceÞszSymbol.get_namespace)N)r*r+r,r r6r<rnrorprqrrrsrdrtrurvrwrzrrrrr¤s  Ú__main__rfÚexec)+rrrrrrrrr r r r r rrrÚ__all__rrrÚobjectrrrrr*ÚosÚsysÚopenÚargvÚfÚreadÚsrcÚpathÚsplitÚmodrHrNrLÚinfoÚprintrrrvrrrrÚs$@L& C