<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2am                 @   sJ  d dl Z d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZ d dlZdddddgZdd ZG d	d
 d
Ze ZG dd deZG dd deZG dd deZG dd deZedkrFd dlZd dlZeejd  Zej Z W dQ R X ee ej!j"ejd  d dZ#x0e#j$ D ]$Z%e#j&e%Z'e(e'e'j) e'j*  qW dS )    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filenameZcompile_typetop r   -/opt/alt/python36/lib64/python3.6/symtable.pyr      s    c               @   s$   e Zd Zdd Zdd Zdd ZdS )SymbolTableFactoryc             C   s   t j | _d S )N)weakrefWeakValueDictionary_SymbolTableFactory__memo)selfr   r   r   __init__   s    zSymbolTableFactory.__init__c             C   s6   |j tjkrt||S |j tjkr,t||S t||S )N)typer   TYPE_FUNCTIONr   
TYPE_CLASSr   r   )r    tabler   r   r   r   new   s
    

zSymbolTableFactory.newc             C   s8   ||f}| j j|d }|d kr4| j|| }| j |< |S )N)r   getr&   )r    r%   r   keyobjr   r   r   __call__   s
    zSymbolTableFactory.__call__N)__name__
__module____qualname__r!   r&   r*   r   r   r   r   r      s   r   c               @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS ) r   c             C   s   || _ || _i | _d S )N)_table	_filename_symbols)r    Z	raw_tabler   r   r   r   r!   '   s    zSymbolTable.__init__c             C   sN   | j tkrd}nd| j j }| jjdkr6dj|| jS dj|| jj| 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    kindr   r   r   __repr__,   s    
zSymbolTable.__repr__c             C   s:   | j jtjkrdS | j jtjkr$dS | j jtjkr6dS d S )NmoduleZfunctionclass)r.   r"   r   ZTYPE_MODULEr#   r$   )r    r   r   r   get_type9   s    zSymbolTable.get_typec             C   s   | j jS )N)r.   id)r    r   r   r   get_idC   s    zSymbolTable.get_idc             C   s   | j jS )N)r.   r4   )r    r   r   r   get_nameF   s    zSymbolTable.get_namec             C   s   | j jS )N)r.   lineno)r    r   r   r   
get_linenoI   s    zSymbolTable.get_linenoc             C   s   t | jjtjkS )N)boolr.   r"   r   r#   )r    r   r   r   is_optimizedL   s    zSymbolTable.is_optimizedc             C   s   t | jjS )N)r@   r.   nested)r    r   r   r   	is_nestedO   s    zSymbolTable.is_nestedc             C   s   t | jjS )N)r@   r.   children)r    r   r   r   has_childrenR   s    zSymbolTable.has_childrenc             C   s   dS )NFr   )r    r   r   r   has_execU   s    zSymbolTable.has_execc             C   s   | j jj S )N)r.   symbolskeys)r    r   r   r   get_identifiersY   s    zSymbolTable.get_identifiersc             C   sD   | j j|}|d kr@| jj| }| j|}t||| }| j |< |S )N)r0   r'   r.   rG   _SymbolTable__check_childrenr   )r    r4   Zsymflags
namespacesr   r   r   lookup\   s    
zSymbolTable.lookupc                s    fdd j  D S )Nc                s   g | ]} j |qS r   )rM   ).0ident)r    r   r   
<listcomp>e   s    z+SymbolTable.get_symbols.<locals>.<listcomp>)rI   )r    r   )r    r   get_symbolsd   s    zSymbolTable.get_symbolsc                s    fddj jD S )Nc                s"   g | ]}|j  krt|jqS r   )r4   r   r/   )rN   st)r4   r    r   r   rP   h   s   z0SymbolTable.__check_children.<locals>.<listcomp>)r.   rD   )r    r4   r   )r4   r    r   Z__check_childreng   s    zSymbolTable.__check_childrenc                s    fdd j jD S )Nc                s   g | ]}t | jqS r   )r   r/   )rN   rR   )r    r   r   rP   m   s   z,SymbolTable.get_children.<locals>.<listcomp>)r.   rD   )r    r   )r    r   get_childrenl   s    
zSymbolTable.get_childrenN)r+   r,   r-   r!   r7   r:   r<   r=   r?   rA   rC   rE   rF   rI   rM   rQ   rJ   rS   r   r   r   r   r   %   s   
c               @   sD   e Zd ZdZdZdZdZdd Zdd Zdd Z	dd	 Z
d
d ZdS )r   Nc                s   t  fdd j D S )Nc                s    g | ]} j j| r|qS r   )r.   rG   )rN   rO   )r    	test_funcr   r   rP   z   s    z.Function.__idents_matching.<locals>.<listcomp>)tuplerI   )r    rT   r   )r    rT   r   Z__idents_matchingy   s    zFunction.__idents_matchingc             C   s    | j d kr| jdd | _ | j S )Nc             S   s   | t @ S )N)r   )xr   r   r   <lambda>   s    z)Function.get_parameters.<locals>.<lambda>)_Function__params_Function__idents_matching)r    r   r   r   get_parameters}   s    
zFunction.get_parametersc                s0   | j d kr*ttf  fdd}| j|| _ | j S )Nc                s   | t ? t@  kS )N)r	   r
   )rV   )locsr   r   rW      s    z%Function.get_locals.<locals>.<lambda>)_Function__localsr   r   rY   )r    testr   )r[   r   
get_locals   s
    
zFunction.get_localsc                s0   | j d kr*ttf  fdd}| j|| _ | j S )Nc                s   | t ? t@  kS )N)r	   r
   )rV   )globr   r   rW      s    z&Function.get_globals.<locals>.<lambda>)_Function__globalsr   r   rY   )r    r]   r   )r_   r   get_globals   s
    
