Your IP : 3.12.163.120


Current Path : /lib64/python3.6/__pycache__/
Upload File :
Current File : //lib64/python3.6/__pycache__/sre_compile.cpython-36.pyc

3


 \�K�@s�dZddlZddlZddlTejeks.td��eehZe	e
ehZe
ehZeehZdWZd&d'�eD�Zd(d)�ZdXd*d+�Zd,d-�Zejd.Zd/e>d/Zd0d1d2Zeefd3d4�Zd5d6�Zd7d8�Zd9d:�Z d;d<�Z!d=d>�Z"d?d@�Z#dAdB�Z$dCdD�Z%dYdEdF�Z&dS)ZzInternal support module for sre�N)�*zSRE module mismatch�i�1�s����E����������������������������������a�����cs.i|]&}|D]�t�fdd�|D����qqS)c3s|]}�|kr|VqdS)N�)�.0�j)�ir$�#/usr/lib64/python3.6/sre_compile.py�	<genexpr>=sz<dictcomp>.<genexpr>)�tuple)r%�tr$)r'r(�
<dictcomp>=sr,cCsr|j}t}t}t}t}t}|t@rD|t@rD|t@rD|t	@rDt
}	nd}	�x"|D�]\}
}|
|k�r|t@�rtj||�}|	r�||	kr�|t
�||�}
|d�|
tkr�|t�x&|f|	|D]}|t�||�q�W|t�||�|
||
<n|t|
�||�n||
�||�qP|
tk�r�|t@�rF|t|
�|fdd�}n||
�d}||�}
|d�t|||||	�||�|
||
<qP|
tk�r�|t@�r�|t�n|t�qP|
|k�r�|t@�r�td|
f��n�t|��rR|
tk	�rR|
tk�r�|t�n|t�||�}
|d�||d�||d�t||d|�|t �||�|
||
<nl|t�||�}
|d�||d�||d�t||d|�||�|
||
<|
tk�r�|t!�n|t"�qP|
t#k�r.|\}}}}|�r�|t$�||dd�t||||B|@�|�rj|t$�||ddd�qP|
|k�rB||
�qP|
|k�r�||
�||�}
|d�|ddk�r||d�n*|dj%�\}}||k�r�td��||�t||d|�|t �||�|
||
<qP|
t&k�r||
�||�}
|d�t|||�|t �||�|
||
<qP|
t'k�r�||
�|t(@�r@t)j*||�}|t@�rXt+j*||�}n"|t@�rz|t	@�rzt,j*||�}||�qP|
t-k�r&||
�g}|j}xZ|dD]N}||�}
|d�t|||�|t.�|||��|d�||�|
||
<�q�W|t�x|D]}||�|||<�q
WqP|
t/k�rt||
�|t@�rLt0|}n|t@�rj|t	@�rjt1|}||�qP|
t2k�r�|t@�r�|t|
�n||
�||d�qP|
t3k�r\||
�||dd�||�}|d�t||d|�|d�rF|t.�||�}|d�||�|d||<t||d|�||�|||<n||�|d||<qPtd|
f��qPWdS)	NrcSstj||�S)N)�_sre�getlower)�literal�flagsr$r$r(�fixupfsz_compile.<locals>.fixupz*internal: unsupported template operator %r��z(look-behind requires fixed-width patternz%internal: unsupported operand type %r)4�append�len�_LITERAL_CODES�_REPEATING_CODES�_SUCCESS_CODES�
_ASSERT_CODES�SRE_FLAG_IGNORECASE�SRE_FLAG_LOCALE�SRE_FLAG_UNICODE�SRE_FLAG_ASCII�_ignorecase_fixesr-r.�	IN_IGNORE�NOT_LITERAL�NEGATE�LITERAL�FAILURE�	OP_IGNORE�IN�_compile_charset�ANY�SRE_FLAG_DOTALL�ANY_ALL�SRE_FLAG_TEMPLATE�error�_simple�REPEAT�
MAX_REPEAT�
REPEAT_ONE�MIN_REPEAT_ONE�_compile�SUCCESS�	MAX_UNTIL�	MIN_UNTIL�
SUBPATTERN�MARK�getwidth�CALL�AT�SRE_FLAG_MULTILINE�AT_MULTILINE�get�	AT_LOCALE�
AT_UNICODE�BRANCH�JUMP�CATEGORY�	CH_LOCALE�
CH_UNICODE�GROUPREF�GROUPREF_EXISTS)�code�patternr0�emit�_len�
LITERAL_CODES�REPEATING_CODES�
SUCCESS_CODES�ASSERT_CODES�fixes�op�av�lo�skip�kr1�group�	add_flags�	del_flags�p�hi�tail�
tailappend�skipyes�skipnor$r$r(rQ@s.







































rQcCs�|j}x�t|||�D]�\}}||�|tkr.q|tkr@||�q|tksP|tkrj||d�||d�q|tkr~|j|�q|tkr�|j|�q|t	kr�|t
@r�|t|�q�|t@r�|t
@r�|t|�q�||�qtd|f��qW|t�dS)Nrr2z%internal: unsupported set operator %r)r4�_optimize_charsetrArB�RANGE�RANGE_IGNORE�CHARSET�extend�
BIGCHARSETrar;rbr<r=rcrKrC)�charsetr0rfr1rnrhrorpr$r$r(rF�s,

rFcCsdg}g}td�}�xt|D�]j\}}�x^�y|tkrx|rn||�}d||<|rv||krvx"||D]}	d||	<q\Wnd||<n�|tkr�t|d|dd�}
|r�t||
�}
|r�|r�xN|
D].}d||<||kr�x||D]}	d||	<q�Wq�Wnx>|
D]}d||<q�Wn(|tk�r|j||f�n|j||f�WnTtk
�r|t|�dk�rV|dd7}w&|�rj|tk�rjt	}|j||f�YnXPq&WqWg}d}
xj|j
d|
�}|dk�r�Pt|�dk�r�d}P|j
d|�}
|
dk�r�|j|t|�f�P|j||
f��q�W|dk	�rvxF|D]>\}}
|
|dk�r2|jt|f�n|jt||
dff��qW||7}|�snt|�t|�k�rr|S|St|�dk�r�t|�}|jt|f�||7}|St
|�}i}td�}d}t�}xftddd�D]V}|||d�}||k�r||||d<n$|||d<||<|d7}||7}�q�Wt|�}|gt|�|dd�<|jt|f�||7}|S)N�r2r�i�r3i)�	bytearrayrBr~�range�maprAr4�
IndexErrorr5r�find�
_mk_bitmapr��bytes�_bytes_to_codesr�)r�r1rn�outry�charmaprorprqrs�rr'�runs�qrw�data�comps�mapping�block�chunkr$r$r(r}�s�









