o
    ta&                     @   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\a\bz\fz\nz\rz\tz\vz\\)
z\Ar   z\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   $/root/Python-3.10.2/Lib/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 )Statec                 C   s   d| _ i | _d g| _d | _d S )Nr   )flags	groupdictgroupwidthslookbehindgroupsselfr   r   r   __init__L   s   
zState.__init__c                 C   
   t | jS N)lenr   r   r   r   r   groupsQ   s   
zState.groupsNc                 C   sb   | j }| jd  | j tkrtd|d ur/| j|d }|d ur*t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State.opengroupc                 C   s   |  | j|< d S r#   )getwidthr   )r    r+   pr   r   r   
closegroup`      zState.closegroupc                 C   s   || j k o| j| d uS r#   )r%   r   )r    r+   r   r   r   
checkgroupb   s   zState.checkgroupc                 C   s:   | j d ur| |s|d|| j kr|dd S d S )Ncannot refer to an open groupz?cannot refer to group defined in the same lookbehind subpattern)r   r1   r(   )r    r+   sourcer   r   r   checklookbehindgroupe   s   




zState.checklookbehindgroupr#   )
r   r   r   r!   propertyr%   r,   r/   r1   r4   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 u r	g }|| _d | _d S r#   )statedatawidth)r    r7   r8   r   r   r   r!   o   s
   
zSubPattern.__init__r   c                 C   s|  d}t tf}| jD ]\}}t|d t| dd |tu r5t  |D ]\}}t|d d t| | q"q	|tu rYt  t|d D ]\}}|rPt|d d  ||d  qBq	|t	u r|\}}	}
td| |	|d  |
rt|d d  |
|d  q	t
||rd}|D ]&}t
|tr|st  ||d  d}q|std	dd t|dd d}q|st  q	td| q	d S )
NTz   )end   ZORZELSEF )tuplelistr8   printstrINBRANCH	enumeratedumpGROUPREF_EXISTS
isinstancer6   )r    levelZnlZseqtypesopavr   r   	condgroupitem_yesitem_nor   r   r   rE   v   sR   



zSubPattern.dumpc                 C   r"   r#   )reprr8   r   r   r   r   __repr__      
zSubPattern.__repr__c                 C   r"   r#   )r$   r8   r   r   r   r   __len__   rP   zSubPattern.__len__c                 C   s   | j |= d S r#   r8   r    indexr   r   r   __delitem__   s   zSubPattern.__delitem__c                 C   s&   t |trt| j| j| S | j| S r#   )rG   slicer6   r7   r8   rS   r   r   r   __getitem__   s   

zSubPattern.__getitem__c                 C   s   || j |< d S r#   rR   r    rT   coder   r   r   __setitem__      zSubPattern.__setitem__c                 C   s   | j || d S r#   )r8   insertrX   r   r   r   r\      r0   zSubPattern.insertc                 C   s   | j | d S r#   )r8   r&   )r    rY   r   r   r   r&      s   zSubPattern.appendc           	      C   s  | j d ur| j S d }}| jD ]\}}|tu r=td }d}|d D ]}| \}}t||}t||}q!|| }|| }q|tu rP| \}}|| }|| }q|tu re|d  \}}|| }|| }q|t	v r|d  \}}|||d   }|||d   }q|t
v r|d }|d }q|tu r| jj| \}}|| }|| }q|tu r|d  \}}|d d ur|d  \}}t||}t||}nd}|| }|| }q|tu r qqt|td t|tf| _ | j S )Nr   r<      )r9   r8   rC   	MAXREPEATr-   minmaxCALL
SUBPATTERN_REPEATCODES
_UNITCODESGROUPREFr7   r   rF   SUCCESS)	r    lohirI   rJ   r   jlhr   r   r   r-      s\   








zSubPattern.getwidthr#   r   )r   r   r   r!   rE   rO   rQ   rU   rW   rZ   r\   r&   r-   r   r   r   r   r6   m   s    

(r6   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   )rG   rA   istextstringdecoded_stringrT   next_Tokenizer__next)r    rq   r   r   r   r!      s   
zTokenizer.__init__c                 C   s   | j }z| j| }W n ty   d | _Y d S w |dkr>|d7 }z	|| j| 7 }W n ty=   td| jt| jd d w |d | _ || _d S )Nr
   r<   zbad escape (end of pattern))rT   rr   
IndexErrorrs   r(   rq   r$   )r    rT   charr   r   r   Z__next   s(   

zTokenizer.__nextc                 C   s   || j kr|   dS dS )NTFrs   rt   )r    rv   r   r   r   match   s   
zTokenizer.matchc                 C   s   | j }|   |S r#   rw   )r    thisr   r   r   r)      s   zTokenizer.getc                 C   s:   d}t |D ]}| j}||vr |S ||7 }|   q|S Nr:   )rangers   rt   )r    ncharsetresult_cr   r   r   getwhile  s   
zTokenizer.getwhilec                 C   sn   d}	 | j }|   |d u r!|s| d| | d| t|||kr2|s/| d| d	 |S ||7 }q)Nr:   Tzmissing zmissing %s, unterminated namer<   )rs   rt   r(   r$   )r    Z
terminatorr*   r~   r   r   r   r   getuntil  s"   
zTokenizer.getuntilc                 C      | j t| jpd S rz   rT   r$   rs   r   r   r   r   pos  s   zTokenizer.posc                 C   r   rz   r   r   r   r   r   tell  s   zTokenizer.tellc                 C   s   || _ |   d S r#   )rT   rt   rS   r   r   r   seek   s   zTokenizer.seekr   c                 C   s   t || j|  | S r#   )r(   rq   r   )r    msgoffsetr   r   r   r(   $  s   zTokenizer.errorNrm   )r   r   r   r!   rt   rx   r)   r   r   r5   r   r   r   r(   r   r   r   r   rn      s    		
rn   c              	   C   s  t |}|r	|S t|}|r|d tu r|S z|dd }|dkrH|| dt7 }t|dkr<| d| t|tt	|dd  dfW S |dkrs| j
rs|| dt7 }t|d	krg| d| t|tt	|dd  dfW S |d
kr| j
r|| dt7 }t|dkr| d| t|t	|dd  d}t| t|fW S |dkr| j
rdd l}| ds| d| dd}z	t||}W n ty   | d| t|td w t|fW S |tv r|| dt7 }t	|dd  d}|dkr| d| t|t|fW S |tv rtt|dkr3|tv r*| d| t|tt|d fW S W n
 ty>   Y nw | d| t|)Nr   r<   r^   r      incomplete escape %s   r      U   
   N{	missing {}character nameundefined character name %r\N{}   .octal escape value %s outside of range 0-0o377bad escape %s)ESCAPESr)   
CATEGORIESrB   r   	HEXDIGITSr$   r(   LITERALintrp   chrunicodedatarx   r   ordlookupKeyError	OCTDIGITSDIGITS
ValueErrorASCIILETTERS)r3   escaperY   r   r   charnamer   r   r   _class_escape'  sv   











r   c              	   C   sJ  t |}|r	|S t|}|r|S z}|dd }|dkrB|| dt7 }t|dkr6| d| t|tt|dd  dfW S |dkrm| j	rm|| dt7 }t|dkra| d| t|tt|dd  dfW S |d	kr| j	r|| d
t7 }t|dkr| d| t|t|dd  d}t
| t|fW S |dkr| j	rdd l}| ds| d| dd}z	t||}W n ty   | d| t|td w t|fW S |dkr|| dt7 }tt|dd  d
fW S |tv rp| jtv r=||  7 }|d tv r=|d tv r=| jtv r=||  7 }t|dd  d
}|dkr8| d| t|t|fW S t|dd  }||jk rd||sY| dt||||  t|fW S | d| t|d t|dkr|tv r| d| t|tt|d fW S W n
 ty   Y nw | d| t|)Nr<   r^   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   0r   r   r2   invalid group reference %dr   )r   r)   r   r   r   r$   r(   r   r   rp   r   r   rx   r   r   r   r   r   r   rs   r%   r1   r4   rf   r   r   )r3   r   r7   rY   r   r   r   groupr   r   r   _escapec  s   











r   c                 C   s   t t| S r#   )r?   dictfromkeys)itemsr   r   r   _uniq  r[   r   c                 C   sN  g }|j }| j}|  }	 |t| |||d | o|  |ds"q#qt|dkr-|d S t|}	 d }	|D ]}
|
s< q\|	d u rE|
d }	q6|
d |	krM q\q6|D ]}
|
d= qP| |	 q1	 g }|D ]/}
t|
dkrk q|
d \}}|tu r}| ||f qa|tu r|d d tur|	| qa q| tt
|f |S | td |ff |S )NTr<   |r   )r&   rx   r   _parser$   r6   r   rB   NEGATEextendr   rC   )r3   r7   verbosenestedr   Zitemsappendsourcematchstart
subpatternprefixitemsetrI   rJ   r   r   r   
_parse_sub  sV   


r   Fc           /   
   C   s  t |}|j}| j}| j}t}	t}
	 | j}|d u rq|dv r!q|  |r>|tv r+q|dkr>	 | }|d u s;|dkr<q=q0q|d dkrPt| ||}|| n|t	vr^|t
|
|f n|dkr|  d }g }|j}| jdkrdd l}|jd	|   t|d
 d |d}	 | }|d u r| d|  | |dkr|rq|d dkrt| |}n9|r|dv 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 u r| d|  | |dkr|d tu r|d d }|| |t
|
df q|d dkr+t| |}n|dkrDdd l}|jd|  d  t|d
 d t
|
|f}|d t
ksX|d t
krld||f }| |t|d t| |d }|d }||k rd||f }| |t|d t| |t||ff n|d tu r|d d }|| qt|}|	|dkr|d d t
u r|r|t|d d f q||d  q|r|dtd f |t|f n%|tv r|  }|dkrd\}}n|dkrdt}}n|dkrdt}}n|dkr| jd kr#|t
|
|f qdt}}d! }}| jtv r=|| 7 }| jtv s2|d"rT| jtv rS|| 7 }| jtv sHn|}|d si|t
|
|f | | q|ryt|}|tkrytd#|rt|}|tkrtd#||k r| d$|  | ntd%|f |r|d&d  }nd }|r|d d tu r| d'|  | t| |d d tv r| d(|  | t| |d d t u r|d d \}}}}|d u r|s|s|}|drt!|||ff|d&< qt"|||ff|d&< n|d)kr%|t#d f n|d*kr|  d } d}d }!d}d}|dr| }|d u rJ| d+|d,kr|d-ro| $d.d/}!|!% smd0|! }| |t|!d q|d1r| $d2d/}!|!% sd0|! }| |t|!d |j&|!}"|"d u rd3|! }| |t|!d |'|"s| d4t|!d |(|"|  |t)|"f q| }|d u r| d+| d5| t|d |d6krd }n|dkr	 | jd u r| d7|  |  | d2krqqq|d8v rzd}#|d-kr>| }|d u r| d+|d9vr0| d:| t|d d&}#|j*}$|$d u r>|j+|_*t,| |||d }|#dk rT|$d u rTd |_*|d2sc| d;|  |  |d1krq|t-|#|ff n|t.|#|ff q|d*kr/| $d2d/}%|%% r|j&|%}&|&d u rd3|% }| |t|%d nEzt|%}&|&dk rt/W n t/y   d0|% }| |t|%d d w |&s| d<t|%d |&t0krd=|& }| |t|%d |(|&|  t1| |||d }'| d>rt1| |||d }(| jd>kr| d?nd }(| d2s%| d;|  |  |t2|&|'|(ff q|t3v s9|dkr~t4| ||})|)d u rw|rJ|rkdd l}|jd@| j5d dA t| j5dAkradBnd!f t6|d
 d |j7t8@ rv|svt9q|)\}}d }n| dC| t|d |d urz|:|!}W n ty }* z| |*j;t|!d d d }*~*ww |s|t8@ o|t8@  }+t,| ||+|d }| d2s| d;|  |  |d ur|<|| |t ||||ff n|dkr|tt=f n|dDkr|tt>f ntdE|f qt?t|d d d& D ]'},||, \}-}.|-t u r=|.\}}}}|d u r=|s=|s=|||,|,d < q|S )FNTz|)#r   r   r
   [r<   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 %dr^   zbad character range %s-%s?)r   r<   r   +r   r   r:   ,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier %rr]   znothing to repeatzmultiple repeat.(zunexpected end of patternP<>
group namebad character in group name %r=)unknown group name %rr2   zunknown extension ?P:zmissing ), unterminated commentz=!<z=!zunknown extension ?<z"missing ), unterminated subpatternzbad group numberr   r   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)@r6   r&   r)   rx   r$   r   rs   
WHITESPACEr   SPECIAL_CHARSr   r   warningswarnFutureWarningr(   r   rB   RANGEr   NOT_LITERALr\   r   REPEAT_CHARSr_   r   r   r   OverflowErrorAssertionErrorATrd   rc   
MIN_REPEAT
MAX_REPEATANYr   isidentifierr   r1   r4   rf   r   r%   r   ASSERT
ASSERT_NOTr   r'   r   rF   FLAGS_parse_flagsrq   DeprecationWarningr   SRE_FLAG_VERBOSEr   r,   r   r/   ZAT_BEGINNINGZAT_ENDr{   )/r3   r7   r   r   Zfirstr   Zsubpatternappend	sourcegetr   _lenZ_ordry   rY   Zherer   Z	setappendr   ZnegateZcode1ZthatZcode2r   rh   ri   r`   ra   rv   r   r   	add_flags	del_flagsr.   r   r*   r+   dirr   ZcondnamerK   rL   rM   r   errZsub_verboser   rI   rJ   r   r   r   r     s  




	





