B
    /`                 @   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 Z+e,e(B Z-G dd de.Z/G dd dZ0G dd dZ1G dd dZ2dd Z3dd  Z4d!d" Z5d#d$ Z6d3d&d'Z7d(d) Z8d*d+ Z9d4d-d.Z:d/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   C/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/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d  | j tkr$td|d k	r^| 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|< 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| |s|d|| j kr2|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  ||d  qW q|t	kr|\}}	}
td| |	|d  |
rt|d d  |
|d  qt
||rd}x\|D ]T}t
|trX|sDt  ||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?   v   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 || d S )N)r2   insert)r   rL   rP   r   r   r   rR      s    zSubPattern.insertc             C   s   | 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 ]$}| \}}t||}t||}qJW || }|| }q"|tkr| \}}|| }|| }q"|tkr|d  \}}|| }|| }q"|t	kr|d  \}}|||d   }|||d   }q"|t
kr,|d }|d }q"|tkrX| jj| \}}|| }|| }q"|tkr|d  \}}|d d k	r|d  \}}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 | _|   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|   dS dS )NTF)rh   ri   )r   rk   r   r   r   match   s    
zTokenizer.matchc             C   s   | j }|   |S )N)rh   ri   )r   thisr   r   r   r%      s    zTokenizer.getc             C   s:   d}x0t |D ]$}| j}||kr"P ||7 }|   qW |S )Nr4   )rangerh   ri   )r   ncharsetresult_cr   r   r   getwhile  s    zTokenizer.getwhilec             C   sh   d}x^| j }|   |d kr>|s*| d| d| t|||krX|sV| 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   || _ |   d S )N)rL   ri   )r   rL   r   r   r   seek   s    zTokenizer.seekr   c             C   s   t || 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 |}|r|S t|}|r0|d tkr0|S y|dd }|dkr|| dt7 }t|dkrx| d| t|tt	|dd  dfS |dkr| j
r|| dt7 }t|d	kr| d| t|tt	|dd  dfS |d
krH| j
rH|| dt7 }t|dkr&| d| t|t	|dd  d}t| t|fS |tkr|| dt7 }t	|dd  d}|dkr| d| t|t|fS |tkrtt|dkr|tkr| d| t|tt|d fS W n tk
r   Y nX | d| t|d S )Nr   r6   rT   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 |}|r|S t|}|r$|S yv|dd }|dkr|| dt7 }t|dkrl| d| t|tt|dd  dfS |dkr| j	r|| dt7 }t|dkr| d| t|tt|dd  dfS |d	kr<| j	r<|| d
t7 }t|dkr| d| t|t|dd  d}t
| t|fS |dkrl|| dt7 }tt|dd  d
fS |tkr^| jtkr||  7 }|d tkr|d tkr| jtkr||  7 }t|dd  d
}|dkr| d| t|t|fS t|dd  }||jk rF||s2| dt||||  t|fS | d| t|d t|dkr|tkr| d| t|tt|d fS W n tk
r   Y nX | d| t|d S )Nr6   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   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   _escapeW  sn    







r   c             C   s@   t t| t | kr| S g }x| D ]}||kr"|| q"W |S )N)r    setr"   )itemsZnewitemsitemr   r   r   _uniq  s    
r   c             C   s`  g }|j }| j}|  }x.|t| |||d | o4|  |dsP qW t|dkr\|d S t|}x^d }	xR|D ]*}
|
szP |	d kr|
d }	qp|
d |	krpP qpW x|D ]
}
|
d= qW | |	 qfP qfW g }x|D ]b}
t|
dkrP |
d \}}|tkr| ||f q|tkr.|d d tk	r.|	| qP qW | tt
|f |S | td |ff |S )Nr6   |r   )r"   rl   rw   _parser    r0   r   r<   NEGATEextendr   r=   )r-   r   verbosenestedr   Zitemsappendsourcematchstart
subpatternprefixr   r   rD   rE   r   r   r   
_parse_sub  sP    






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r|  d }g }|j}| jdkrdd l}|jd|   t|d	 d
 |d}xT| }|d kr8| d|  | |dkrL|rLP n|d dkrft| |}n~|r|dkr| j|krdd l}|jd|dkrdn|dkrdn|dkrdnd|  d f t|d	 d
 t
|
|f}|dr@| }|d kr| d|  | |dkrP|d tkr6|d d }|| |t
|
df P |d dkrjt| |}n>|dkrdd l}|jd|  d  t|d	 d
 t
|
|f}|d t
ks|d t
krd||f }| |t|d t| |d }|d }||k r.d||f }| |t|d t| |t||ff n"|d tkrZ|d d }|| qW t|}|	|dkr|d d t
kr|r|t|d d f n||d  n"|r|dtd f |t|f q&|tkr<|  }|dkrd\}}nJ|dkrdt }}n2|dkr6dt }}n|dkrB| jdkr^|t
|
|f q&dt }}d  }}x| jtkr|| 7 }qrW |d!rx"| jtkr|| 7 }qW n|}|ds|t
|
|f | | q&|rt|}|tkrtd"|rPt|}|tkr"td"||k rP| d#|  | ntd$|f |rd|d%d  }nd }|r|d d tkr| d&|  | t| |d d tkr| d'|  | t| |d d t kr
|d d \}}}}|d kr
|s
|s
|}|dr(t!|||ff|d%< nt"|||ff|d%< q&|d(krT|t#d f q&|d)kr|  d } d*}d }!d}d}|dr(| }|d kr| d+|d,kr|d-r| $d.}!|!% sd/|! }| |t|!d n|d0r| $d1}!|!% sd/|! }| |t|!d |j&|!}"|"d krPd2|! }| |t|!d |'|"sp| d3t|!d |(|"|  |t)|"f q&n2| }|d kr| d+| d4| t|d nf|d5krd }nT|dkrx4| jd kr | d6|  |  | d1krP qW q&n|d7k	rd}#|d-kr| }|d krL| d+|d8krn| d9| t|d d%}#|j*}$|$d kr|j+|_*t,| |||d }|#dk r|$d krd |_*|d1s| d:|  |  |d0kr|t-|#|ff q&|t.|#|ff q&n"|d)k
rv| $d1}%|%% 	rX|j&|%}&|&d k	rd2|% }| |t|%d nyt|%}&|&dk 	rpt/W n4 t/k
	r   d/|% }| |t|%d d Y nX |&	s| d;t|%d |&t0k	rd<|& }| |t|%d |(|&|  t1| |||d }'| d=