r}�r2�0�1�cs8|jt�ddd�����fdd�tt��d��D�S)Nr2cs"g|]}��|�|�d��qS)r3r$)r%r')�	_CODEBITS�_int�sr$r(�
<listcomp>zsz_mk_bitmap.<locals>.<listcomp>r���)�	translate�_BITS_TRANSr�r5)�bitsr�r�r$)r�r�r�r(r�xsr�cCs@t|�jd�}|jtjkst�t|�|jt|�ks8t�|j�S)N�I)�
memoryview�cast�itemsizer-�CODESIZE�AssertionErrorr5�tolist)�b�ar$r$r(r�}sr�cCs<|dj�\}}||ko"dkno:|dddtkS)Nr3r2r)rWrU)rprqrxr$r$r(rL�srLcCsvdgt|�}xbtdt|��D]P}||d}x>||||kr`|dkrRd||<P||d}q0W|d||<qW|S)aj
    Generate an overlap table for the following prefix.
    An overlap table is a table of the same size as the prefix which
    informs about the potential self-overlap for each index in the prefix:
    - if overlap[i] == 0, prefix[i:] can't overlap prefix[0:...]
    - if overlap[i] == k with 0 < k <= i, prefix[i-k+1:i+1] overlaps with
      prefix[0:k]
    rr2)r5r�)�prefix�tabler'�idxr$r$r(�_generate_overlap_table�s	r�c
Cs�g}|j}d}x�|jD]�\}}|tkr0||�q|tkr�|\}}}}	|t@rNPt|	�\}
}}|dkr�|dk	rvt|�}n|dk	r�t|�|}|j|
�|s�PqPqW||dfS||dfS)NTF)r4r�rBrUr:�_get_literal_prefixr5r�)
rgr��prefixappend�prefix_skiprorprtrurvrw�prefix1�prefix_skip1�got_allr$r$r(r��s,



r�cCs"g}|j}|j�r|jd\}}|tkr�|\}}}}|r�|t@r�|d\}}|tkrd|||f�nR|tkr�g}	|	j}
x�|dD].}|s�P|d\}}|tkr�|
||f�q�Pq�W|	}nf|tk�rg}	|	j}
xP|dD]0}|s�P|d\}}|tk�r|
||f�q�Pq�W|	}n|tk�r|}|S)Nrr2)r4r�rUr:rBr_rE)rgr��
charsetappendrorprtrurvrw�c�cappendr$r$r(�_get_charset_prefix�sF


r�cCsZ|j�\}}|tkrt}|dkr8|jtdd||g�dSg}d}g}|t@sft|�\}}}|sft|�}|j}	|	t�t|�}
|	d�d}|r�t	}|dkr�|r�|t
B}n|r�|tB}|	|�|tkr�|	|�n|	t�|dt�}|	t|t��|�r4|	t|��|dk�rt|�}|	|�|j|�|jt
|��n|�rFt|||�t|�|
||
<dS)Nr�)rW�MAXCODEr��INFOr:r�r�r4r5�SRE_INFO_PREFIX�SRE_INFO_LITERAL�SRE_INFO_CHARSET�minr�rF)rfrgr0rqrxr�r�r�r�rhrr�maskr$r$r(�
_compile_info�sP



r�cCst|ttf�S)N)�
isinstance�strr�)�objr$r$r(�isstringsr�cCs8|jj|B}g}t|||�t||j|�|jt�|S)N)rgr0r�rQr�r4rR)rwr0rfr$r$r(�_codes
r�cCs�t|�r|}tj||�}nd}t||�}|jj}dg|jj}x|j�D]\}}|||<qHWtj	|||jj
B||jjd||�S)Nr2)r��	sre_parse�parser�rg�	groupdict�groups�itemsr-�compiler0)rwr0rgrf�
groupindex�
indexgrouprsr'r$r$r(r�-s

r��rr�rr�rr�r	r
r�rr
�rr�rr�rr�rr�rr�rr�rr�rr�rr�r r!�r"r#)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)NN)r)'�__doc__r-r��
sre_constants�MAGICr�rBr@r6rM�
MIN_REPEATrNr7rRrCr8�ASSERT�
ASSERT_NOTr9�
_equivalencesr>rQrFr}r�r�r�r��intr�r�rLr�r�r�r�r�r�r�r$r$r$r(�<module>sV
 
{
)9

?>