
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \†/  ã               @   sŽ   d dl T d dd„ZeeefZdd„ Zd!d
d„Zdd„ Zdd„ Z	d"dd„Z
dd„ Zdd„ Zd#dd„Zdd„ ZG dd„ deƒZG dd„ deƒZdS )$é    )Ú*ú	<unknown>Úexecc             C   s   t | ||tƒS )N)ÚcompileZPyCF_ONLY_AST)ÚsourceÚfilenameÚmode© r	   ú/usr/lib64/python3.6/ast.pyÚparse   s    r   c                s:   t | tƒrt| dd�} t | tƒr&| j} ‡ fdd„‰ ˆ | ƒS )NÚeval)r   c                s†  t | tƒr| jS t | ttfƒr$| jS t | tƒr4| jS t | tƒrNt	t
ˆ | jƒƒS t | tƒrhtt
ˆ | jƒƒS t | tƒr‚tt
ˆ | jƒƒS t | tƒr¬t‡ fdd„t| j| jƒD ƒƒS t | tƒr¼| jS t | tƒoÔt | jttfƒ�r
ˆ | jƒ}t |tƒ�rrt | jtƒ�r|
 S | S nht | tƒ�rrt | jttfƒ�rrˆ | jƒ}ˆ | j ƒ}t |tƒ�rrt |tƒ�rrt | jtƒ�rj|| S || S t!dt"| ƒ ƒ‚d S )Nc             3   s"   | ]\}}ˆ |ƒˆ |ƒfV  qd S )Nr	   )Ú.0ÚkÚv)Ú_convertr	   r
   ú	<genexpr>A   s    z1literal_eval.<locals>._convert.<locals>.<genexpr>zmalformed node or string: )#Ú
isinstanceÚConstantÚvalueÚStrZBytesÚsZNumÚnZTupleÚtupleÚmapZeltsZListÚlistÚSetÚsetZDictÚdictÚzipÚkeysÚvaluesZNameConstantZUnaryOpÚopZUAddZUSubÚoperandÚ
_NUM_TYPESZBinOpZAddZSubÚleftÚrightÚ
ValueErrorÚrepr)Únoder"   r$   r%   )r   r	   r
   r   3   s>    









zliteral_eval.<locals>._convert)r   Ústrr   Z
ExpressionÚbody)Znode_or_stringr	   )r   r
   Úliteral_eval(   s    

"r+   TFc                s2   ‡ ‡‡fdd„‰ t | tƒs*td| jj ƒ‚ˆ | ƒS )Nc                sÂ   t ˆ tƒr”‡fdd„tˆ ƒD ƒ}dˆ jjdjˆr>dd„ |D ƒndd„ |D ƒƒf }ˆrŒˆ jrŒ||rfdphd7 }|dj‡‡ fd	d„ˆ jD ƒƒ7 }|d
 S t ˆ tƒrºddj‡fdd„ˆ D ƒƒ S tˆ ƒS )Nc                s   g | ]\}}|ˆ |ƒf‘qS r	   r	   )r   ÚaÚb)Ú_formatr	   r
   ú
<listcomp>c   s    z)dump.<locals>._format.<locals>.<listcomp>z%s(%sz, c             s   s   | ]}d | V  qdS )z%s=%sNr	   )r   Úfieldr	   r	   r
   r   e   s    z(dump.<locals>._format.<locals>.<genexpr>c             s   s   | ]\}}|V  qd S )Nr	   )r   r,   r-   r	   r	   r
   r   g   s    ú c             3   s$   | ]}d |ˆ t ˆ|ƒƒf V  qdS )z%s=%sN)Úgetattr)r   r,   )r.   r(   r	   r
   r   k   s   ú)z[%s]c             3   s   | ]}ˆ |ƒV  qd S )Nr	   )r   Úx)r.   r	   r
   r   o   s    )	r   ÚASTÚiter_fieldsÚ	__class__Ú__name__ÚjoinÚ_attributesr   r'   )r(   ZfieldsÚrv)r.   Úannotate_fieldsÚinclude_attributes)r(   r
   r.   a   s    


zdump.<locals>._formatzexpected AST, got %r)r   r5   Ú	TypeErrorr7   r8   )r(   r<   r=   r	   )r.   r<   r=   r
   ÚdumpX   s    	
