o
    deç  ã                   @   s,   d dl Z d dlZdd„ ZeeƒZee ƒZdS )é    Nc                    s   G ‡ fdd„dt jƒ}|S )Nc                       s    e Zd Zdd„ Z‡ fdd„ZdS )z)_generate_translators.<locals>.Translatorc                    s6   t |tƒr‡ fdd„|D ƒS t |tjƒrˆ  |¡S |S )Nc                    s   g | ]}ˆ   |¡‘qS © )Ú_visit)Ú.0Ún©Úselfr   ú9D:\Projects\ConvertPro\env\Lib\site-packages\gast/astn.pyÚ
<listcomp>   s    zD_generate_translators.<locals>.Translator._visit.<locals>.<listcomp>)Ú
isinstanceÚlistÚastÚASTÚvisit)r   Únoder   r   r   r   	   s
   

z0_generate_translators.<locals>.Translator._visitc              	      sx   t |ƒj}tˆ |ƒsd S tˆ |ƒƒ }|jD ]}t|||  t||ƒ¡ƒ qt|dƒD ]}t||ƒr9t||t||ƒƒ q)|S )NÚ_attributes)ÚtypeÚ__name__ÚhasattrÚgetattrÚ_fieldsÚsetattrr   )r   r   ÚclsÚnew_nodeÚfieldÚattr©Útor   r   Úgeneric_visit   s   



€z7_generate_translators.<locals>.Translator.generic_visitN)r   Ú
__module__Ú__qualname__r   r   r   r   r   r   Ú
Translator   s    r    )r   ÚNodeTransformer)r   r    r   r   r   Ú_generate_translators   s   r"   )r   Zgastr"   Z	AstToGAstZ	GAstToAstr   r   r   r   Ú<module>   s
    