fc@sdZddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlZdddddgZd dZGd d d ZeZGd ddeZGd ddeZGdddeZGdddeZedkrddlZddlZeejdjZ ee ej!j"ejdddZ#xBe#j$D]1Z%e#j&e%Z'e(e'e'j)e'j*qWndS(u2Interface to the compiler's internal symbol tablesiN(uUSEu DEF_GLOBALu DEF_LOCALu DEF_PARAMu DEF_IMPORTu DEF_BOUNDuOPT_IMPORT_STARu SCOPE_OFFu SCOPE_MASKuFREEuLOCALuGLOBAL_IMPLICITuGLOBAL_EXPLICITuCELLusymtableu SymbolTableuClassuFunctionuSymbolcCs"tj|||}t||S(N(u _symtableusymtableu_newSymbolTable(ucodeufilenameu compile_typeutop((u-/opt/alt/python33/lib64/python3.3/symtable.pyusymtable scBs8|EeZdZddZddZddZdS(uSymbolTableFactorycCstj|_dS(N(uweakrefuWeakValueDictionaryu_SymbolTableFactory__memo(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu__init__suSymbolTableFactory.__init__cCsK|jtjkrt||S|jtjkr>t||St||S(N(utypeu _symtableu TYPE_FUNCTIONuFunctionu TYPE_CLASSuClassu SymbolTable(uselfutableufilename((u-/opt/alt/python33/lib64/python3.3/symtable.pyunews   uSymbolTableFactory.newcCsQ||f}|jj|d}|dkrM|j||}|j|u<{0}SymbolTable for {1} in {2}>(u __class__u SymbolTableu__name__u_tableunameuformatu _filename(uselfukind((u-/opt/alt/python33/lib64/python3.3/symtable.pyu__repr__,s   uSymbolTable.__repr__cCsO|jjtjkrdS|jjtjkr2dS|jjtjkrKdSdS(Numoduleufunctionuclass(u_tableutypeu _symtableu TYPE_MODULEu TYPE_FUNCTIONu TYPE_CLASS(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuget_type9suSymbolTable.get_typecCs |jjS(N(u_tableuid(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuget_idCsuSymbolTable.get_idcCs |jjS(N(u_tableuname(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuget_nameFsuSymbolTable.get_namecCs |jjS(N(u_tableulineno(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu get_linenoIsuSymbolTable.get_linenocCs&t|jjtjko"|jj S(N(uboolu_tableutypeu _symtableu TYPE_FUNCTIONu optimized(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_optimizedLsuSymbolTable.is_optimizedcCst|jjS(N(uboolu_tableunested(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_nestedPsuSymbolTable.is_nestedcCst|jjS(N(uboolu_tableuchildren(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu has_childrenSsuSymbolTable.has_childrencCsdS(u7Return true if the scope uses exec. Deprecated method.F(uFalse(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuhas_execVsuSymbolTable.has_execcCst|jjt@S(u&Return true if the scope uses import *(uboolu_tableu optimizeduOPT_IMPORT_STAR(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuhas_import_starZsuSymbolTable.has_import_starcCs|jjjS(N(u_tableusymbolsukeys(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuget_identifiers^suSymbolTable.get_identifierscCsa|jj|}|dkr]|jj|}|j|}t|||}|j|js u+SymbolTable.get_symbols..(uget_identifiers(uself((uselfu-/opt/alt/python33/lib64/python3.3/symtable.pyu get_symbolsisuSymbolTable.get_symbolscs fddjjDS(Ncs1g|]'}|jkrt|jqS((unameu_newSymbolTableu _filename(u.0ust(unameuself(u-/opt/alt/python33/lib64/python3.3/symtable.pyu ms u0SymbolTable.__check_children..(u_tableuchildren(uselfuname((unameuselfu-/opt/alt/python33/lib64/python3.3/symtable.pyu__check_childrenlsuSymbolTable.__check_childrencsfddjjDS(Ncs"g|]}t|jqS((u_newSymbolTableu _filename(u.0ust(uself(u-/opt/alt/python33/lib64/python3.3/symtable.pyu rs u,SymbolTable.get_children..(u_tableuchildren(uself((uselfu-/opt/alt/python33/lib64/python3.3/symtable.pyu get_childrenqsuSymbolTable.get_childrenN(u__name__u __module__u __qualname__u__init__u__repr__uget_typeuget_iduget_nameu get_linenou is_optimizedu is_nestedu has_childrenuhas_execuhas_import_staruget_identifiersulookupu get_symbolsu_SymbolTable__check_childrenu get_children(u __locals__((u-/opt/alt/python33/lib64/python3.3/symtable.pyu SymbolTable%s              cBsh|EeZdZd Zd Zd Zd ZddZddZ ddZ ddZ d d Z d S( uFunctioncs&tfddjDS(Ncs,g|]"}jj|r|qS((u_tableusymbols(u.0uident(uselfu test_func(u-/opt/alt/python33/lib64/python3.3/symtable.pyu s u.Function.__idents_matching..(utupleuget_identifiers(uselfu test_func((uselfu test_funcu-/opt/alt/python33/lib64/python3.3/symtable.pyu__idents_matching~suFunction.__idents_matchingcCs1|jdkr*|jdd|_n|jS(NcSs|t@S(N(u DEF_PARAM(ux((u-/opt/alt/python33/lib64/python3.3/symtable.pyusu)Function.get_parameters..(u_Function__paramsuNoneu_Function__idents_matching(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuget_parameterssuFunction.get_parameterscsI|jdkrBttffdd}|j||_n|jS(Ncs|t?t@kS(N(u SCOPE_OFFu SCOPE_MASK(ux(ulocs(u-/opt/alt/python33/lib64/python3.3/symtable.pyusu%Function.get_locals..(u_Function__localsuNoneuLOCALuCELLu_Function__idents_matching(uselfutest((ulocsu-/opt/alt/python33/lib64/python3.3/symtable.pyu get_localss  uFunction.get_localscsI|jdkrBttffdd}|j||_n|jS(Ncs|t?t@kS(N(u SCOPE_OFFu SCOPE_MASK(ux(uglob(u-/opt/alt/python33/lib64/python3.3/symtable.pyusu&Function.get_globals..(u_Function__globalsuNoneuGLOBAL_IMPLICITuGLOBAL_EXPLICITu_Function__idents_matching(uselfutest((uglobu-/opt/alt/python33/lib64/python3.3/symtable.pyu get_globalss  uFunction.get_globalscCs7|jdkr0dd}|j||_n|jS(NcSs|t?t@tkS(N(u SCOPE_OFFu SCOPE_MASKuFREE(ux((u-/opt/alt/python33/lib64/python3.3/symtable.pyusu$Function.get_frees..(u_Function__freesuNoneu_Function__idents_matching(uselfuis_free((u-/opt/alt/python33/lib64/python3.3/symtable.pyu get_freess uFunction.get_freesN( u__name__u __module__u __qualname__uNoneu_Function__paramsu_Function__localsu_Function__freesu_Function__globalsu_Function__idents_matchinguget_parametersu get_localsu get_globalsu get_frees(u __locals__((u-/opt/alt/python33/lib64/python3.3/symtable.pyuFunctionvs    cBs&|EeZdZdZddZdS(uClasscCsR|jdkrKi}x!|jjD]}d||j(uformatu _Symbol__name(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu__repr__suSymbol.__repr__cCs|jS(N(u _Symbol__name(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuget_namesuSymbol.get_namecCst|jtj@S(N(uboolu_Symbol__flagsu _symtableuUSE(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_referencedsuSymbol.is_referencedcCst|jt@S(N(uboolu_Symbol__flagsu DEF_PARAM(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_parametersuSymbol.is_parametercCst|jttfkS(N(uboolu_Symbol__scopeuGLOBAL_IMPLICITuGLOBAL_EXPLICIT(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_globalsuSymbol.is_globalcCst|jtkS(N(uboolu_Symbol__scopeuGLOBAL_EXPLICIT(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuis_declared_globalsuSymbol.is_declared_globalcCst|jt@S(N(uboolu_Symbol__flagsu DEF_BOUND(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuis_localsuSymbol.is_localcCst|jtkS(N(uboolu_Symbol__scopeuFREE(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuis_freesuSymbol.is_freecCst|jt@S(N(uboolu_Symbol__flagsu DEF_IMPORT(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_importedsuSymbol.is_importedcCst|jt@S(N(uboolu_Symbol__flagsu DEF_LOCAL(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_assignedsuSymbol.is_assignedcCs t|jS(uReturns 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. (uboolu_Symbol__namespaces(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_namespaces uSymbol.is_namespacecCs|jS(u.Return a list of namespaces bound to this name(u_Symbol__namespaces(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuget_namespacessuSymbol.get_namespacescCs/t|jdkr$tdn|jdS(uReturns the single namespace bound to this name. Raises ValueError if the name is bound to multiple namespaces. iu$name is bound to multiple namespacesi(ulenu_Symbol__namespacesu ValueError(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu get_namespacesuSymbol.get_namespaceN(u__name__u __module__u __qualname__uNoneu__init__u__repr__uget_nameu is_referencedu is_parameteru is_globaluis_declared_globaluis_localuis_freeu is_importedu is_assignedu is_namespaceuget_namespacesu get_namespace(u __locals__((u-/opt/alt/python33/lib64/python3.3/symtable.pyuSymbols           u__main__iuexec(+u__doc__u _symtableuUSEu DEF_GLOBALu DEF_LOCALu DEF_PARAMu DEF_IMPORTu DEF_BOUNDuOPT_IMPORT_STARu SCOPE_OFFu SCOPE_MASKuFREEuLOCALuGLOBAL_IMPLICITuGLOBAL_EXPLICITuCELLuweakrefu__all__usymtableuSymbolTableFactoryu_newSymbolTableuobjectu SymbolTableuFunctionuClassuSymbolu__name__uosusysuopenuargvureadusrcupathusplitumoduget_identifiersuidentulookupuinfouprintuis_localu is_namespace(((u-/opt/alt/python33/lib64/python3.3/symtable.pyus$ ^   Q& @ )