MINI MINI MANI MO

Path : /usr/lib64/python3.6/__pycache__/
File Upload :
Current File : //usr/lib64/python3.6/__pycache__/symtable.cpython-36.opt-1.pyc

3


 \m@sNdZddlZddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZddlZdddddgZd	dZGd
ddZeZGdddeZGd
ddeZGdddeZGdddeZedkrJddlZddlZeejdZej Z!WdQRXee!ej"j#ejdddZ$x0e$j%D]$Z&e$j'e&Z(e)e(e(j*e(j+q"WdS)z2Interface to the compiler's internal symbol tablesN)USE
DEF_GLOBAL	DEF_LOCAL	DEF_PARAM
DEF_IMPORT	DEF_BOUND	DEF_ANNOT	SCOPE_OFF
SCOPE_MASKFREELOCALGLOBAL_IMPLICITGLOBAL_EXPLICITCELLsymtableSymbolTableClassFunctionSymbolcCstj|||}t||S)N)	_symtabler_newSymbolTable)codefilenameZcompile_typetopr /usr/lib64/python3.6/symtable.pyrsc@s$eZdZddZddZddZdS)SymbolTableFactorycCstj|_dS)N)weakrefWeakValueDictionary_SymbolTableFactory__memo)selfrrr__init__szSymbolTableFactory.__init__cCs6|jtjkrt||S|jtjkr,t||St||S)N)typer
TYPE_FUNCTIONr
TYPE_CLASSrr)r tablerrrrnews


zSymbolTableFactory.newcCs8||f}|jj|d}|dkr4|j||}|j|<|S)N)rgetr&)r r%rkeyobjrrr__call__s
zSymbolTableFactory.__call__N)__name__
__module____qualname__r!r&r*rrrrrsrc@seZdZddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZddZddZddZdS) rcCs||_||_i|_dS)N)_table	_filename_symbols)r Z	raw_tablerrrrr!'szSymbolTable.__init__cCsN|jtkrd}nd|jj}|jjdkr6dj||jSdj||jj|jSdS)Nz%s globalz<{0}SymbolTable for module {1}>z<{0}SymbolTable for {1} in {2}>)	__class__rr+r.nameformatr/)r Zkindrrr__repr__,s
zSymbolTable.__repr__cCs:|jjtjkrdS|jjtjkr$dS|jjtjkr6dSdS)NmoduleZfunctionclass)r.r"rZTYPE_MODULEr#r$)r rrrget_type9szSymbolTable.get_typecCs|jjS)N)r.id)r rrrget_idCszSymbolTable.get_idcCs|jjS)N)r.r4)r rrrget_nameFszSymbolTable.get_namecCs|jjS)N)r.lineno)r rrr
get_linenoIszSymbolTable.get_linenocCst|jjtjkS)N)boolr.r"rr#)r rrris_optimizedLszSymbolTable.is_optimizedcCst|jjS)N)r?r.nested)r rrr	is_nestedOszSymbolTable.is_nestedcCst|jjS)N)r?r.children)r rrrhas_childrenRszSymbolTable.has_childrencCsdS)z7Return true if the scope uses exec.  Deprecated method.Fr)r rrrhas_execUszSymbolTable.has_execcCs|jjjS)N)r.symbolskeys)r rrrget_identifiersYszSymbolTable.get_identifierscCsD|jj|}|dkr@|jj|}|j|}t|||}|j|<|S)N)r0r'r.rF_SymbolTable__check_childrenr)r r4Zsymflags
namespacesrrrlookup\s
zSymbolTable.lookupcsfddjDS)Ncsg|]}j|qSr)rL).0ident)r rr
<listcomp>esz+SymbolTable.get_symbols.<locals>.<listcomp>)rH)r r)r rget_symbolsdszSymbolTable.get_symbolscsfddjjDS)Ncs"g|]}|jkrt|jqSr)r4rr/)rMst)r4r rrrOhsz0SymbolTable.__check_children.<locals>.<listcomp>)r.rC)r r4r)r4r rZ__check_childrengszSymbolTable.__check_childrencsfddjjDS)Ncsg|]}t|jqSr)rr/)rMrQ)r rrrOmsz,SymbolTable.get_children.<locals>.<listcomp>)r.rC)r r)r rget_childrenls
zSymbolTable.get_childrenN)r+r,r-r!r6r9r;r<r>r@rBrDrErHrLrPrIrRrrrrr%s

