3
(Z                 @   s  d Z ddlT dZdZedZedZedZedZed	Z	ee
ehZeeeeeeehZeed
feedfeedfeedfeedfeedfeedfeedfdZeefeefeefeeefgfeeefgfeeefgfeeefgfeeefgfeeefgfee fd
Z!e"e#e$e%e&e'e(e)dZ*e'e#B e)B e+B e(B Z,G dd de-Z.G dd dZ/G dd dZ0G dd dZ1dd Z2dd  Z3d!d" Z4d#d$ Z5d3d&d'Z6d(d) Z7d*d+ Z8d4d-d.Z9d/d0 Z:d1d2 Z;d,S )5zInternal support module for sre    )*z.\[{()*+?^$|z*+?{Z
0123456789Z01234567Z0123456789abcdefABCDEFZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz 	

	\)z\az\bz\fz\nz\rz\tz\vz\\)
z\Az\bz\Bz\dz\Dz\sz\Sz\wz\Wz\Z)iLmsxatuc               @   s   e Zd ZdS )VerboseN)__name__
__module____qualname__ r   r   :/var/www/html/vignarogno/venv/lib64/python3.6/sre_parse.pyr   G   s   r   c               @   sB   e Zd Zdd Zedd ZdddZdd	 Zd
d Zdd Z	dS )Patternc             C   s   d| _ i | _d g| _d | _d S )Nr   )flags	groupdictgroupwidthslookbehindgroups)selfr   r   r   __init__L   s    zPattern.__init__c             C   s
   t | jS )N)lenr   )r   r   r   r   groupsQ   s    zPattern.groupsNc             C   sb   | j }| jjd  | j tkr$td|d k	r^| jj|d }|d k	rTtd|||f || j|< |S )Nztoo many groupsz7redefinition of group name %r as group %d; was group %d)r!   r   append	MAXGROUPSerrorr   get)r   namegidZogidr   r   r   	opengroupT   s    

zPattern.opengroupc             C   s   |j  | j|< d S )N)getwidthr   )r   r'   pr   r   r   
closegroup`   s    zPattern.closegroupc             C   s   || j k o| j| d k	S )N)r!   r   )r   r'   r   r   r   
checkgroupb   s    zPattern.checkgroupc             C   s6   | j d k	r2| j|s|jd|| j kr2|jdd S )Nzcannot refer to an open groupz?cannot refer to group defined in the same lookbehind subpattern)r   r,   r$   )r   r'   sourcer   r   r   checklookbehindgroupe   s
    



zPattern.checklookbehindgroup)N)
r   r   r   r   propertyr!   r(   r+   r,   r.   r   r   r   r   r   J   s   
r   c               @   s`   e Zd ZdddZdddZdd Zd	d
 Zdd Zdd Zdd Z	dd Z
dd Zdd ZdS )
SubPatternNc             C   s"   || _ |d krg }|| _d | _d S )N)patterndatawidth)r   r1   r2   r   r   r   r   o   s
    zSubPattern.__init__r   c             C   s  d}t tf}x| jD ]\}}t|d t| dd |tkrtt  x*|D ]"\}}t|d d t| | qLW q|tkrt  x:t|d D ]*\}}|rt|d d  |j|d  qW q|t	kr|\}}	}
td| |	j|d  |
rt|d d  |
j|d  qt
||rd}x\|D ]T}t
|trX|sDt  |j|d  d}n"|sjtd	dd t|dd d}q(W |st  qtd| qW d S )
NTz   )end   ZORZELSEF )tuplelistr2   printstrINBRANCH	enumeratedumpGROUPREF_EXISTS
isinstancer0   )r   levelnlZseqtypesopavr   r   	condgroupitem_yesitem_nor   r   r   r?   u   sH     




zSubPattern.dumpc             C   s
   t | jS )N)reprr2   )r   r   r   r   __repr__   s    zSubPattern.__repr__c             C   s
   t | jS )N)r    r2   )r   r   r   r   __len__   s    zSubPattern.__len__c             C   s   | j |= d S )N)r2   )r   indexr   r   r   __delitem__   s    zSubPattern.__delitem__c             C   s&   t |trt| j| j| S | j| S )N)rA   slicer0   r1   r2   )r   rL   r   r   r   __getitem__   s    
