o
    í@ËaÆ  ã                   @   s$   d Z ddlmZ G dd„ deƒZdS )z4
Identifiers gathers all identifiers used in a node
é    )ÚNodeAnalysisc                       s@   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zdd	„ Zd
d„ Z‡  Z	S )ÚIdentifiersz.Gather all identifiers used throughout a node.c                    s   t ƒ | _tt| ƒ ¡  d S ©N)ÚsetÚresultÚsuperr   Ú__init__)Úself©Ú	__class__© ú>/usr/lib/python3/dist-packages/pythran/analyses/identifiers.pyr   
   s   zIdentifiers.__init__c                 C   s   | j  |j¡ d S r   )r   ÚaddÚid©r	   Znoder   r   r   Ú
visit_Name   s   zIdentifiers.visit_Namec                 C   s   | j  |j¡ |  |¡ d S r   )r   r   ÚnameÚgeneric_visitr   r   r   r   Úvisit_FunctionDef   s   zIdentifiers.visit_FunctionDefc                 C   s   |   |¡ | j |j¡ d S r   )r   r   r   Úmoduler   r   r   r   Úvisit_ImportFrom   s   
zIdentifiers.visit_ImportFromc                 C   s*   | j  |j¡ |jr| j  |j¡ d S d S r   )r   r   r   Úasnamer   r   r   r   Úvisit_alias   s   ÿzIdentifiers.visit_alias)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   Ú__classcell__r   r   r
   r   r      s    r   N)r   Zpythran.passmanagerr   r   r   r   r   r   Ú<module>   s    