3
4^^                 @   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*+?{
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   p/home/aldo/Documentos/tesis/tesis/device auto/pruebas pulsar/pruebaclonado/envClonado/lib/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   r2   r3   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listr3   printstrINBRANCH	enumeratedumpGROUPREF_EXISTS
isinstancer1   )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)reprr3   )r   r   r   r   __repr__   s    zSubPattern.__repr__c             C   s
   t | jS )N)r!   r3   )r   r   r   r   __len__   s    zSubPattern.__len__c             C   s   | j |= d S )N)r3   )r   indexr   r   r   __delitem__   s    zSubPattern.__delitem__c             C   s&   t |trt| j| j| S | j| S )N)rB   slicer1   r2   r3   )r   rM   r   r   r   __getitem__   s    
zSubPattern.__getitem__c             C   s   || j |< d S )N)r3   )r   rM   coder   r   r   __setitem__   s    zSubPattern.__setitem__c             C   s   | j j|| d S )N)r3   insert)r   rM   rQ   r   r   r   rS      s    zSubPattern.insertc             C   s   | j j| d S )N)r3   r#   )r   rQ   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   r7      )r4   r3   r>   	MAXREPEATr*   minmaxCALL
SUBPATTERN_REPEATCODES
_UNITCODESGROUPREFr2   r   rA   SUCCESS)	r   lohirE   rF   r   jlhr   r   r   r*      sZ    












zSubPattern.getwidth)N)r   )r   r   r   r    r@   rK   rL   rN   rP   rR   rS   r#   r*   r   r   r   r   r1   m   s   

(r1   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   )rB   r<   istextstringdecoded_stringrM   next_Tokenizer__next)r   rg   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   r7   zbad escape (end of pattern))rM   rh   
IndexErrorri   r%   rg   r!   )r   rM   charr   r   r   Z__next   s    
zTokenizer.__nextc             C   s   || j kr| j  dS dS )NTF)ri   rj   )r   rl   r   r   r   match   s    
zTokenizer.matchc             C   s   | j }| j  |S )N)ri   rj   )r   thisr   r   r   r&      s    zTokenizer.getc             C   s:   d}x0t |D ]$}| j}||kr"P ||7 }| j  qW |S )Nr5   )rangeri   rj   )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 )Nr5   zmissing group namezmissing %s, unterminated namer7   )ri   rj   r%   r!   )r   Z
terminatorrr   rt   r   r   r   getuntil
  s    


zTokenizer.getuntilc             C   s   | j t| jpd S )Nr5   )rM   r!   ri   )r   r   r   r   pos  s    zTokenizer.posc             C   s   | j t| jpd S )Nr5   )rM   r!   ri   )r   r   r   r   tell  s    zTokenizer.tellc             C   s   || _ | j  d S )N)rM   rj   )r   rM   r   r   r   seek  s    zTokenizer.seekr   c             C   s   t || j| j | S )N)r%   rg   rx   )r   msgoffsetr   r   r   r%   #  s    zTokenizer.errorN)r   )r   r   r   r    rj   rm   r&   ru   rv   r0   rw   rx   ry   r%   r   r   r   r   rd      s   		rd   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   r7   rT   r      zincomplete escape %s   r      U   
      z.octal escape value %s outside of range 0-0o377zbad escape %s)ESCAPESr&   
CATEGORIESr=   ru   	HEXDIGITSr!   r%   LITERALintrf   chr	OCTDIGITSDIGITS
ValueErrorASCIILETTERSord)r.   escaperQ   rt   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 )Nr7   rT   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   ru   r   r!   r%   r   r   rf   r   r   r   ri   r"   r-   r/   r]   r   r   r   )r.   r   staterQ   rt   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 )Nr7   |r   c             S   s   g | ]}|d  qS )r   r   ).0itemr   r   r   
<listcomp>  s    z_parse_sub.<locals>.<listcomp>)	r#   rm   rx   _parser!   r1   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 )Nr7   r   z/conditional backref with more than two branches)r   rm   ri   r%   r1   r#   rA   )r.   r   rG   r   r   rH   rI   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   [r7   ^zunterminated character set]-zbad character range %s-%srT   ?r   +{}r5   ,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   r7   rU   rU   rU   rU   );r1   r#   r&   rm   r!   r   ri   
WHITESPACEr   SPECIAL_CHARSr   rx   NEGATEr%   r   r=   RANGENOT_LITERALREPEAT_CHARSrV   r   ry   r   OverflowErrorAssertionErrorATr[   
MIN_REPEAT
MAX_REPEATANYrv   isidentifierr   r-   r/   r]   r   r"   r   ASSERT
ASSERT_NOTr   r$   FLAGS_parse_flagswarningswarnrg   DeprecationWarningr   SRE_FLAG_VERBOSEr   r)   rz   r   r,   rZ   ZAT_BEGINNINGZAT_END))r.   r   r   r   Zfirstr   r   	sourcegetr   _lenZ_ordrn   rQ   heresetZ	setappendr   Zcode1ZthatZcode2rz   r_   r`   rW   rX   rl   r   r   r'   rG   	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 flagr7   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   rl   r   r   r   rz   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)rB   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)rd   r   r   r<   r   r   r   ry   r   r2   ri   r   r%   SRE_FLAG_DEBUGr@   )r<   r   r2   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 %dr5   )r"   r%   r#   joinr!   )rM   rw   )r"   literalliteralsr2   r   r   r   addgroupu  s    

z parse_template.<locals>.addgroupr   r   r7   gr5   r   z	missing <r   zunknown group name %rzbad character in group name %rzinvalid group reference %dr   r   r   FrT   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>)rd   r&   r#   
groupindexrm   r%   rv   r   KeyErrorrk   r   r   r!   r$   ri   r   r   r   r   r   r   r   r   r   rB   r<   )r.   r2   ZsgetZlappendr   r   rn   rt   r'   rM   Zisoctalr   r   )r"   r   r   r2   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   rg   rk   r%   r   )templaterm   r   emptyr"   r   rM   r   r   r   r   expand_template  s    r   )F)r   N)<__doc__sre_constantsr   r   	frozensetr   r   r   r   r   r   r   r[   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   r1   rd   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sj   






#qH0A3
  <,
 W