zSubPattern.__getitem__c             C   s   || j |< d S )N)r2   )r   rL   coder   r   r   __setitem__   s    zSubPattern.__setitem__c             C   s   | j j|| d S )N)r2   insert)r   rL   rP   r   r   r   rR      s    zSubPattern.insertc             C   s   | j j| d S )N)r2   r"   )r   rP   r   r   r   r"      s    zSubPattern.appendc       	      C   s  | j d k	r| j S d }}x| jD ]\}}|tkrtd }d}x0|d D ]$}|j \}}t||}t||}qJW || }|| }q"|tkr|j \}}|| }|| }q"|tkr|d j \}}|| }|| }q"|t	kr|d j \}}|||d   }|||d   }q"|t
kr,|d }|d }q"|tkrX| jj| \}}|| }|| }q"|tkr|d j \}}|d d k	r|d j \}}t||}t||}nd}|| }|| }q"|tkr"P q"W t|td t|tf| _ | j S )Nr   r6      )r3   r2   r=   	MAXREPEATr)   minmaxCALL
SUBPATTERN_REPEATCODES
_UNITCODESGROUPREFr1   r   r@   SUCCESS)	r   lohirD   rE   r   jlhr   r   r   r)      sZ    












zSubPattern.getwidth)N)r   )r   r   r   r   r?   rJ   rK   rM   rO   rQ   rR   r"   r)   r   r   r   r   r0   m   s   

(r0   c               @   sb   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Ze	dd Z
dd Zdd ZdddZdS )	Tokenizerc             C   s@   t |t| _|| _| js"t|d}|| _d| _d | _| j  d S )Nlatin1r   )rA   r;   istextstringdecoded_stringrL   next_Tokenizer__next)r   rf   r   r   r   r      s    
zTokenizer.__init__c             C   s   | j }y| j| }W n tk
r.   d | _d S X |dkr|d7 }y|| j| 7 }W n. tk
r   td| jt| jd d Y nX |d | _ || _d S )Nr
   r6   zbad escape (end of pattern))rL   rg   
IndexErrorrh   r$   rf   r    )r   rL   charr   r   r   Z__next   s    
zTokenizer.__nextc             C   s   || j kr| j  dS dS )NTF)rh   ri   )r   rk   r   r   r   match   s    
zTokenizer.matchc             C   s   | j }| j  |S )N)rh   ri   )r   thisr   r   r   r%      s    zTokenizer.getc             C   s:   d}x0t |D ]$}| j}||kr"P ||7 }| j  qW |S )Nr4   )rangerh   ri   )r   ncharsetresult_cr   r   r   getwhile  s    zTokenizer.getwhilec             C   sh   d}x^| j }| j  |d kr>|s*| jd| jd| t|||krX|sV| jddP ||7 }qW |S )Nr4   zmissing group namezmissing %s, unterminated namer6   )rh   ri   r$   r    )r   Z
terminatorrq   rs   r   r   r   getuntil
  s    


zTokenizer.getuntilc             C   s   | j t| jpd S )Nr4   )rL   r    rh   )r   r   r   r   pos  s    zTokenizer.posc             C   s   | j t| jpd S )Nr4   )rL   r    rh   )r   r   r   r   tell  s    zTokenizer.tellc             C   s   || _ | j  d S )N)rL   ri   )r   rL   r   r   r   seek  s    zTokenizer.seekr   c             C   s   t || j| j | S )N)r$   rf   rw   )r   msgoffsetr   r   r   r$   #  s    zTokenizer.errorN)r   )r   r   r   r   ri   rl   r%   rt   ru   r/   rv   rw   rx   r$   r   r   r   r   rc      s   		rc   c             C   s  t j|}|r|S tj|}|r0|d tkr0|S y|dd }|dkr|| jdt7 }t|dkrx| jd| t|tt	|dd  dfS |dkr| j
r|| jdt7 }t|d	kr| jd| t|tt	|dd  dfS |d
ko| j
rF|| jdt7 }t|dkr$| jd| t|t	|dd  d}t| t|fS |tkr|| jdt7 }t	|dd  d}|dkr| jd| t|t|fS |tkrtt|dkr|tkr| jd| t|tt|d fS W n tk
r   Y nX | jd| t|d S )Nr   r6   rS   r      zincomplete escape %s   r      U   
      z.octal escape value %s outside of range 0-0o377zbad escape %s)ESCAPESr%   
