o
    Zh
                     @   s   d dl Z d dlmZ d dlmZ d dlmZ edZG dd dZ	dZ
d	Zd
ZdZdZdZeZee
eeeeeddZe eedde ZddddddddddediZdd ZdS )    N)BOM_UTF8)Tuple)groupzutf-8c                   @   sH   e Zd ZdddZedeeef fddZdd	 Zd
d Z	dd Z
dS )
PrefixPart Nc                 C   s.   |d usJ || _ || _|| _|| _|| _d S N)parenttypevaluespacing	start_pos)selfleaftypr
   r   r    r   J/var/www/html/lang_env/lib/python3.10/site-packages/parso/python/prefix.py__init__   s   
zPrefixPart.__init__returnc                 C   sX   | j ds| j dr| jd d dfS | j tkr| jS | jd | jd t| j  fS )N
r      )r
   endswithr   unicode_bomlenr   r   r   r   end_pos   s
   
zPrefixPart.end_posc                 C   s2   | j d t| j }t| jd| j| j d |fdS )Nr   r   r   r   )r   r   r   r   r   )r   columnr   r   r   create_spacing_part   s
   
zPrefixPart.create_spacing_partc                 C   s   d| j j| jt| j| jf S )Nz%s(%s, %s, %s))	__class____name__r	   reprr
   r   r   r   r   r   __repr__#   s   zPrefixPart.__repr__c                 G   s.   | j }|d ur|j|v r|S |j }|d usd S r   )r   r	   )r   Z
node_typesnoder   r   r   search_ancestor+   s   
zPrefixPart.search_ancestor)r   N)r    
__module____qualname__r   propertyr   intr   r   r"   r$   r   r   r   r   r   
   s    
r   z#[^\n\r\f]*z\\\r?\n|\\\rz\r?\n|\rz\f$z[ \t]*T)capture#comment\Z	backslashZformfeedr   newliner   bomc           
   	   c   s    |\}}d}d }}d}|t | jkrgt| j|}|d}|d}|s(n?t|d  }	t| |	||||| t| t | fdV  |	dkrJd}|d}|	d	sY|	d
r`|d7 }| }|t | jks|rkd}t| d|||| fdV  d S )Nr   r   Fr      r   r0   Tr   r   r   )
r   prefix_regexmatchr   _typesr   r(   endr   )
r   r   liner   startr
   r   r0   r4   type_r   r   r   split_prefixM   s:   



r:   )recodecsr   typingr   Zparso.python.tokenizer   decoder   r   _commentZ
_backslashZ_newlineZ
_form_feedZ_only_spacing_spacingZ_bomr3   compiler5   r:   r   r   r   r   <module>   s4    
*