zFunction.get_globalsc             C   s$   | j d krdd }| j|| _ | j S )Nc             S   s   | t ? t@ tkS )N)r	   r
   r   )rV   r   r   r   rW      s    z$Function.get_frees.<locals>.<lambda>)_Function__freesrY   )r    is_freer   r   r   	get_frees   s    
zFunction.get_frees)r+   r,   r-   rX   r\   rb   r`   rY   rZ   r^   ra   rd   r   r   r   r   r   q   s   c               @   s   e Zd ZdZdd ZdS )r   Nc             C   s:   | j d kr4i }x| jjD ]}d||j< qW t|| _ | j S )N   )_Class__methodsr.   rD   r4   rU   )r    drR   r   r   r   get_methods   s    

zClass.get_methods)r+   r,   r-   rf   rh   r   r   r   r   r      s   c               @   s   e Zd Zd ddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )!r   Nc             C   s(   || _ || _|t? t@ | _|p f | _d S )N)_Symbol__name_Symbol__flagsr	   r
   _Symbol__scope_Symbol__namespaces)r    r4   rK   rL   r   r   r   r!      s    zSymbol.__init__c             C   s   dj | jS )Nz<symbol {0!r}>)r5   ri   )r    r   r   r   r7      s    zSymbol.__repr__c             C   s   | j S )N)ri   )r    r   r   r   r=      s    zSymbol.get_namec             C   s   t | jtj@ S )N)r@   rj   r   r   )r    r   r   r   is_referenced   s    zSymbol.is_referencedc             C   s   t | jt@ S )N)r@   rj   r   )r    r   r   r   is_parameter   s    zSymbol.is_parameterc             C   s   t | jttfkS )N)r@   rk   r   r   )r    r   r   r   	is_global   s    zSymbol.is_globalc             C   s   t | jtkS )N)r@   rk   r   )r    r   r   r   is_declared_global   s    zSymbol.is_declared_globalc             C   s   t | jt@ S )N)r@   rj   r   )r    r   r   r   is_local   s    zSymbol.is_localc             C   s   t | jt@ S )N)r@   rj   r   )r    r   r   r   is_annotated   s    zSymbol.is_annotatedc             C   s   t | jtkS )N)r@   rk   r   )r    r   r   r   rc      s    zSymbol.is_freec             C   s   t | jt@ S )N)r@   rj   r   )r    r   r   r   is_imported   s    zSymbol.is_importedc             C   s   t | jt@ S )N)r@   rj   r   )r    r   r   r   is_assigned   s    zSymbol.is_assignedc             C   s
   t | jS )N)r@   rl   )r    r   r   r   is_namespace   s    zSymbol.is_namespacec             C   s   | j S )N)rl   )r    r   r   r   get_namespaces   s    zSymbol.get_namespacesc             C   s    t | jdkrtd| jd S )Nre   z$name is bound to multiple namespacesr   )lenrl   
ValueError)r    r   r   r   get_namespace   s    zSymbol.get_namespace)N)r+   r,   r-   r!   r7   r=   rm   rn   ro   rp   rq   rr   rc   rs   rt   ru   rv   ry   r   r   r   r   r      s   
__main__re   exec)+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modrI   rO   rM   infoprintrq   ru   r   r   r   r   <module>   s$   @L&C