CATEGORIESr<   rt   	HEXDIGITSr    r$   LITERALintre   chr	OCTDIGITSDIGITS
ValueErrorASCIILETTERSord)r-   escaperP   rs   r   r   r   _class_escape&  sR    





r   c             C   s  t j|}|r|S tj|}|r$|S yt|dd }|dkr|| jdt7 }t|dkrl| jd| t|tt|dd  dfS |dkr| j	r|| jdt7 }t|dkr| jd| t|tt|dd  dfS |d	ko| j	r:|| jd
t7 }t|dkr| jd| t|t|dd  d}t
| t|fS |dkrj|| jdt7 }tt|dd  d
fS |tkr\| jtkr|| j 7 }|d tkr|d tkr| jtkr|| j 7 }t|dd  d
}|dkr| jd| t|t|fS t|dd  }||jk rD|j|s0| jdt||j||  t|fS | jd| t|d t|dkr|tkr| jd| t|tt|d fS W n tk
r   Y nX | jd| t|d S )Nr6   rS   r   r{   zincomplete escape %sr|   r   r}   r~   r   r   0r   z.octal escape value %s outside of range 0-0o377zcannot refer to an open groupzinvalid group reference %dzbad escape %s)r   r%   r   rt   r   r    r$   r   r   re   r   r   r   rh   r!   r,   r.   r\   r   r   r   )r-   r   staterP   rs   groupr   r   r   _escapeV  sn    







r   c             C   s$  g }|j }| j}| j }x.|t| |||d | o4|  |dsP qW t|dkr\|d S t|}|j }	x\d }
xP|D ]*}|sP |
d kr|d }
qv|d |
krvP qvW x|D ]
}|d= qW |	|
 qlP qlW xD|D ]"}t|dks|d d tk	rP qW |	tdd |D f |S |j td |ff |S )Nr6   |r   c             S   s   g | ]}|d  qS )r   r   ).0itemr   r   r   
<listcomp>  s    z_parse_sub.<locals>.<listcomp>)	r"   rl   rw   _parser    r0   r   r<   r=   )r-   r   verbosenesteditemsZitemsappendsourcematchstart
subpatternsubpatternappendprefixr   r   r   r   
_parse_sub  sD    




r   c             C   sh   t | |||d }| jdrDt | |||d }| jdkrH| jdnd }t|}|jt|||ff |S )Nr6   r   z/conditional backref with more than two branches)r   rl   rh   r$   r0   r"   r@   )r-   r   rF   r   r   rG   rH   r   r   r   r   _parse_sub_cond  s    

r   Fc       )      C   s  t |}|j}| j}| j}t}	t}