r<t1| |||d }(| jd=k
r@| d>nd }(| d1
s`| d:|  |  |t2|&|'|(ff q&n|t3k
s|dkrt4| ||})|)d kr|
r|
rdd l}|jd?| j5d d@ t| j5d@k
rdAnd f t6|d	 d
 |j7t8@ r&|s&t9q&|)\}}d }n| dB| t|d |d k	r~y|:|!}W n< tk
r| }* z| |*j;t|!d d W d d }*~*X Y nX |s|t8@ o|t8@  }+t,| ||+|d }| d1s| d:|  |  |d k	r|<|| |t ||||ff q&|dkr|tt=f q&|dCkr&|tt>f q&tdD|f q&W xht?t|d d d% D ]N},||, \}-}.|-t krP|.\}}}}|d krP|sP|sP|||,|,d < qPW |S )ENz|)#r   r   r
   [r6   z"Possible nested set at position %dr}   )
stacklevel^zunterminated character set]z-&~|zPossible set %s at position %d-
difference&intersection~zsymmetric differenceunionz&Possible set difference at position %drT   zbad character range %s-%s?)r   r6   r   +{}r4   ,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier %rrS   z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 %dr   z/conditional backref with more than two branchesz-Flags not at the start of the expression %r%s   z (truncated)zunknown extension ?$z unsupported special character %r)@r0   r"   r%   rl   r    r   rh   
WHITESPACEr   SPECIAL_CHARSr   rw   warningswarnFutureWarningr$   r   r<   RANGEr   NOT_LITERALrR   r   REPEAT_CHARSrU   r   rx   r   OverflowErrorAssertionErrorATrZ   rY   
MIN_REPEAT
MAX_REPEATANYru   isidentifierr   r,   r.   r\   r   r!   r   ASSERT
ASSERT_NOTr   r#   r   r@   FLAGS_parse_flagsrf   DeprecationWarningr   SRE_FLAG_VERBOSEr   r(   ry   r+   ZAT_BEGINNINGZAT_ENDrn   )/r-   r   r   r   Zfirstr   Zsubpatternappend	sourcegetr   _lenZ_ordrm   rP   herer   Z	setappendr   ZnegateZcode1ZthatZcode2ry   r^   r_   rV   rW   rk   r   r   	add_flags	del_flagsr*   r   r&   r'   dirr   ZcondnamerF   rG   rH   r   errZsub_verboser   rD   rE   r   r   r   r     sP   








 


















































*




r   c             C   s  | j }d}d}|dkrxt| }| jr>|dkrTd}| |n|dkrTd}| |||O }|t@ r~|t@ |kr~d}| || }|d kr| d|d	krP |tkr| rd
nd}| |t|qW |dkr| j|O  _d S |t@ r| dd|dkr| }|d kr| d|tkrJ| r6d
nd}| |t|xt| }|t@ rld}| |||O }| }|d kr| d|dkrP |tkrL| rd
nd}| |t|qLW |dkst	|t@ r| dd||@ r| dd||fS )Nr   r   r   z8bad inline flags: cannot use 'L' flag with a str patternr   z:bad inline flags: cannot use 'u' flag with a bytes patternz9bad inline flags: flags 'a', 'u' and 'L' are incompatiblezmissing -, : or )z)-:zunknown flagr   z,bad inline flags: cannot turn on global flagr6   zmissing flagz8bad inline flags: cannot turn off flags 'a', 'u' and 'L'z	missing :r   z-bad inline flags: cannot turn off global flagz(bad inline flags: flag turned on and off)
r%   r   re   r$   
TYPE_FLAGSisalphar    r   GLOBAL_FLAGSr   )r-   r   rk   r   r   r   flagry   r   r   r   r   K  sr    














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 |_| |_|d t||dd}Y nX t| |j	j|j	_|j
d k	r|j
dkst|d|t@ r|  |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   parse  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}dsd	d
}| ry|| }	W n  tk
r   t	d| Y nX nlyt
|}	|	dk rtW n0 tk
r   d| t|d d Y nX |	tkr4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(d| t||t| |
s|t
|dd  t|d  nRytt| d }W n4 tk
r   |tkrd| t|Y nX || q>|| q>W rЈd t| tsdd D  fS )Nc                sX   | j krd|  |r8d d d =  t| f d  d S )Nzinvalid group reference %dr4   )r!   r$   r"   joinr    )rL   rv   )r!   literalliteralsr1   r   r   r   addgroup  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   FrT   Tz.octal escape value %s outside of range 0-0o377zbad escape %sc             S   s"   g | ]}|d krd n| dqS )Nzlatin-1)encode).0r   r   r   r   
<listcomp>	  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   rA   r;   )r-   r1   ZsgetZlappendr   r   rm   rs   r&   rL   Zisoctalr   )r!   r   r   r1   r   r   parse_template  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 ||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   r   	Exceptionr   r   r0   rc   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sl   






#rH0A	:
  r<
 U