����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
imh-python
/
lib
/
python3.9
/
__pycache__
/
Filename :
symtable.cpython-39.opt-1.pyc
back
Copy
a ����_�f�����������������������@���sX��d�Z�ddlZddlmZmZmZmZmZmZmZm Z m Z mZmZm Z mZmZmZ�ddlZg�d�Zdd��ZG�dd��d�Ze��ZG�d d ��d �ZG�dd��de�ZG�d d��de�ZG�dd��d�Zedk�rTddlZddlZeejd���Ze� ��Z!W�d����n1�s�0����Y��ee!ej"�#ejd��d�d�Z$e$�%��D�]$Z&e$�'e&�Z(e)e(e(�*��e(�+�����q.dS�)z2Interface to the compiler's internal symbol tables�����N)�USE� DEF_GLOBAL�DEF_NONLOCAL� 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/imh-python/lib/python3.9/symtable.pyr������s����r���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�SymbolTableFactoryc�����������������C���s���t����|�_d�S�r���)�weakref�WeakValueDictionary�_SymbolTableFactory__memo��selfr���r���r����__init__���s����zSymbolTableFactory.__init__c�����������������C���s6���|j�tjkrt||�S�|j�tjkr,t||�S�t||�S�r���)�typer���� TYPE_FUNCTIONr���� TYPE_CLASSr���r���)r#����tabler���r���r���r����new���s ���� zSymbolTableFactory.newc�����������������C���s8���||f}|�j��|d��}|d�u�r4|��||��}|�j�|<�|S�r���)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��ZdS�)r���c�����������������C���s���||�_�||�_i�|�_d�S�r���)�_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 r���z<{0}SymbolTable for module {1}>z<{0}SymbolTable for {1} in {2}>)� __class__r���r.���r1����name�formatr2���)r#����kindr���r���r����__repr__,���s���� �zSymbolTable.__repr__c�����������������C���s:���|�j�jtjkrdS�|�j�jtjkr$dS�|�j�jtjkr6dS�d�S�)N�module�function�class)r1���r%���r���ZTYPE_MODULEr&���r'���r"���r���r���r����get_type9���s����zSymbolTable.get_typec�����������������C���s���|�j�jS�r���)r1����idr"���r���r���r����get_idC���s����zSymbolTable.get_idc�����������������C���s���|�j�jS�r���)r1���r6���r"���r���r���r����get_nameF���s����zSymbolTable.get_namec�����������������C���s���|�j�jS�r���)r1����linenor"���r���r���r���� get_linenoI���s����zSymbolTable.get_linenoc�����������������C���s���t�|�jjtjk�S�r���)�boolr1���r%���r���r&���r"���r���r���r����is_optimizedL���s����zSymbolTable.is_optimizedc�����������������C���s���t�|�jj�S�r���)rC���r1����nestedr"���r���r���r���� is_nestedO���s����zSymbolTable.is_nestedc�����������������C���s���t�|�jj�S�r���)rC���r1����childrenr"���r���r���r����has_childrenR���s����zSymbolTable.has_childrenc�����������������C���s���|�j�j���S�r���)r1����symbols�keysr"���r���r���r����get_identifiersU���s����zSymbolTable.get_identifiersc�����������������C���sT���|�j��|�}|d�u�rP|�jj|�}|��|�}|�jjdk}t||||d��}|�j�|<�|S�)Nr�����module_scope)r3���r*���r1���rI����_SymbolTable__check_childrenr6���r���)r#���r6���Zsym�flags� namespacesrM���r���r���r����lookupX���s���� �zSymbolTable.lookupc��������������������s�����fdd�������D��S�)Nc��������������������s���g�|�]}����|��qS�r���)rQ�����.0�identr"���r���r���� <listcomp>c��������z+SymbolTable.get_symbols.<locals>.<listcomp>)rK���r"���r���r"���r����get_symbolsb���s����zSymbolTable.get_symbolsc��������������������s������fdd��j�jD��S�)Nc��������������������s"���g�|�]}|j���krt|�j��qS�r���)r6���r���r2����rS����st�r6���r#���r���r���rU���f���s��� �z0SymbolTable.__check_children.<locals>.<listcomp>�r1���rG���)r#���r6���r���rZ���r���Z__check_childrene���s�����zSymbolTable.__check_childrenc��������������������s�����fdd���j�jD��S�)Nc��������������������s���g�|�]}t�|��j��qS�r���)r���r2���rX���r"���r���r���rU���k���s����z,SymbolTable.get_children.<locals>.<listcomp>r[���r"���r���r"���r����get_childrenj���s���� �zSymbolTable.get_childrenN)r.���r/���r0���r$���r9���r=���r?���r@���rB���rD���rF���rH���rK���rQ���rW���rN���r\���r���r���r���r���r���%���s��� r���c�������������������@���sP���e�Zd�ZdZdZdZdZdZdd��Zdd��Z dd��Z dd ��Zd d��Zdd ��Z dS�)r���Nc��������������������s���t����fdd������D���S�)Nc�����������������3���s"���|�]}���j�j|��r|V��qd�S�r���)r1���rI���rR����r#���Z test_funcr���r���� <genexpr>y���s����z-Function.__idents_matching.<locals>.<genexpr>)�tuplerK���r]���r���r]���r���Z__idents_matchingx���s����zFunction.__idents_matchingc�����������������C���s ���|�j�d�u�r|��dd���|�_�|�j�S�)Nc�����������������S���s���|�t�@�S�r���)r�����xr���r���r����<lambda>~���rV���z)Function.get_parameters.<locals>.<lambda>)�_Function__params�_Function__idents_matchingr"���r���r���r����get_parameters|���s���� zFunction.get_parametersc��������������������s0���|�j�d�u�r*ttf����fdd�}|��|�|�_�|�j�S�)Nc��������������������s���|�t�?�t@���v�S�r����r ���r���r`����Zlocsr���r���rb�������rV���z%Function.get_locals.<locals>.<lambda>)�_Function__localsr ���r���rd����r#����testr���rg���r���� get_locals����s ���� zFunction.get_localsc��������������������s0���|�j�d�u�r*ttf����fdd�}|��|�|�_�|�j�S�)Nc��������������������s���|�t�?�t@���v�S�r���rf���r`�����globr���r���rb�������rV���z&Function.get_globals.<locals>.<lambda>)�_Function__globalsr���r���rd���ri���r���rl���r����get_globals����s ���� zFunction.get_globalsc�����������������C���s ���|�j�d�u�r|��dd���|�_�|�j�S�)Nc�����������������S���s���|�t�@�S�r���)r���r`���r���r���r���rb�������rV���z(Function.get_nonlocals.<locals>.<lambda>)�_Function__nonlocalsrd���r"���r���r���r���� get_nonlocals����s���� zFunction.get_nonlocalsc�����������������C���s$���|�j�d�u�rdd��}|��|�|�_�|�j�S�)Nc�����������������S���s���|�t�?�t@�tkS�r���)r ���r���r���r`���r���r���r���rb�������rV���z$Function.get_frees.<locals>.<lambda>)�_Function__freesrd���)r#����is_freer���r���r���� get_frees����s���� zFunction.get_frees)r.���r/���r0���rc���rh���rr���rn���rp���rd���re���rk���ro���rq���rt���r���r���r���r���r���o���s���r���c�������������������@���s���e�Zd�ZdZdd��ZdS�)r���Nc�����������������C���s6���|�j�d�u�r0i�}|�jjD�]}d||j<�qt|�|�_�|�j�S�)N����)�_Class__methodsr1���rG���r6���r_���)r#����drY���r���r���r����get_methods����s���� zClass.get_methods)r.���r/���r0���rv���rx���r���r���r���r���r�������s���r���c�������������������@���s����e�Zd�Zd$dd�dd�Zdd��Zdd ��Zd d��Zdd ��Zdd��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zd d!��Zd"d#��ZdS�)%r���NFrL���c����������������C���s.���||�_�||�_|t?�t@�|�_|p d|�_||�_d�S�)Nr���)� _Symbol__name�_Symbol__flagsr ���r����_Symbol__scope�_Symbol__namespaces�_Symbol__module_scope)r#���r6���rO���rP���rM���r���r���r���r$�������s ���� zSymbol.__init__c�����������������C���s���d��|�j�S�)Nz<symbol {0!r}>)r7���ry���r"���r���r���r���r9�������s����zSymbol.__repr__c�����������������C���s���|�j�S�r���)ry���r"���r���r���r���r@�������s����zSymbol.get_namec�����������������C���s���t�|�jtj@��S�r���)rC���rz���r���r���r"���r���r���r���� is_referenced����s����zSymbol.is_referencedc�����������������C���s���t�|�jt@��S�r���)rC���rz���r���r"���r���r���r����is_parameter����s����zSymbol.is_parameterc�����������������C���s"���t�|�jttfv�p|�jo|�jt@��S�)z0Return *True* if the sysmbol is global. )rC���r{���r���r���r}���rz���r���r"���r���r���r���� is_global����s�����zSymbol.is_globalc�����������������C���s���t�|�jt@��S�r���)rC���rz���r���r"���r���r���r����is_nonlocal����s����zSymbol.is_nonlocalc�����������������C���s���t�|�jtk�S�r���)rC���r{���r���r"���r���r���r����is_declared_global����s����zSymbol.is_declared_globalc�����������������C���s"���t�|�jttfv�p|�jo|�jt@��S�)z.Return *True* if the symbol is local. )rC���r{���r ���r���r}���rz���r���r"���r���r���r����is_local����s�����zSymbol.is_localc�����������������C���s���t�|�jt@��S�r���)rC���rz���r ���r"���r���r���r����is_annotated����s����zSymbol.is_annotatedc�����������������C���s���t�|�jtk�S�r���)rC���r{���r���r"���r���r���r���rs�������s����zSymbol.is_freec�����������������C���s���t�|�jt@��S�r���)rC���rz���r���r"���r���r���r����is_imported����s����zSymbol.is_importedc�����������������C���s���t�|�jt@��S�r���)rC���rz���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. )rC���r|���r"���r���r���r����is_namespace����s����zSymbol.is_namespacec�����������������C���s���|�j�S�)z.Return a list of namespaces bound to this name)r|���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. ru���z$name is bound to multiple namespacesr���)�lenr|���� ValueErrorr"���r���r���r���� get_namespace����s����zSymbol.get_namespace)N)r.���r/���r0���r$���r9���r@���r~���r���r����r����r����r����r����rs���r����r����r����r����r����r���r���r���r���r�������s ��� r����__main__ru����exec),�__doc__r���r���r���r���r���r���r���r���r ���r ���r���r���r ���r���r���r���r����__all__r���r���r���r���r���r���r���r.����os�sys�open�argv�f�read�src�path�split�modrK���rT���rQ����info�printr����r����r���r���r���r����<module>���s&���DJ, M &