x| j}|d kr6P |dkr@P |  |r||tkrTq&|dkr|x| }|d kst|dkr^P q^W q&|d dkrt| ||}|| q&|t	kr|t
|
|f q&|dkr4| j d }g }|j}|dr|td f |d d  }x| }|d kr | jd	| j | |d
kr8||kr8P n&|d dkrRt| |}nt
|
|f}|dr| }|d kr| jd	| j | |d
kr|d tkr|d d }|| |t
|
df P |d dkrt| |}nt
|
|f}|d t
ks|d t
kr4d||f }| j|t|d t| |d }|d }||k rvd||f }| j|t|d t| |t||ff n"|d tkr|d d }||  qW |	|dkr|d d t
kr||d  nT|	|dkr&|d d tkr&|d d t
kr&|t|d d f n|t|f q&|tkrb| j }|dkr\d7\}}nJ|dkrtdt }}n2|dkrdt }}n|dkr| jdkr|t
|
|f q&dt }}d }}x| jtkr|| 7 }qW |drx"| jtkr
|| 7 }qW n|}|ds8|t
|
|f | j| q&|rXt|}|tkrXtd|rt|}|tkrxtd||k r| jd| j | ntd|f |r|d8d  }nd }| s|	|dkr|d d tkr| jd| j | t| |d d tkr0| jd| j | t| |drNt|||ff|d9< nt|||ff|d:< q&|dkrz|td f q&|dk
r| j d }d}d }d }d}d}|d	r| }|d kr| jd|dkr|dr| jd }|j sd!| }| j|t|d n|d"r| jd#}|j sHd!| }| j|t|d |j j|} | d krzd$| }| j|t|d |j!| s| jd%t|d |j"| |  |t#| f q&n2| }|d kr| jd| jd&| t|d n|d'krd }n|dkrDx4| jd kr*| jd(| j | | d#kr
P q
W q&n|d)kr0d}!|dkr| }|d krv| jd|d*kr| jd+| t|d d;}!|j$}"|"d kr|j%|_$t&| |||d }#|!dk r|"d krd |_$|d#s| jd,| j | |d"kr|t'|!|#ff q&|t(|!|#ff q&n|dk	r$| jd#}$d }|$j r|j j|$}|d k	rd$|$ }| j|t|$d nyt|$}|dk rt)W n4 t)k
r   d!|$ }| j|t|$d d Y nX |s| jd-t|$d |t*k	rd.| }| j|t|$d |j"||  n|t+k	s8|dk	rt,| ||}%|%d k	r| 	s\|	rdd l-}&|&j.d/| j/d d0 t| j/d0k	rd1ndf t0|d2 d3 |j1t2@ r&| r&t3q&|%\}}d }n| jd4| t|d |d k	
r0y|j4|}W n< tk

r. }' z| j|'j5t|d d W Y d d }'~'X nX |
rLt6| ||||d }#n,|
s\|t2@ 
od|t2@  }(t&| ||(|d }#| jd#
s| jd,| j | |d k	
r|j7||# |t8||||#ff q&|dk
r|tt9f q&|d5k
r|jtt:f q&td6|f q&W |S )<Nz|)#r   r   r
   [r6   ^zunterminated character set]-zbad character range %s-%srS   ?r   +{}r4   ,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier %rznothing to repeatzmultiple repeat.(Tzunexpected end of patternP<>zbad character in group name %r=)zunknown group name %rzcannot refer to an open groupzunknown extension ?P:zmissing ), unterminated commentz=!<z=!zunknown extension ?<z"missing ), unterminated subpatternzbad group numberzinvalid group reference %dz-Flags not at the start of the expression %r%s   z (truncated)r}   )
stacklevelzunknown extension ?$z unsupported special character %r)r   r6   rT   rT   rT   rT   );r0   r"   r%   rl   r    r   rh   
WHITESPACEr   SPECIAL_CHARSr   rw   NEGATEr$   r   r<   RANGENOT_LITERALREPEAT_CHARSrU   r   rx   r   OverflowErrorAssertionErrorATrZ   
MIN_REPEAT
MAX_REPEATANYru   isidentifierr   r,   r.   r\   r   r!   r   ASSERT
ASSERT_NOTr   r#   FLAGS_parse_flagswarningswarnrf   DeprecationWarningr   SRE_FLAG_VERBOSEr   r(   ry   r   r+   rY   ZAT_BEGINNINGZAT_END))r-   r   r   r   Zfirstr   r   	sourcegetr   _lenZ_ordrm   rP   heresetZ	setappendr   Zcode1ZthatZcode2ry   r^   r_   rV   rW   rk   r   r   r&   rF   	add_flags	del_flagsr'   dirr   r*   Zcondnamer   r   errZsub_verboser   r   r   r     s   






 2











