3 \m ã @ sN d Z ddlZddlmZmZmZmZmZmZmZm Z m Z mZmZm Z mZmZ ddlZdddddgZd d„ ZG d d„ dƒZeƒ ZG dd„ deƒZG d d„ deƒZG dd„ deƒZG dd„ deƒZedk�rJddlZddlZeejd ƒ�Zej ƒ Z!W dQ R X ee!ej"j#ejd ƒd dƒZ$x0e$j%ƒ D ]$Z&e$j'e&ƒZ(e)e(e(j*ƒ e(j+ƒ ƒ �q"W dS )z2Interface to the compiler's internal symbol tablesé N)ÚUSEÚ DEF_GLOBALÚ DEF_LOCALÚ DEF_PARAMÚ DEF_IMPORTÚ DEF_BOUNDÚ DEF_ANNOTÚ SCOPE_OFFÚ SCOPE_MASKÚFREEÚLOCALÚGLOBAL_IMPLICITÚGLOBAL_EXPLICITÚCELLÚsymtableÚSymbolTableÚClassÚFunctionÚSymbolc C s t j| ||ƒ}t||ƒS )N)Ú _symtabler Ú_newSymbolTable)ÚcodeÚfilenameZcompile_typeÚtop© r ú /usr/lib64/python3.6/symtable.pyr s c @ s$ e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚSymbolTableFactoryc C s t jƒ | _d S )N)ÚweakrefÚWeakValueDictionaryÚ_SymbolTableFactory__memo)Úselfr r r Ú__init__ s zSymbolTableFactory.__init__c C s6 |j tjkrt||ƒS |j tjkr,t||ƒS t||ƒS )N)Útyper Ú TYPE_FUNCTIONr Ú TYPE_CLASSr r )r Útabler r r r Únew s zSymbolTableFactory.newc C s8 ||f}| j j|d ƒ}|d kr4| j||ƒ }| j |<