; 
































































    ^
r   c                 C   s  | j }d}d}|dkre	 t| }| jr|dkrd}| |n|dkr*d}| |||O }|t@ r?|t@ |kr?d}| || }|d u rK| d	|d
v rPqe|tvrd| rZdnd	}| |t|q|dkrr| j|O  _d S |t@ r|| dd|dkr| }|d u r| d|tvr| rdnd}| |t|	 t| }|t@ rd}| |||O }| }|d u r| d|dkrq|tvr| rdnd}| |t|q|dksJ |t@ r| dd||@ r| dd||fS )Nr   r   Tr   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 flagr<   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   rp   r(   
TYPE_FLAGSisalphar$   r   GLOBAL_FLAGS)r3   r7   rv   r   r   r   flagr   r   r   r   r   ]  sx   






r   c                 C   sn   t | tr!|t@ rtd|t@ s|tO }|S |t@ rtd|S |t@ r)td|t@ r5|t@ r5t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)rG   rA   SRE_FLAG_LOCALEr   SRE_FLAG_ASCIISRE_FLAG_UNICODE)Zsrcr   r   r   r   	fix_flags  s   
r   Nc                 C   s   t | }|d u rt }||_| |_zt|||t@ d}W n  ty<   t }|tB |_| |_|d t||dd}Y nw t| |j	j|j	_|j
d urW|j
dksRJ |d|t@ r_|  |S )Nr   Tr   zunbalanced parenthesis)rn   r   r   rA   r   r   r   r   r   r7   rs   r(   SRE_FLAG_DEBUGrE   )rA   r   r7   r3   r.   r   r   r   parse  s*   

	

