ž ¬ÿf×c@sÀdZddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlZdddddgZd d„ZGd d „d ƒZeƒZGd d„deƒZGd d„deƒZGdd„deƒZGdd„deƒZedkr¼ddlZddlZeejdƒjƒZ ee ej!j"ejdƒddƒZ#xBe#j$ƒD]1Z%e#j&e%ƒZ'e(e'e'j)ƒe'j*ƒƒq„WndS(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|EeZdZdd„Zdd„Zdd„ZdS(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__cCs||jjtjkrdS|jjtjkr2dS|jjtjkrKdS|jjdksxtdj|jjƒƒ‚dS( Numoduleufunctionuclassiiiuunexpected type: {0}(iii(u_tableutypeu _symtableu TYPE_MODULEu TYPE_FUNCTIONu TYPE_CLASSuAssertionErroruformat(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|jjƒS(N(uboolu_tableunested(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_nestedPsuSymbolTable.is_nestedcCst|jjƒS(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|jjjƒS(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 ‡‡fdd†ˆjjDƒS(Ncs1g|]'}|jˆkrt|ˆjƒ‘qS((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_childrencs‡fdd†ˆjjDƒS(Ncs"g|]}t|ˆjƒ‘qS((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 Zdd„Zdd„Z dd„Z dd„Z d d „Z d S( uFunctioncs&t‡‡fdd†ˆjƒDƒƒS(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.pyu„su)Function.get_parameters..(u_Function__paramsuNoneu_Function__idents_matching(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuget_parameters‚suFunction.get_parameterscsI|jdkrBttf‰‡fdd†}|j|ƒ|_n|jS(Ncs|t?t@ˆkS(N(u SCOPE_OFFu SCOPE_MASK(ux(ulocs(u-/opt/alt/python33/lib64/python3.3/symtable.pyuŠsu%Function.get_locals..(u_Function__localsuNoneuLOCALuCELLu_Function__idents_matching(uselfutest((ulocsu-/opt/alt/python33/lib64/python3.3/symtable.pyu get_locals‡s  uFunction.get_localscsI|jdkrBttf‰‡fdd†}|j|ƒ|_n|jS(Ncs|t?t@ˆkS(N(u SCOPE_OFFu SCOPE_MASK(ux(uglob(u-/opt/alt/python33/lib64/python3.3/symtable.pyu‘su&Function.get_globals..(u_Function__globalsuNoneuGLOBAL_IMPLICITuGLOBAL_EXPLICITu_Function__idents_matching(uselfutest((uglobu-/opt/alt/python33/lib64/python3.3/symtable.pyu get_globalsŽs  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.pyu—su$Function.get_frees..(u_Function__freesuNoneu_Function__idents_matching(uselfuis_free((u-/opt/alt/python33/lib64/python3.3/symtable.pyu get_frees•s 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&|EeZdZdZdd„ZdS(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_name´suSymbol.get_namecCst|jtj@ƒS(N(uboolu_Symbol__flagsu _symtableuUSE(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_referenced·suSymbol.is_referencedcCst|jt@ƒS(N(uboolu_Symbol__flagsu DEF_PARAM(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_parameterºsuSymbol.is_parametercCst|jttfkƒS(N(uboolu_Symbol__scopeuGLOBAL_IMPLICITuGLOBAL_EXPLICIT(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_global½suSymbol.is_globalcCst|jtkƒS(N(uboolu_Symbol__scopeuGLOBAL_EXPLICIT(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuis_declared_globalÀsuSymbol.is_declared_globalcCst|jt@ƒS(N(uboolu_Symbol__flagsu DEF_BOUND(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuis_localÃsuSymbol.is_localcCst|jtkƒS(N(uboolu_Symbol__scopeuFREE(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyuis_freeÆsuSymbol.is_freecCst|jt@ƒS(N(uboolu_Symbol__flagsu DEF_IMPORT(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_importedÉsuSymbol.is_importedcCst|jt@ƒS(N(uboolu_Symbol__flagsu DEF_LOCAL(uself((u-/opt/alt/python33/lib64/python3.3/symtable.pyu is_assignedÌsuSymbol.is_assignedcCs t|jƒS(u‰Returns 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_namespaceÏs 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_namespacesÜsuSymbol.get_namespacescCs/t|jƒdkr$tdƒ‚n|jdS(u�Returns 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_namespaceàsuSymbol.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.pyuSymbol©s           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& @ )