r?   c             C   sB   x<dD ]4}||j kr|| j krt||ƒrt| |t||ƒƒ qW | S )NÚlinenoÚ
col_offset)r@   rA   )r:   ÚhasattrÚsetattrr2   )Únew_nodeZold_nodeÚattrr	   r	   r
   Úcopy_locationv   s
    

rF   c                s   ‡ fdd„‰ ˆ | ddƒ | S )Nc                sf   d| j kr"t| dƒs|| _n| j}d| j krDt| dƒs>|| _n| j}xt| ƒD ]}ˆ |||ƒ qNW d S )Nr@   rA   )r:   rB   r@   rA   Úiter_child_nodes)r(   r@   rA   Úchild)Ú_fixr	   r
   rI   Š   s    



z#fix_missing_locations.<locals>._fixé   r   r	   )r(   r	   )rI   r
   Úfix_missing_locations‚   s    rK   rJ   c             C   s2   x,t | ƒD ] }d|jkr
t|ddƒ| |_q
W | S )Nr@   r   )Úwalkr:   r2   r@   )r(   r   rH   r	   r	   r
   Úincrement_lineno›   s    
rM   c             c   s>   x8| j D ].}y|t| |ƒfV  W q tk
r4   Y qX qW d S )N)Ú_fieldsr2   ÚAttributeError)r(   r0   r	   r	   r
   r6   ¦   s
    r6   c             c   sT   xNt | ƒD ]B\}}t|tƒr$|V  q
t|tƒr
x|D ]}t|tƒr4|V  q4W q
W d S )N)r6   r   r5   r   )r(   Únamer0   Úitemr	   r	   r
   rG   ²   s    



rG   c             C   s–   t | ttttfƒs"td| jj ƒ‚| jo6t | jd t	ƒs<d S | jd j
} t | tƒrZ| j}n"t | tƒrxt | j
tƒrx| j
}nd S |r’dd l}|j|ƒ}|S )Nz%r can't have docstringsr   )r   ZAsyncFunctionDefZFunctionDefZClassDefZModuler>   r7   r8   r*   ZExprr   r   r   r   r)   ÚinspectZcleandoc)r(   ZcleanÚtextrR   r	   r	   r
   Úget_docstringÀ   s    

rT   c             c   s@   ddl m} || gƒ}x$|r:|jƒ } |jt| ƒƒ | V  qW d S )Nr   )Údeque)ÚcollectionsrU   ÚpopleftÚextendrG   )r(   rU   Ztodor	   r	   r
   rL   ×   s    
rL   c               @   s   e Zd Zdd„ Zdd„ ZdS )ÚNodeVisitorc             C   s"   d|j j }t| || jƒ}||ƒS )NZvisit_)r7   r8   r2   Úgeneric_visit)Úselfr(   ÚmethodZvisitorr	   r	   r
   Úvisitù   s    zNodeVisitor.visitc             C   s\   xVt |ƒD ]J\}}t|tƒr@x6|D ]}t|tƒr"| j|ƒ q"W q
t|tƒr
| j|ƒ q
W d S )N)r6   r   r   r5   r]   )r[   r(   r0   r   rQ   r	   r	   r
   rZ   ÿ   s    



zNodeVisitor.generic_visitN)r8   Ú
__module__Ú__qualname__r]   rZ   r	   r	   r	   r
   rY   å   s   rY   c               @   s   e Zd Zdd„ ZdS )ÚNodeTransformerc             C   s¸   x²t |ƒD ]¦\}}t|tƒr|g }xL|D ]D}t|tƒr`| j|ƒ}|d krJq&nt|tƒs`|j|ƒ q&|j|ƒ q&W ||d d …< q
t|tƒr
| j|ƒ}|d kr¤t||ƒ q
t|||ƒ q
W |S )N)	r6   r   r   r5   r]   rX   ÚappendÚdelattrrC   )r[   r(   r0   Z	old_valueZ
new_valuesr   rD   r	   r	   r
   rZ   .  s&    







zNodeTransformer.generic_visitN)r8   r^   r_   rZ   r	   r	   r	   r
   r`   
  s   $r`   N)r   r   )TF)rJ   )T)Z_astr   ÚintÚfloatÚcomplexr#   r+   r?   rF   rK   rM   r6   rG   rT   rL   ÚobjectrY   r`   r	   r	   r	   r
   Ú<module>   s   

0


%