PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  lY @sddlZddlmZmZmZmZmZmZmZmZm Z m Z m Z m Z m Z ddlZdddddgZddZGd d d ZeZGd ddeZGd ddeZGd ddeZGdddeZedkrddlZddlZeejdZejZWdQRXeeej j!ejdddZ"x?e"j#D]1Z$e"j%e$Z&e'e&e&j(e&j)qWdS)N) USE DEF_GLOBAL DEF_LOCAL DEF_PARAM DEF_IMPORT DEF_BOUND SCOPE_OFF SCOPE_MASKFREELOCALGLOBAL_IMPLICITGLOBAL_EXPLICITCELLsymtable SymbolTableClassFunctionSymbolcCs"tj|||}t||S)N) _symtabler_newSymbolTable)codefilenameZ compile_typetopr'/opt/python35/lib/python3.5/symtable.pyr sc@s4eZdZddZddZddZdS)SymbolTableFactorycCstj|_dS)N)weakrefWeakValueDictionary_SymbolTableFactory__memo)selfrrr__init__szSymbolTableFactory.__init__cCsK|jtjkrt||S|jtjkr>t||St||S)N)typer TYPE_FUNCTIONr TYPE_CLASSrr)rtablerrrrnews   zSymbolTableFactory.newcCsN||f}|jj|d}|dkrJ|j||}|j|<|S)N)rgetr%)rr$rkeyobjrrr__call__s   zSymbolTableFactory.__call__N)__name__ __module__ __qualname__r r%r)rrrrrs   rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdS) rcCs||_||_i|_dS)N)_table _filename_symbols)rZ raw_tablerrrrr 's  zSymbolTable.__init__cCsm|jtkrd}nd|jj}|jjdkrMdj||jSdj||jj|jSdS)Nz%s globalz<{0}SymbolTable for module {1}>z<{0}SymbolTable for {1} in {2}>) __class__rr*r-nameformatr.)rkindrrr__repr__,s   zSymbolTable.__repr__cCsO|jjtjkrdS|jjtjkr2dS|jjtjkrKdSdS)Nmodulefunctionclass)r-r!rZ TYPE_MODULEr"r#)rrrrget_type9szSymbolTable.get_typecCs |jjS)N)r-id)rrrrget_idCszSymbolTable.get_idcCs |jjS)N)r-r3)rrrrget_nameFszSymbolTable.get_namecCs |jjS)N)r-lineno)rrrr get_linenoIszSymbolTable.get_linenocCst|jjtjkS)N)boolr-r!rr")rrrr is_optimizedLszSymbolTable.is_optimizedcCst|jjS)N)r@r-nested)rrrr is_nestedOszSymbolTable.is_nestedcCst|jjS)N)r@r-children)rrrr has_childrenRszSymbolTable.has_childrencCsdS)NFr)rrrrhas_execUszSymbolTable.has_execcCs|jjjS)N)r-symbolskeys)rrrrget_identifiersYszSymbolTable.get_identifierscCs^|jj|}|dkrZ|jj|}|j|}t|||}|j|<|S)N)r/r&r-rG_SymbolTable__check_childrenr)rr3Zsymflags namespacesrrrlookup\s  zSymbolTable.lookupcsfddjDS)Ncsg|]}j|qSr)rM).0ident)rrr es z+SymbolTable.get_symbols..)rI)rr)rr get_symbolsdszSymbolTable.get_symbolscs fddjjDS)Ncs1g|]'}|jkrt|jqSr)r3rr.)rNst)r3rrrrPhs z0SymbolTable.__check_children..)r-rD)rr3r)r3rrZ__check_childrengszSymbolTable.__check_childrencsfddjjDS)Ncs"g|]}t|jqSr)rr.)rNrR)rrrrPms z,SymbolTable.get_children..)r-rD)rr)rr get_childrenlszSymbolTable.get_childrenN)r*r+r,r r6r:r<r=r?rArCrErFrIrMrQrJrSrrrrr%s             c@sdeZdZdZdZdZdZddZddZddZ dd Z d d Z dS) rNcs&tfddjDS)Ncs,g|]"}jj|r|qSr)r-rG)rNrO)r test_funcrrrPzs z.Function.__idents_matching..)tuplerI)rrTr)rrTrZ__idents_matchingyszFunction.__idents_matchingcCs.|jdkr'|jdd|_|jS)NcSs|t@S)N)r)xrrrsz)Function.get_parameters..)_Function__params_Function__idents_matching)rrrrget_parameters}szFunction.get_parameterscsF|jdkr?ttffdd}|j||_|jS)Ncs|t?t@kS)N)rr )rV)locsrrrWsz%Function.get_locals..)_Function__localsr rrY)rtestr)r[r get_localss  zFunction.get_localscsF|jdkr?ttffdd}|j||_|jS)Ncs|t?t@kS)N)rr )rV)globrrrWsz&Function.get_globals..)_Function__globalsr r rY)rr]r)r_r get_globalss  zFunction.get_globalscCs4|jdkr-dd}|j||_|jS)NcSs|t?t@tkS)N)rr r )rVrrrrWsz$Function.get_frees..)_Function__freesrY)ris_freerrr get_freess zFunction.get_frees) r*r+r,rXr\rbr`rYrZr^rardrrrrrqs     c@s"eZdZdZddZdS)rNcCsO|jdkrHi}x!|jjD]}d||j)r4ri)rrrrr6szSymbol.__repr__cCs|jS)N)ri)rrrrr=szSymbol.get_namecCst|jtj@S)N)r@rjrr)rrrr is_referencedszSymbol.is_referencedcCst|jt@S)N)r@rjr)rrrr is_parameterszSymbol.is_parametercCst|jttfkS)N)r@rkr r )rrrr is_globalszSymbol.is_globalcCst|jtkS)N)r@rkr )rrrris_declared_globalszSymbol.is_declared_globalcCst|jt@S)N)r@rjr)rrrris_localszSymbol.is_localcCst|jtkS)N)r@rkr )rrrrrcszSymbol.is_freecCst|jt@S)N)r@rjr)rrrr is_importedszSymbol.is_importedcCst|jt@S)N)r@rjr)rrrr is_assignedszSymbol.is_assignedcCs t|jS)N)r@rl)rrrr is_namespaces zSymbol.is_namespacecCs|jS)N)rl)rrrrget_namespacesszSymbol.get_namespacescCs,t|jdkr!td|jdS)Nrez$name is bound to multiple namespacesr)lenrl ValueError)rrrr get_namespaces zSymbol.get_namespace)r*r+r,r r6r=rmrnrorprqrcrrrsrtrurxrrrrrs            __main__reexec)*rrrrrrrrr r r r r rr__all__rrrobjectrrrrr*ossysopenargvfreadsrcpathsplitmodrIrOrMinfoprintrqrtrrrrs$ X   L& @ )