r   c                    s  t | j}g  g g j} fdd}j}	 | }|d u r'qP|d dkrK|d }|dkrd}d	sBd
dd}| r`z|| }	W q ty_   t	d| w zt
|}	|	dk rktW n ty   d| t|d d w |	tkrd|	 t|d ||	t|d  qO|dkrňjtv r|| 7 }jtv r|| 7 }|tt
|dd  dd@  qO|tv r"d}
jtv r|| 7 }|tv r|d tv rjtv r|| 7 }d}
t
|dd  d}|dkrd| t||t| |
s |t
|dd  t|d  qOz
tt| d }W n tyE   |tv rCd| t|Y nw || n|| qr[d t| tshdd D  fS )Nc                    sX   | j krd|  |rd d d =  t| f d  d S )Nr   r:   )r%   r(   r&   joinr$   )rT   r   r%   Zliteralliteralsr   r7   r   r   addgroup  s   

z parse_template.<locals>.addgroupTr   r
   r<   gr:   r   z	missing <r   r   r   r   r   r   r   r   Fr^   r   r   c                 S   s"   g | ]}|d u r
d n| dqS )Nzlatin-1)encode).0r   r   r   r   
<listcomp>  s   " z"parse_template.<locals>.<listcomp>)rn   r)   r&   
groupindexrx   r(   r   r   r   ru   r   r   r$   r'   rs   r   r   r   r   r   r  rG   rA   )r3   r7   ZsgetZlappendr  r	  ry   r   r*   rT   Zisoctalr   r  r   parse_template  s   









"





;r
  c                 C   sp   |j }|jd d }| \}}|d d  }z|D ]\}}||p |||< qW n ty2   td| w ||S )Nr   r   )r   rq   ru   r(   r  )templaterx   r  emptyr%   r  rT   r   r   r   r   expand_template  s   
r  )F)r   N)=__doc__sre_constantsr   r   	frozensetr   r   r   r   r   r   r   rd   r   r   rB   r   r   CATEGORYre   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   r6   rn   r   r   r   r   r   r   r   r   r
  r  r   r   r   r   <module>   st   








#rH<M
:  r<
 U