3
^Q,                 @   s,   d Z ddlZddlmZmZmZ dd ZdS )z;Isolate Python 3.7 version-specific semantic actions here.
    N)
PRECEDENCETABLE_DIRECTmaxintc          -      sT  dt d< dt d< dt d< dt d< dt d< dt d< d	t d
< dt d< dt d< dt d< dt d< d	t d< tjd_d`dadedidkdndsdudxd&d	t d' d ffdyd|dddddddddddddddddd<d	td=ffddddddddddddN* dOdP  fdQdR}|_fdSdT}|_ fdUdV}|_fdWdX}|_fdYdZ}|_fd[d\}|_	d S )N   attribute37   call_exZ
call_ex_kwZcall_ex_kw2Zcall_ex_kw3Zcall_ex_kw4r   Zcall_kwZ	call_kw36d   Zformatted_value1   
if_exp_37a
if_exp_37b
unmap_dict%c and not %cexpr%|%[2]{attr}: %c
%|%[2]{attr}: %c = %c
%|async for %c in %c:
%+%c%-

   store   	for_block   %|async with %c:
%+%c%-   %|async with %c as %c:
%+%c%-,%|async for %c in %c:
%+%c%-%|else:
%+%c%-

   
else_suite%c.%[1]{pattr}%[0]{pattr} import %cIMPORT_NAME_ATTRIMPORT_FROMzawait %p
await_expr%|%c
%c(%p)$ %[3]{pattr.replace("-", " ")} %p %p          %[1]{pattr.replace("-", " ")} %p#%[3]{pattr.replace("-", " ")} %p %p   %p if %c else %c   %|except:
%+%c%-%p if %p else %p%|if %c:
%+%c%-testexpr_ifstmts_jumpl%|import %c as %c
%|from %[2]{pattr} import %c
importlist37%cz%Cz, ! async for %[1]{%c} in %c%[1]{%c}	get_aiter	list_iter if %p%c if not %p%cnot %c or %cnot (%c)not %c%|try:
%+%c%-%c

 %|try:
%+%c%-%|finally:
%+%c%-

returns{**%C}, ***%clistyield from %c)*Zand_notZ
ann_assignZann_assign_initZasync_for_stmtZasync_for_stmt37Zasync_with_stmtZasync_with_as_stmtZasync_forelse_stmtr   Zattributes37r"   Z
await_stmtr   Zcompare_chained1a_37Zcompare_chained1_false_37Zcompare_chained2_false_37Zcompare_chained1b_false_37Zcompare_chained1c_37Zcompare_chained2a_37Zcompare_chained2b_false_37Zcompare_chained2a_false_37Zcompare_chained2c_37Zif_exp37Zexcept_returnr   r   ZifstmtlZimport_as37Zimport_from37Zimportattr37r5   Z	list_aforZ	list_if37Zlist_if37_notZtestfalse_not_orZtestfalse_not_andZ
testfalselZtry_except36Ztryfinally36r   Zunpack_listZ
yield_fromc             S   sL   | j dkrdS |d	 }|dkrH|d dks.t|d d }|dkrHd|_ dS )
zIf we can avoid the outer parenthesis
        of a generator function, set the node key to
        'call_generator' and the caller will do the default
        action on that. Otherwise we do nothing.
        CALL_FUNCTION_1Nr   pos_argr   r   Zgenerator_expZcall_generator)kindAssertionError)Zmapping_keynode	args_noden rO   ]/home/psgendb/BIRCHDEV/python/lib/python3.6/site-packages/uncompyle6/semantics/customize37.pygen_function_parens_adjust   s    
z;customize_for_version37.<locals>.gen_function_parens_adjustc                s(   | d }|dkst d|_ j| d S )Nr   testtrueassert)rK   rJ   default)rL   rR   )selfrO   rP   n_assert_invert   s    z0customize_for_version37.<locals>.n_assert_invertc                s4   | d }|dkst |d dkr&d| _ j|  d S )Nr   r   
LOAD_CONSTZattribute_w_parens)rK   rJ   rT   )rL   r   )rU   rO   rP   n_attribute37   s
    z.customize_for_version37.<locals>.n_attribute37c                s,  j }d_ j| }|d }| }x|dd  D ]}|| }q0W |j}|jdr||j }|d d }|d }	xB| | dkr|t| k r| |	 | |  | |< | |	< |}	|d7 }qpW nb|jdr| d j}
|
d@ }|
d	? d@ }|dkrd
dd|d ddff}nd}j||  | d }|dkr,|d }|dkr\ddt|d ddff}j|| nJt| | dkrd|d || d dddff}nd|d f}j||  |_ j  nb|jdr|dkstj	d|d  rjdddt
d d ff|  |_ j  n
 ||  |_ j|  d S ) Nr	   r   r   ZCALL_FUNCTION_VAR_KWr   kwargZCALL_FUNCTION_VAR      z%c(%P, z, %c(rH   r   Zbuild_list_unpackz*%P)z, *r   z*%c, %P)z*%c)rG   z\dz%c(%p)yield)r\   r   rI   )rH   r   r^   r^   )r   r   )ZprecZ_get_mappingrJ   
startswithlenattrtemplate_engineprunerematchr   rT   )rL   pmappingtablekeyiopnameentryZ	kwarg_posZargs_posZargcnargskwargstemplaterM   )rQ   rU   rO   rP   n_call   sh    











z'customize_for_version37.<locals>.n_callc                s*   | d dkr j | d  n
 j |  d S )Nr   Zcompare_chained37)rT   )rL   )rU   rO   rP   n_compare_chained   s    z2customize_for_version37.<locals>.n_compare_chainedc                sp   t | dkr j|  d S t | d }x"t|ddD ]}| | dkr4P q4W  jdd|d dff|   j  d S )Nr   ROT_TWOz%Cr   z, r^   r^   )r`   rT   rangerb   rc   )rL   rN   rj   )rU   rO   rP   n_importlist37'  s    
