<!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>

]                 @   s  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 d  d l Z d d d d d g Z d d   Z Gd	 d
   d
  Z e   Z Gd d   d e  Z Gd d   d e  Z Gd d   d e  Z Gd d   d e  Z e d k rd  d l Z d  d l Z e e j d    Z e j   Z Wd QRXe e e j  j! e j d   d d  Z" x? e" j#   D]1 Z$ e" j% e$  Z& e' e& e& j(   e& j)    qWd S)    N)USE
DEF_GLOBAL	DEF_LOCAL	DEF_PARAM
DEF_IMPORT	DEF_BOUND	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/python35/lib64/python3.5/symtable.pyr      s    c               @   s4   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   sK   | j  t j k r t | |  S| j  t j k r> t | |  St | |  S)N)typer   TYPE_FUNCTIONr   
TYPE_CLASSr   r   )r   tabler   r   r   r   new   s
    zSymbolTableFactory.newc             C   sN   | | f } |  j  j | d   } | d  k rJ |  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   sm   |  j  t k r d } n d |  j  j } |  j j d k rM d j | |  j  Sd j | |  j j |  j  Sd  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   sO   |  j  j t j k r d S|  j  j t j k r2 d S|  j  j t j k rK d Sd  S)Nmodule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-   r3   )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   s^   |  j  j |  } | d  k rZ |  j j | } |  j |  } t | | |  } |  j  | <| S)N)r/   r&   r-   rG   _SymbolTable__check_childrenr   )r   r3   Zsymflags
namespacesr   r   r   lookup\   s    zSymbolTable.lookupc                s     f d d     j    D S)Nc                s   g  |  ] }   j  |   q Sr   )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                s1   g  |  ]' } | j    k r t |  j   q Sr   )r3   r   r.   )rN   st)r3   r   r   r   rP   h   s   	z0SymbolTable.__check_children.<locals>.<listcomp>)r-   rD   )r   r3   r   )r3   r   r   Z__check_childreng   s    zSymbolTable.__check_childrenc                s     f d d     j  j D S)Nc                s"   g  |  ] } t  |   j   q Sr   )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    r6   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 Sr   )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                sF   |  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                sF   |  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   s4   |  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   sO   |  j  d  k rH i  } x! |  j j D] } d | | j <q" Wt |  |  _  |  j  S)N   )_Class__methodsr-   rD   r3   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 S)r   Nc             C   s6   | |  _  | |  _ | t ?t @|  _ | p, f  |  _ d  S)N)_Symbol__name_Symbol__flagsr   r	   _Symbol__scope_Symbol__namespaces)r   r3   rK   rL   r   r   r   r       s    		zSymbol.__init__c             C   s   d j  |  j  S)Nz<symbol {0!r}>)r4   ri   )r   r   r   r   r6      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 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)r*   r+   r,   r    r6   r=   rm   rn   ro   rp   rq   rc   rr   rs   rt   ru   rx   r   r   r   r   r      s   __main__re   exec)*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   rt   r   r   r   r   <module>   s$   X	L&@)