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 :  /usr/lib/python3/dist-packages/pythran/analyses/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/pythran/analyses/__pycache__/cfg.cpython-311.pyc
�

cR�a���X�dZddlmZddlmZddlmZddlZd�Z	Gd�de��Z
dS)	z0 Computes the Control Flow Graph of a function. �)�FunctionAnalysis)�isnum)�DiGraphNc�>�t|��r	|jrdSt|tj��r
|jdkrdSt|tjtjtjf��r	|j	rdSt|tj
��r	|jrdSdS)NT�TrueF)r�value�
isinstance�ast�	Attribute�attr�List�Tuple�Set�elts�Dict�keys)�nodes �6/usr/lib/python3/dist-packages/pythran/analyses/cfg.py�is_true_predicater
s����T�{�{��t�z���t��$��
�&�&��4�9��+>�+>��t��$���3�9�c�g�6�7�7��D�I���t��$���!�!��d�i���t��5�c���eZdZdZe��Z�fd�Zd�Zd�ZexZ	xZ
ZexZxZ
ZexZZd�Zd�ZeZd�Zd�ZexZZd	�Zd
�Zd�Z�xZS)�CFGa
    Computes the Control Flow Graph of a function.

    The processing of a node yields a pair containing
    * the OUT nodes, to be linked with the IN nodes of the successor
    * the RAISE nodes, nodes that stop the control flow (exception/break/...)
    c�|��t��|_tt|�����dS)N)r�result�superr�__init__)�self�	__class__s �rrzCFG.__init__&s0����i�i���
�c�4���!�!�#�#�#�#�#rc��|j�|��|f}|jD]T}|j�|��|D]}|j�||���|�|��\}}�U|j�t
j��|D]'}|j�|t
j���(|fdfS�zOUT = node, RAISES = ()�)r�add_node�body�add_edge�visitr�NIL)rr�currs�n�curr�_s      r�visit_FunctionDefzCFG.visit_FunctionDef*s���	
����T�"�"�"������	%�	%�A��K� � ��#�#�#��
.�
.����$�$�T�1�-�-�-�-��z�z�!�}�}�H�E�1�1�	
����S�W�%�%�%��	0�	0�D��K� � ��s�w�/�/�/�/��w��{�rc��|fdfSr r!�rrs  r�
visit_PasszCFG.visit_Pass;s���w��{�rc��dS)zOUT = (), RAISES = ())r!r!r!r-s  r�visit_ReturnzCFG.visit_ReturnDs���vrc�2�|f}t��}d}|jD]�}|j�|��|D]}|j�||���|�|��\}}|D]_}t
|tj��r||fz
}�#t
|tj	��r|j�||���Y||fz
}�`��|D]}|j�||���|j
r]|j
D]T}|j�|��|D]}|j�||���|�|��\}}�Un|f}t
|tj��rt|j
��r||fS||z|fS||z|fS)zm
        OUT = (node,) + last body statements
        RAISES = body's that are not break or continue
        r!)�tupler#rr"r$r%r	r
�Break�Continue�orelse�Whiler�test)	rrr'�break_currs�raisesr(r)�nraises�nraises	         r�	visit_Forz
CFG.visit_ForHs���
����g�g������	(�	(�A��K� � ��#�#�#��
.�
.����$�$�T�1�-�-�-�-�!�Z�Z��]�]�N�E�7�!�
(�
(���f�c�i�0�0�(��F�9�,�K�K�����5�5�(��K�(�(���6�6�6�6��v�i�'�F�F�

(��	-�	-�D��K� � ��t�,�,�,�,��;�	��[�
/�
/����$�$�Q�'�'�'�!�2�2�D��K�(�(��q�1�1�1�1�!%���A�����w�w�	
/��E�E��d�C�I�&�&�	3� ���+�+�
3�"�F�*�*�"�U�*�F�2�2��U�"�F�*�*rc���|f}d}|jD]Y}|j�|��|D]}|j�||���|�|��\}}||z
}�Z|}|}|f}|jD]Y}|j�|��|D]}|j�||���|�|��\}}||z}�Zt
|j��r||fS||z|fS)z^
        OUT = true branch U false branch
        RAISES = true branch U false branch
        r!)r#rr"r$r%r5rr7)	rrr'r9r(r)r:�tcurrs�traisess	         r�visit_IfzCFG.visit_Ifws0��
�������	�	�A��K� � ��#�#�#��
.�
.����$�$�T�1�-�-�-�-�!�Z�Z��]�]�N�E�7��g��F�F����������	'�	'�A��K� � ��#�#�#��
.�
.����$�$�T�1�-�-�-�-�!�Z�Z��]�]�N�E�7��w�&�F�F��T�Y�'�'�	"��6�>�!���~�v�%�%rc��d|ffS)zOUT = (), RAISES = (node)r!r!r-s  r�visit_RaisezCFG.visit_Raise�s���D�7�{�rc��|f|ffS)zOUT = RAISES = (node)r!r-s  r�visit_AssertzCFG.visit_Assert�s���w����rc��|f}d}|jD]}|j�|���|jD]�}|j�|��|D]}|j�||���|�|��\}}|D]H}t
|tj��r&|jD]}|j�||����B||fz
}�I��|jD]$}|�|��\}	}||	z
}||z
}�%||fS)z�
        OUT = body's U handler's
        RAISES = handler's
        this equation is not has good has it could be...
        but we need type information to be more accurate
        r!)	�handlersrr"r#r$r%r	r
�Raise)
rrr'r9�handlerr(r)r:r;�ncurrss
          r�	visit_Tryz
CFG.visit_Try�sN��������}�	*�	*�G��K� � ��)�)�)�)���
	(�
	(�A��K� � ��#�#�#��
.�
.����$�$�T�1�-�-�-�-�!�Z�Z��]�]�N�E�7�!�
(�
(���f�c�i�0�0�(�#'�=�>�>����,�,�V�W�=�=�=�=�>��v�i�'�F�F�
(��}�	�	�G�"�j�j��1�1�O�F�G��V�O�E��g��F�F��f�}�rc���|f}d}|jD]Y}|j�|��|D]}|j�||���|�|��\}}||z
}�Z||fS)zOUT = body's, RAISES = body'sr!)r#rr"r$r%)rrr'r9r(r)r:s       r�visit_ExceptHandlerzCFG.visit_ExceptHandler�s����������	�	�A��K� � ��#�#�#��
.�
.����$�$�T�1�-�-�-�-�!�Z�Z��]�]�N�E�7��g��F�F��f�}�r)�__name__�
__module__�__qualname__�__doc__�objectr&rr+r.�visit_Assign�visit_AugAssign�visit_Import�
visit_Expr�visit_Print�visit_ImportFrom�visit_Yield�visit_Deleter0r<�visit_Whiler@rB�visit_Break�visit_ContinuerDrJrL�
__classcell__)rs@rrrs����������&�(�(�C�$�$�$�$�$����"���
5?�>�L�>�?�\�2<�<�J�<��/�!+�+�K�,����++�++�++�Z�K�&�&�&�@���$/�.�K�.� � � ����8
�
�
�
�
�
�
rr)rP�pythran.passmanagerr�
pythran.utilsr�
pythran.graphr�gastr
rrr!rr�<module>rbs���6�6�0�0�0�0�0�0�������!�!�!�!�!�!�����
�
�
�p�p�p�p�p�
�p�p�p�p�pr

Youez - 2016 - github.com/yon3zu
LinuXploit