z/customize_for_version37.<locals>.n_importlist37c                sJ    j d | d jdkr$ j|  n j| ddd  j d  j  d S )N[r   Zload_closurer   )Z
iter_indexZ
code_index])writerJ   Zlistcomp_closure3Zcomprehension_walk_newerrc   )rL   )rU   rO   rP   n_list_comp_async5  s    

z2customize_for_version37.<locals>.n_list_comp_asyncr   r   r   r   )r   ry   rz   )r   r   )r   r   r   r   r   r   r   r   r   )r   r{   r|   r}   r   r   r   r   r   r   )r   r~   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r    r   r!   )r   r   r   )r#   r   r   r   r   r	   )r$   r   r   r   r&   r   r&   )r%   r   r   r   r&   r   r   r&   )r%   r   r   r   r&   r   r&   )r%   r   r   r   r&   r   r   r&   )r%   r   r   r   r&   rI   rI   r&   )r%   r   r   r   r&   )r)   r   r   r&   )r)   r   r   r&   )r)   r   r   r&   r+   r&   )r*   r   r   r   r   r-   )r,   r   r   r   )r.   r   r   r   r-   r   r-   r'   r   r-   )r/   r   r   r   r   r   r-   r   r   r-   r(   r   r-   )r/   r   r   r   r   r1   r   r2   )r0   r   r   rI   )r3   r   rI   r   r5   )r4   r   r   r    )r6   r   r   r   r   r8   r   r9   )r7   r   r   r   r   r-   )r:   r   r   r   r-   )r;   r   r   r   r   r   r   )r<   r   r   )r=   r   r   r   )r>   r   rI   )r?   r   rI   r   rA   )r@   r   r   r^   r   r^   rC   )rB   r   r   rE   )rD   r   r   r   )rF   r   )
r   r   updater   rV   rX   rp   rq   rt   rx   )rU   versionrV   rX   rp   rq   rt   rx   rO   )rQ   rU   rP   customize_for_version37   s                                        
Qr   )__doc__rd   Zuncompyle6.semantics.constsr   r   r   r   rO   rO   rO   rP   <module>   s   