Edit File: symtable.cpython-37.pyc
B ����p}�co��������������� ���@���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���Ze� ��Z!W�dQ�R�X�ee!ej"�#ejd��d�d�Z$x0e$�%��D�]$Z&e$�'e&�Z(e)e(e(�*��e(�+�����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��|�||�}t||�S�)N)� _symtabler����_newSymbolTable)�code�filenameZcompile_type�top��r����-/opt/alt/python37/lib64/python3.7/symtable.pyr������s����c���������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�SymbolTableFactoryc�������������C���s���t����|�_d�S�)N)�weakrefZWeakValueDictionary�_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��|d��}|d�kr4|��||��}|�j�|<�|S�)N)r����getr%���)r���r$���r����key�objr���r���r����__call__���s ����zSymbolTableFactory.__call__N)�__name__� __module__�__qualname__r ���r%���r)���r���r���r���r���r������s���r���c���������������@���s����e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��ZdS�) r���c�������������C���s���||�_�||�_i�|�_d�S�)N)�_table� _filename�_symbols)r���Z raw_tabler���r���r���r���r ���'���s����zSymbolTable.__init__c�������������C���sN���|�j�tkrd}nd|�j�j�}|�jjdkr6d�||�j�S�d�||�jj|�j�S�d�S�)N��z%s �globalz<{0}SymbolTable for module {1}>z<{0}SymbolTable for {1} in {2}>)� __class__r���r*���r-����name�formatr.���)r���Zkindr���r���r����__repr__,���s���� zSymbolTable.__repr__c�������������C���sX���|�j�jtjkrdS�|�j�jtjkr$dS�|�j�jtjkr6dS�|�j�jdksTtd�|�j�j���d�S�)N�moduleZfunction�class)������������zunexpected type: {0})r-���r!���r���ZTYPE_MODULEr"���r#����AssertionErrorr4���)r���r���r���r����get_type9���s����zSymbolTable.get_typec�������������C���s���|�j�jS�)N)r-����id)r���r���r���r����get_idC���s����zSymbolTable.get_idc�������������C���s���|�j�jS�)N)r-���r3���)r���r���r���r����get_nameF���s����zSymbolTable.get_namec�������������C���s���|�j�jS�)N)r-����lineno)r���r���r���r���� get_linenoI���s����zSymbolTable.get_linenoc�������������C���s���t�|�jjtjk�S�)N)�boolr-���r!���r���r"���)r���r���r���r����is_optimizedL���s����zSymbolTable.is_optimizedc�������������C���s���t�|�jj�S�)N)rB���r-����nested)r���r���r���r���� is_nestedO���s����zSymbolTable.is_nestedc�������������C���s���t�|�jj�S�)N)rB���r-����children)r���r���r���r����has_childrenR���s����zSymbolTable.has_childrenc�������������C���s���dS�)z7Return true if the scope uses exec. Deprecated method.Fr���)r���r���r���r����has_execU���s����zSymbolTable.has_execc�������������C���s���|�j�j���S�)N)r-����symbols�keys)r���r���r���r����get_identifiersY���s����zSymbolTable.get_identifiersc�������������C���sD���|�j��|�}|d�kr@|�jj|�}|��|�}t|||��}|�j�|<�|S�)N)r/���r&���r-���rI����_SymbolTable__check_childrenr���)r���r3���Zsym�flags� namespacesr���r���r����lookup\���s���� zSymbolTable.lookupc����������������s�����fdd�������D��S�)Nc����������������s���g�|�]}����|��qS�r���)rO���)�.0�ident)r���r���r���� <listcomp>e���s����z+SymbolTable.get_symbols.<locals>.<listcomp>)rK���)r���r���)r���r����get_symbolsd���s����zSymbolTable.get_symbolsc����������������s������fdd��j�jD��S�)Nc����������������s"���g�|�]}|j���krt|�j��qS�r���)r3���r���r.���)rP����st)r3���r���r���r���rR���h���s���z0SymbolTable.__check_children.<locals>.<listcomp>)r-���rF���)r���r3���r���)r3���r���r���Z__check_childreng���s����zSymbolTable.__check_childrenc����������������s�����fdd���j�jD��S�)Nc����������������s���g�|�]}t�|��j��qS�r���)r���r.���)rP���rT���)r���r���r���rR���m���s���z,SymbolTable.get_children.<locals>.<listcomp>)r-���rF���)r���r���)r���r����get_childrenl���s���� zSymbolTable.get_childrenN)r*���r+���r,���r ���r5���r<���r>���r?���rA���rC���rE���rG���rH���rK���rO���rS���rL���rU���r���r���r���r���r���%���s��� c���������������@���sD���e�Zd�ZdZdZdZdZdd��Zdd��Zdd��Z dd ��Z d d��ZdS�)r���Nc����������������s���t����fdd������D���S�)Nc�������������3���s"���|�]}���j�j|��r|V��qd�S�)N)r-���rI���)rP���rQ���)r���� test_funcr���r���� <genexpr>z���s����z-Function.__idents_matching.<locals>.<genexpr>)�tuplerK���)r���rV���r���)r���rV���r���Z__idents_matchingy���s����zFunction.__idents_matchingc�������������C���s ���|�j�d�kr|��dd���|�_�|�j�S�)Nc�������������S���s���|�t�@�S�)N)r���)�xr���r���r����<lambda>��������z)Function.get_parameters.<locals>.<lambda>)�_Function__params�_Function__idents_matching)r���r���r���r����get_parameters}���s���� zFunction.get_parametersc����������������s0���|�j�d�kr*ttf����fdd�}|��|�|�_�|�j�S�)Nc����������������s���|�t�?�t@���kS�)N)r ���r ���)rY���)�locsr���r���rZ�������r[���z%Function.get_locals.<locals>.<lambda>)�_Function__localsr���r���r]���)r����testr���)r_���r���� get_locals����s ���� zFunction.get_localsc����������������s0���|�j�d�kr*ttf����fdd�}|��|�|�_�|�j�S�)Nc����������������s���|�t�?�t@���kS�)N)r ���r ���)rY���)�globr���r���rZ�������r[���z&Function.get_globals.<locals>.<lambda>)�_Function__globalsr ���r���r]���)r���ra���r���)rc���r����get_globals����s ���� zFunction.get_globalsc�������������C���s$���|�j�d�krdd��}|��|�|�_�|�j�S�)Nc�������������S���s���|�t�?�t@�tkS�)N)r ���r ���r���)rY���r���r���r���rZ�������r[���z$Function.get_frees.<locals>.<lambda>)�_Function__freesr]���)r����is_freer���r���r���� get_frees����s���� zFunction.get_frees)r*���r+���r,���r\���r`���rf���rd���r]���r^���rb���re���rh���r���r���r���r���r���q���s���c���������������@���s���e�Zd�ZdZdd��ZdS�)r���Nc�������������C���s:���|�j�d�kr4i�}x|�jjD�]}d||j<�qW�t|�|�_�|�j�S�)Nr8���)�_Class__methodsr-���rF���r3���rX���)r����drT���r���r���r����get_methods����s���� zClass.get_methods)r*���r+���r,���ri���rk���r���r���r���r���r�������s���c���������������@���s����e�Zd�Zd dd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��ZdS�)!r���Nc�������������C���s(���||�_�||�_|t?�t@�|�_|p d|�_d�S�)Nr���)� _Symbol__name�_Symbol__flagsr ���r ����_Symbol__scope�_Symbol__namespaces)r���r3���rM���rN���r���r���r���r �������s����zSymbol.__init__c�������������C���s���d��|�j�S�)Nz<symbol {0!r}>)r4���rl���)r���r���r���r���r5�������s����zSymbol.__repr__c�������������C���s���|�j�S�)N)rl���)r���r���r���r���r?�������s����zSymbol.get_namec�������������C���s���t�|�jtj@��S�)N)rB���rm���r���r���)r���r���r���r���� is_referenced����s����zSymbol.is_referencedc�������������C���s���t�|�jt@��S�)N)rB���rm���r���)r���r���r���r����is_parameter����s����zSymbol.is_parameterc�������������C���s���t�|�jttfk�S�)N)rB���rn���r ���r���)r���r���r���r���� is_global����s����zSymbol.is_globalc�������������C���s���t�|�jtk�S�)N)rB���rn���r���)r���r���r���r����is_declared_global����s����zSymbol.is_declared_globalc�������������C���s���t�|�jttfk�S�)N)rB���rn���r���r���)r���r���r���r����is_local����s����zSymbol.is_localc�������������C���s���t�|�jt@��S�)N)rB���rm���r���)r���r���r���r����is_annotated����s����zSymbol.is_annotatedc�������������C���s���t�|�jtk�S�)N)rB���rn���r���)r���r���r���r���rg�������s����zSymbol.is_freec�������������C���s���t�|�jt@��S�)N)rB���rm���r���)r���r���r���r����is_imported����s����zSymbol.is_importedc�������������C���s���t�|�jt@��S�)N)rB���rm���r���)r���r���r���r����is_assigned����s����zSymbol.is_assignedc�������������C���s ���t�|�j�S�)a���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. )rB���ro���)r���r���r���r����is_namespace����s����zSymbol.is_namespacec�������������C���s���|�j�S�)z.Return a list of namespaces bound to this name)ro���)r���r���r���r����get_namespaces����s����zSymbol.get_namespacesc�������������C���s ���t�|�j�dkrtd��|�jd�S�)z�Returns the single namespace bound to this name. Raises ValueError if the name is bound to multiple namespaces. r8���z$name is bound to multiple namespacesr���)�lenro���� ValueError)r���r���r���r���� get_namespace����s����zSymbol.get_namespace)N)r*���r+���r,���r ���r5���r?���rp���rq���rr���rs���rt���ru���rg���rv���rw���rx���ry���r|���r���r���r���r���r�������s��� �__main__r8����exec),�__doc__r���r���r���r���r���r���r���r���r ���r ���r���r���r ���r���r���r����__all__r���r���r����objectr���r���r���r���r*����os�sys�open�argv�f�read�src�path�split�modrK���rQ���rO����info�printrt���rx���r���r���r���r����<module>���s&���@L& C