(






































*



r   c             C   s  | j }d}d}|dkrrxZ|t| O }| }|d kr<| jd|dkrFP |tkr|j rZdnd}| j|t|qW |dkr| j|O  _d S |t@ r| jdd|dkrL| }|d kr| jd	|tkr|j rdnd	}| j|t|x`|t| O }| }|d kr| jd
|dkrP |tkr|j r4dnd
}| j|t|qW |dksZt|t@ rp| jdd||@ r| jdd||fS )Nr   r   zmissing -, : or )z)-:zunknown flagr   z,bad inline flags: cannot turn on global flagr6   zmissing flagz	missing :r   z-bad inline flags: cannot turn off global flagz(bad inline flags: flag turned on and off)r%   r   r$   isalphar    r   GLOBAL_FLAGSr   )r-   r   rk   r   r   r   ry   r   r   r   r     sT    







r   c             C   sj   t | tr>|t@ rtd|t@ s,|tO }qf|t@ rftdn(|t@ rNtd|t@ rf|t@ rftd|S )Nz)cannot use LOCALE flag with a str patternz(ASCII and UNICODE flags are incompatiblez,cannot use UNICODE flag with a bytes patternz'ASCII and LOCALE flags are incompatible)rA   r;   SRE_FLAG_LOCALEr   SRE_FLAG_ASCIISRE_FLAG_UNICODE)srcr   r   r   r   	fix_flags<  s    


r   Nc             C   s   t | }|d krt }||_| |_yt|||t@ d}W nB tk
rz   t }|tB |_| |_|jd t||dd}Y nX t| |j	j|j	_|j
d k	r|j
dkst|jd|t@ r|j  |S )Nr   Tr   zunbalanced parenthesis)rc   r   r   r;   r   r   r   rx   r   r1   rh   r   r$   SRE_FLAG_DEBUGr?   )r;   r   r1   r-   r*   r   r   r   parseL  s(    



r   c                s  t | j}g  g g j} fdd}j}x| }|d krNP |d dkr|d }|dkrJd}jdsjd	jd
}|j ry|| }	W n  tk
r   t	d| Y nX nlyt
|}	|	dk rtW n0 tk
r   jd| t|d d Y nX |	tkr4jd|	 t|d ||	t|d  q|dkrjtkr|| 7 }jtkr|| 7 }|tt
|dd  dd@  q|tkrZd}
jtkr4|| 7 }|tkr4|d tkr4jtkr4|| 7 }d}
t
|dd  d}|dkr(jd| t||t| |
s|t
|dd  t|d  nZytt| d }W n< tk
r   |tkrdd l}|jd| tdd Y nX || q>|| q>W r؈jdj t| tsdd D  fS )Nc                sX   | j krjd|  |r8jdj d d =  jt| f jd  d S )Nzinvalid group reference %dr4   )r!   r$   r"   joinr    )rL   rv   )r!   literalliteralsr1   r   r   r   addgroupu  s    

z parse_template.<locals>.addgroupr   r
   r6   gr4   r   z	missing <r   zunknown group name %rzbad character in group name %rzinvalid group reference %dr   r   r   FrS   Tz.octal escape value %s outside of range 0-0o377zbad escape %sr{   )r   c             S   s"   g | ]}|d krd n|j dqS )Nzlatin-1)encode)r   r   r   r   r   r     s    z"parse_template.<locals>.<listcomp>)rc   r%   r"   
groupindexrl   r$   ru   r   KeyErrorrj   r   r   r    r#   rh   r   r   r   r   r   r   r   r   r   rA   r;   )r-   r1   ZsgetZlappendr   r   rm   rs   r&   rL   Zisoctalr   r   )r!   r   r   r1   r   r   parse_templatel  s    









"



 


r   c             C   sz   |j }|jd d }| \}}|d d  }y&x |D ]\}}||pB|||< q0W W n  tk
rn   td| Y nX |j|S )Nr   zinvalid group reference %d)r   rf   rj   r$   r   )templaterl   r   emptyr!   r   rL   r   r   r   r   expand_template  s    r   )F)r   N)<__doc__sre_constantsr   r   	frozensetr   r   r   r   r   r   r   rZ   r   r   r<   r   r   CATEGORYr[   r   r   r   ZAT_BEGINNING_STRINGZAT_BOUNDARYZAT_NON_BOUNDARYZCATEGORY_DIGITZCATEGORY_NOT_DIGITZCATEGORY_SPACEZCATEGORY_NOT_SPACEZCATEGORY_WORDZCATEGORY_NOT_WORDZAT_END_STRINGr   SRE_FLAG_IGNORECASEr   SRE_FLAG_MULTILINESRE_FLAG_DOTALLr   r   SRE_FLAG_TEMPLATEr   r   r   r   	Exceptionr   r   r0   rc   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sj   






#qH0A3
  <,
 W