403Webshell
Server IP : 93.86.61.54  /  Your IP : 216.73.216.156
Web Server : Apache/2.4.62 (Ubuntu)
System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64
User : www-data ( 33)
PHP Version : 8.4.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/pythran/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/pythran/__pycache__/openmp.cpython-310.pyc
o

�@�a�@s�dZddlmZddlmZddlmZddlmZddl	m
Z
ddl	ZddlZdd�eD�Z
hd	�Zhd
�Zhd�ZGdd
�d
e
�ZGdd�de�ZdS)z�
This modules contains OpenMP-related stuff.
    * OMPDirective is used to represent OpenMP annotations in the AST
    * GatherOMPData turns OpenMP-like string annotations into metadata
�)�TransformationN)�PYTYPE_TO_CTYPE_TABLE)�isstr)�ASTcCsi|]}|j|�qS�)�__name__)�.0�trr�0/usr/lib/python3/dist-packages/pythran/openmp.py�
<dictcomp>�r>)�if�for�omp�none�read�simd�task�final�flush�write�atomic�cancel�copyin�master�nowait�shared�single�untied�update�barrier�capture�declare�default�ordered�private�section�collapse�critical�parallel�schedule�sections�taskwait�	mergeable�	reduction�	taskyield�copyprivate�initializer�lastprivate�num_threads�firstprivate�
threadprivate>�omp_in�omp_out�omp_init�omp_orig�omp_priv>r"r#r(r*r.cs eZdZdZ�fdd�Z�ZS)�OMPDirectiveaXTurn a string into a context-dependent metadata.
    >>> o = OMPDirective("omp for private(a,b) shared(c)")
    >>> o.s
    'omp for private({},{}) shared({})'
    >>> [ type(dep) for dep in o.deps ]
    [<class 'gast.gast.Name'>, <class 'gast.gast.Name'>, <class 'gast.gast.Name'>]
    >>> [ dep.id for dep in o.deps ]
    ['a', 'b', 'c']
    csLtt����|sdSg�_g�_g�_�fdd�}||d��_d�_dS)Ncs�d}d}d}d}d}d}}|t|�kr�t�d||d��}|r�|�d�}	|t|	�7}|	tvr8|tt|	7}n�|sH|r@|	tvsH|dkrc|	tvrc||	7}|	tv}||	dkO}||	dkO}||	dkO}nmd	}
�j	�
t�|	t�
�dd��|r~�j�
�j	d
�|r��j�
�j	d
�||
7}nB||dkr�|d7}|d7}|d7}n/||d
kr�|d8}|d7}|d
7}|dkr�d}d}}n||dvr�d}|||7}|d7}|t|�ks|S)z1A simple contextual "parser" for an OpenMP string�rFz^([a-zA-Z_]\w*)Nr"r%rz{}����(��)z,:)�len�re�match�group�	typenamesr�declare_keywords�keywords�reserved_contex�deps�append�ast�Name�Load�private_deps�shared_deps)�s�out�	par_count�
curr_index�in_reserved_context�
in_declare�	in_shared�
in_private�m�word�v��selfrr
�tokenizedsd
��

��(z'OMPDirective.__init__.<locals>.tokenizer)rIrOrN)�superr;�__init__rIrNrOrP�_fields)r\�argsr]��	__class__r[r
r_[s3
zOMPDirective.__init__)r�
__module__�__qualname__�__doc__r_�
__classcell__rrrbr
r;Osr;c@s@eZdZdZdZdZdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dS)�
GatherOMPDatazEWalks node and collect string comments looking for OpenMP directives.)�FunctionDef�Return�Delete�Assign�	AugAssign�Print�For�While�Raise�	TryExcept�
TryFinally�Assert�Import�
ImportFrom�Pass�Break)�body�orelse�	finalbodycCs4t�|�tjD]}t|d||j�qt�|_dS)N�visit_)rr_rh�
statements�setattr�attach_data�list�current)r\rPrrr
r_�s

zGatherOMPData.__init__cCst|�o	|j�d�S)Nzomp )r�value�
startswith�r\�noderrr
�isompdirective�szGatherOMPData.isompdirectivecCs.|�|j�r|j�|jj�dS|�|�|S�N)r�r�r�rJrr�rrr
�
visit_Expr�s

zGatherOMPData.visit_ExprcCsH|�|j�r|�t�|j��|�t�t�dd�|j|j��S|�	|�S)Nr?)
r��test�visitrK�Expr�If�Constantryrzrr�rrr
�visit_If�s�
zGatherOMPData.visit_Ifcs(|jr|jD]}t|�}t�||�qt�|_t�|�D]"\}}|tjvr>|r>t	|dtj
�r>|�|dj�r>|�
t���q|�|�t�|t�}dd�t�|�D�}|�tj�}|r�|r�d�dd�|D���d}	t�fdd�|	D��r�t�|t�t�t�d	d
�|gg�}|D]}
t�||
�q�|S)zcGeneric method called for visit_XXXX() with XXXX in
        GatherOMPData.statements list

        r=cSsh|]\}}|�qSrr)r�n�_rrr
�	<setcomp>�rz,GatherOMPData.attach_data.<locals>.<setcomp>r<css�|]}|jVqdSr�)rP)r�drrr
�	<genexpr>�s�z,GatherOMPData.attach_data.<locals>.<genexpr>)r)rr&c3s�|]}|�vVqdSr�r)rrP��
sdirectiverr
r��s�r?N)r�r;�metadata�addr�rK�iter_fieldsrh�statement_lists�
isinstancer�r�r�rJrw�
generic_visit�get�
isdisjoint�join�any�clearr�r�)r\r��curr�md�
field_name�field�
directives�field_names�has_no_scope�scoping�	directiverr�r
r�s6

���
zGatherOMPData.attach_dataN)rrdrerfr}r�r_r�r�r�rrrrr
rh�srh)rf�pythran.passmanagerr�pythran.metadatar��pythran.types.conversionr�
pythran.utilsr�gastrrKrBrErGrFrHr;rhrrrr
�<module>s,	M

Youez - 2016 - github.com/yon3zu
LinuXploit