403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/pythran/optimizations/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/pythran/optimizations/__pycache__/forward_substitution.cpython-311.pyc
�

cR�a]����dZddlmZmZmZddlmZmZmZmZm	Z	ddl
mZddlm
Z
ddlmZddlZ	ddlmZn#e$rddlmZmZd	�ZYnwxYwGd
�dej��ZGd�d
e��ZdS)z`
Replace variable that can be lazy evaluated and used only once by their full
computation code.
�)�LazynessAnalysis�UseDefChains�DefUseChains)�Literals�	Ancestors�Identifiers�CFG�
IsAssigned)�TransformationN)�defaultdict)�isfinite��isinf�isnanc�B�t|��ot|��S�Nr)�xs �L/usr/lib/python3/dist-packages/pythran/optimizations/forward_substitution.pyr
r
s����8�8�|�,�E�!�H�H��,�c��eZdZd�Zd�ZdS)�Removerc��||_dSr)�nodes)�selfrs  r�__init__zRemover.__init__s
����
�
�
rc���||jvrA|j|��fd�|jD��|_|jr|Stj��S|S)Nc���g|]}|�v�|��	S�r)�.0�tgt�to_prunes  �r�
<listcomp>z(Remover.visit_Assign.<locals>.<listcomp>s#���O�O�O�C�3�h�;N�;N�C�;N�;N�;Nr)r�targets�ast�Pass)r�noder!s  @r�visit_AssignzRemover.visit_AssignsY����4�:����z�$�'�H�O�O�O�O�4�<�O�O�O�D�L��|�
"����x�z�z�!��rN)�__name__�
__module__�__qualname__rr'rrrrrs2�������������rrc�.��eZdZdZ�fd�Zd�Zd�Z�xZS)�ForwardSubstitutiona{
    Replace variable that can be computed later.

    >>> import gast as ast
    >>> from pythran import passmanager, backend
    >>> pm = passmanager.PassManager("test")

    >>> node = ast.parse("def foo(): a = [2, 3]; builtins.print(a)")
    >>> _, node = pm.apply(ForwardSubstitution, node)
    >>> print(pm.dump(backend.Python, node))
    def foo():
        pass
        builtins.print([2, 3])

    >>> node = ast.parse("def foo(): a = 2; builtins.print(a + a)")
    >>> _, node = pm.apply(ForwardSubstitution, node)
    >>> print(pm.dump(backend.Python, node))
    def foo():
        a = 2
        builtins.print((2 + 2))

    >>> node = ast.parse("def foo():\n a=b=2\n while a: a -= 1\n return b")
    >>> _, node = pm.apply(ForwardSubstitution, node)
    >>> print(pm.dump(backend.Python, node))
    def foo():
        a = 2
        while a:
            a -= 1
        return 2
    c���tt|���ttt
ttt��d|_	dS)z* Satisfy dependencies on others analyses. N)
�superr,rrrrrr	r�	to_remove)r�	__class__s �rrzForwardSubstitution.__init__HsE���
�!�4�(�(�1�1�2B�2>�2>�2;�25�2:�	<�	<�	<�����rc���tt��|_|jj||_|�|��t
|j���|��|Sr)r�listr/�def_use_chains�locals�
generic_visitr�visit)rr&s  r�visit_FunctionDefz%ForwardSubstitution.visit_FunctionDefRs\��$�T�*�*����)�0��6���	
���4� � � ������%�%�d�+�+�+��rc�<�
��t|jtj��s|S||jvr1	ddlm�
t�
fd�|j|D����sJ�|S|j|}t|��dkr|S|d}|j
�t�tj��s|St�fd�|j
D����dkr|S�|jvot|j�j��}||j�jdkz}|s|S|j�d}t|tj���rX|j}�|jvrPd|_t|�����dkr"|j|����|S|St|j��dkr�|�t4|��}t7t9d�|j|D������}t;j|j||��}	|	D]M}
|
dd�D]>}d	�|�t@|��D��}|�!|��sn�?�Ln)d|_|j|����|S|S)
NTr)�OMPDirectivec3�8�K�|]}t|���V��dSr)�
isinstance)r�pr9s  �r�	<genexpr>z1ForwardSubstitution.visit_Name.<locals>.<genexpr>dsA�����:�:� �&�a��6�6�:�:�:�:�:�:r�c3�V�K�|]#}|����jk�dV��$dS)r>N)�name�id)r�d�dnodes  �rr=z1ForwardSubstitution.visit_Name.<locals>.<genexpr>ss7�����>�>�Q������U�X�)=�)=�q�)=�)=�)=�)=�>�>r���c�F�g|]}t|tj���|��Sr)r;r$�stmt)r�ss  rr"z2ForwardSubstitution.visit_Name.<locals>.<listcomp>�s8��+=�+=�+=��$.�q�#�(�$;�$;�+=�1�+=�+=�+=rc��h|]	}|j��
Sr)rA)r�ns  r�	<setcomp>z1ForwardSubstitution.visit_Name.<locals>.<setcomp>�s0��(P�(P�(P�,-�)*��(P�(P�(Pr)"r;�ctxr$�Load�use_def_chains�pythran.openmpr9�any�	ancestors�lenr&�Name�sumr4�literalsr
�lazyness_analysisrA�Assign�value�update�usersr/�appendr#�gatherr�next�reversed�graph�all_simple_paths�cfgr
�
isdisjoint)rr&�defuses�defuse�fwd�parentrW�ids�	node_stmt�	all_paths�pathrF�assigned_idsr9rCs             @@r�
visit_NamezForwardSubstitution.visit_Name\s
�����$�(�C�H�-�-�	��K��t�*�*�*�
:�7�7�7�7�7�7��:�:�:�:�$(�N�4�$8�:�:�:�:�:�:�:�:��K��%�d�+���w�<�<�1����K���������%���*�*�	��K��>�>�>�>�$�+�>�>�>�>�>��B�B��K���
�%�:���.�u�x�8�9�9�	��t�%�e�h�/�1�4�4���	��K����&�r�*���f�c�j�)�)�	!��L�E���
�%�%�"����v�|�|�~�~�&�&�!�+�+��N�6�*�1�1�%�8�8�8� �L�!�L��V�^�$�$��)�)��k�k�+�u�5�5�� ��+=�+=�d�n�T�6J�+=�+=�+=�">�">�?�?�	�!�2�4�8�V�Y�O�O�	�%�!�!�D� $�Q�r�T�
�!�!��(P�(P�15���Z��1N�1N�(P�(P�(P��"�~�~�l�;�;�"�!�E�"�!��E�"&�D�K��N�6�*�1�1�%�8�8�8� �L��r)r(r)r*�__doc__rr7rk�
__classcell__)r0s@rr,r,'sg���������>��������A�A�A�A�A�A�Arr,)rl�pythran.analysesrrrrrrr	r
�pythran.passmanagerr�
pythran.graphr^�collectionsr�gastr$�mathr
�ImportErrorrr�NodeTransformerrr,rrr�<module>rvsm����
J�I�I�I�I�I�I�I�I�I�N�N�N�N�N�N�N�N�N�N�N�N�N�N�.�.�.�.�.�.�������#�#�#�#�#�#�����-����������-�-�-�!�!�!�!�!�!�!�!�-�-�-�-�-�-����
�
�
�
�
�c�!�
�
�
� v�v�v�v�v�.�v�v�v�v�vs�9�A�A

Youez - 2016 - github.com/yon3zu
LinuXploit