B
    +d
                 @   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   `/work/yifan.wang/ringdown/master-ringdown-env/lib/python3.7/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 }x |d k	r&|j|kr|S |j }qW d S )N)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}x|t | jkrt| j|}|d}|d}|sPP t|d  }	t| |	||||| t| t | fdV  |	dkrd}|d}|	d	s|	d
r|d7 }| }qW |rd}t| d|||| fdV  d S )Nr   r   Fr      )r   r.   Tr   r   r   )
r   prefix_regexmatchr   _typesr   r&   endr   )
r   r   liner   startr
   r   r.   r2   type_r   r   r   split_prefixM   s2    

"

r8   )recodecsr   typingr   Zparso.python.tokenizer   decoder   r   _commentZ
_backslashZ_newlineZ
_form_feedZ_only_spacing_spacingZ_bomr1   compiler3   r8   r   r   r   r   <module>   s.   
*