U
    nuf
                     @   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eeef dddZdd	 Zd
d Z	dd Z
dS )
PrefixPart Nc                 C   s.   |d k	st || _|| _|| _|| _|| _d S N)AssertionErrorparenttypevaluespacing	start_pos)selfleaftypr   r   r    r   7/tmp/pip-unpacked-wheel-bhkpgl14/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 k	r$|j|kr|S |j }q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\	backslashZformfeedr   newliner   bomc           
   	   c   s   |\}}d}d }}d}|t | jkrt| j|}|d}|d}|sNqt|d  }	t| |	||||| t| t | fdV  |	dkrd}|d}|	d	s|	d
r|d7 }| }q|rd}t| d|||| fdV  d S )Nr   r   Fr      r   r2   Tr   r   r   )
r   prefix_regexmatchr   _typesr   r)   endr   )
r   r   liner   startr   r   r2   r6   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_bomr5   compiler7   r<   r   r   r   r   <module>   sH   
*           