c@sDeZdZdZdZdZdZddZddZddZ	dd	Z
d
dZdS)rNcstfddjDS)Ncs g|]}jj|r|qSr)r.rF)rMrN)r 	test_funcrrrOzsz.Function.__idents_matching.<locals>.<listcomp>)tuplerH)r rSr)r rSrZ__idents_matchingyszFunction.__idents_matchingcCs |jdkr|jdd|_|jS)NcSs|t@S)N)r)xrrr<lambda>sz)Function.get_parameters.<locals>.<lambda>)_Function__params_Function__idents_matching)r rrrget_parameters}s
zFunction.get_parameterscs0|jdkr*ttffdd}|j||_|jS)Ncs|t?t@kS)N)r	r
)rU)locsrrrVsz%Function.get_locals.<locals>.<lambda>)_Function__localsrrrX)r testr)rZr
get_localss

zFunction.get_localscs0|jdkr*ttffdd}|j||_|jS)Ncs|t?t@kS)N)r	r
)rU)globrrrVsz&Function.get_globals.<locals>.<lambda>)_Function__globalsr
rrX)r r\r)r^rget_globalss

zFunction.get_globalscCs$|jdkrdd}|j||_|jS)NcSs|t?t@tkS)N)r	r
r)rUrrrrVsz$Function.get_frees.<locals>.<lambda>)_Function__freesrX)r is_freerrr	get_freess
zFunction.get_frees)r+r,r-rWr[rar_rXrYr]r`rcrrrrrqsc@seZdZdZddZdS)rNcCs:|jdkr4i}x|jjD]}d||j<qWt||_|jS)N)_Class__methodsr.rCr4rT)r drQrrrget_methodss

zClass.get_methods)r+r,r-rergrrrrrsc@seZdZd ddZddZddZdd	Zd
dZdd
ZddZ	ddZ
ddZddZddZ
ddZddZddZddZdS)!rNcCs(||_||_|t?t@|_|p f|_dS)N)
_Symbol__name_Symbol__flagsr	r
_Symbol__scope_Symbol__namespaces)r r4rJrKrrrr!szSymbol.__init__cCsdj|jS)Nz<symbol {0!r}>)r5rh)r rrrr6szSymbol.__repr__cCs|jS)N)rh)r rrrr<szSymbol.get_namecCst|jtj@S)N)r?rirr)r rrr
is_referencedszSymbol.is_referencedcCst|jt@S)N)r?rir)r rrris_parameterszSymbol.is_parametercCst|jttfkS)N)r?rjr
r)r rrr	is_globalszSymbol.is_globalcCst|jtkS)N)r?rjr)r rrris_declared_globalszSymbol.is_declared_globalcCst|jt@S)N)r?rir)r rrris_localszSymbol.is_localcCst|jt@S)N)r?rir)r rrris_annotatedszSymbol.is_annotatedcCst|jtkS)N)r?rjr)r rrrrbszSymbol.is_freecCst|jt@S)N)r?rir)r rrris_importedszSymbol.is_importedcCst|jt@S)N)r?rir)r rrris_assignedszSymbol.is_assignedcCs
t|jS)aReturns true if name binding introduces new namespace.

        If the name is used as the target of a function or class
        statement, this will be true.

        Note that a single name can be bound to multiple objects.  If
        is_namespace() is true, the name may also be bound to other
        objects, like an int or list, that does not introduce a new
        namespace.
        )r?rk)r rrris_namespaceszSymbol.is_namespacecCs|jS)z.Return a list of namespaces bound to this name)rk)r rrrget_namespacesszSymbol.get_namespacescCs t|jdkrtd|jdS)zReturns the single namespace bound to this name.

        Raises ValueError if the name is bound to multiple namespaces.
        rdz$name is bound to multiple namespacesr)lenrk
ValueError)r rrr
get_namespaceszSymbol.get_namespace)N)r+r,r-r!r6r<rlrmrnrorprqrbrrrsrtrurxrrrrrs

__main__rdexec),__doc__rrrrrrrrr	r
rrr
rrr__all__rrrobjectrrrrr+ossysopenargvfreadsrcpathsplitmodrHrNrLinfoprintrprtrrrr<module>s&@L&
C



OHA YOOOO