Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/symtable.cpython-35.opt-1.pyc



Yf@sdZddlZddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZddlZdddddgZd	dZGd
ddZeZGdddeZGd
ddeZGdddeZGdddeZedkrddlZddlZeejdZejZ WdQRXee ej!j"ejdddZ#x?e#j$D]1Z%e#j&e%Z'e(e'e'j)e'j*qWdS)z2Interface to the compiler's internal symbol tablesN)
USE
DEF_GLOBAL	DEF_LOCAL	DEF_PARAM
DEF_IMPORT	DEF_BOUND	SCOPE_OFF
SCOPE_MASKFREELOCALGLOBAL_IMPLICITGLOBAL_EXPLICITCELLsymtableSymbolTableClassFunctionSymbolcCs"tj|||}t||S)N)	_symtabler_newSymbolTable)codefilenameZcompile_typetopr-/opt/alt/python35/lib64/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
ZddZd
dZ	ddZ
ddZddZ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.)rZkindrrr__repr__,s			zSymbolTable.__repr__cCsO|jjtjkrdS|jjtjkr2dS|jjtjkrKdSdS)NmoduleZfunctionclass)r-r!rZTYPE_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)z7Return true if the scope uses exec.  Deprecated method.Fr)rrrrhas_execUszSymbolTable.has_execcCs|jjjS)N)r-symbolskeys)rrrrget_identifiersYszSymbolTable.get_identifierscCs^|jj|}|dkrZ|jj|}|j|}t|||}|j|<|S)N)r/r&r-rE_SymbolTable__check_childrenr)rr3Zsymflags
namespacesrrrlookup\szSymbolTable.lookupcsfddjDS)Ncsg|]}j|qSr)rK).0ident)rrr
<listcomp>es	z+SymbolTable.get_symbols.<locals>.<listcomp>)rG)rr)rrget_symbolsdszSymbolTable.get_symbolscs fddjjDS)Ncs1g|]'}|jkrt|jqSr)r3rr.)rLst)r3rrrrNhs	z0SymbolTable.__check_children.<locals>.<listcomp>)r-rB)rr3r)r3rrZ__check_childrengszSymbolTable.__check_childrencsfddjjDS)Ncs"g|]}t|jqSr)rr.)rLrP)rrrrNms	z,SymbolTable.get_children.<locals>.<listcomp>)r-rB)rr)rrget_childrenlszSymbolTable.get_childrenN)r*r+r,r r5r8r:r;r=r?rArCrDrGrKrOrHrQrrrrr%s

c@sdeZdZdZdZdZdZddZddZddZ	dd	Z
d
dZdS)rNcs&tfddjDS)Ncs,g|]"}jj|r|qSr)r-rE)rLrM)r	test_funcrrrNzs	z.Function.__idents_matching.<locals>.<listcomp>)tuplerG)rrRr)rrRrZ__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)rrrrget_parameters}szFunction.get_parameterscsF|jdkr?ttffdd}|j||_|jS)Ncs|t?t@kS)N)rr	)rT)locsrrrUsz%Function.get_locals.<locals>.<lambda>)_Function__localsrrrW)rtestr)rYr
get_localss
zFunction.get_localscsF|jdkr?ttffdd}|j||_|jS)Ncs|t?t@kS)N)rr	)rT)globrrrUsz&Function.get_globals.<locals>.<lambda>)_Function__globalsrr
rW)rr[r)r]rget_globalss
zFunction.get_globalscCs4|jdkr-dd}|j||_|jS)NcSs|t?t@tkS)N)rr	r
)rTrrrrUsz$Function.get_frees.<locals>.<lambda>)_Function__freesrW)ris_freerrr	get_freesszFunction.get_frees)r*r+r,rVrZr`r^rWrXr\r_rbrrrrrqsc@s"eZdZdZddZdS)rNcCsO|jdkrHi}x!|jjD]}d||j<q"Wt||_|jS)N)_Class__methodsr-rBr3rS)rdrPrrrget_methodsszClass.get_methods)r*r+r,rdrfrrrrrsc@seZdZdddZddZddZdd	Zd
dZdd
ZddZ	ddZ
ddZddZddZ
ddZddZddZdS)rNcCs6||_||_|t?t@|_|p,f|_dS)N)
_Symbol__name_Symbol__flagsrr	_Symbol__scope_Symbol__namespaces)rr3rIrJrrrr s		zSymbol.__init__cCsdj|jS)Nz<symbol {0!r}>)r4rg)rrrrr5szSymbol.__repr__cCs|jS)N)rg)rrrrr;szSymbol.get_namecCst|jtj@S)N)r>rhrr)rrrr
is_referencedszSymbol.is_referencedcCst|jt@S)N)r>rhr)rrrris_parameterszSymbol.is_parametercCst|jttfkS)N)r>rirr
)rrrr	is_globalszSymbol.is_globalcCst|jtkS)N)r>rir
)rrrris_declared_globalszSymbol.is_declared_globalcCst|jt@S)N)r>rhr)rrrris_localszSymbol.is_localcCst|jtkS)N)r>rir
)rrrrraszSymbol.is_freecCst|jt@S)N)r>rhr)rrrris_importedszSymbol.is_importedcCst|jt@S)N)r>rhr)rrrris_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>rj)rrrris_namespaceszSymbol.is_namespacecCs|jS)z.Return a list of namespaces bound to this name)rj)rrrrget_namespacesszSymbol.get_namespacescCs,t|jdkr!td|jdS)zReturns the single namespace bound to this name.

        Raises ValueError if the name is bound to multiple namespaces.
        rcz$name is bound to multiple namespacesr)lenrj
ValueError)rrrr
get_namespaceszSymbol.get_namespace)r*r+r,r r5r;rkrlrmrnrorarprqrrrsrvrrrrrs
__main__rcexec)+__doc__rrrrrrrrr	r
rrr
rr__all__rrrobjectrrrrr*ossysopenargvfreadsrcpathsplitmodrGrMrKinfoprintrorrrrrr<module>s&X	L&
@)
Back to Directory File Manager