ó
NV]c        	   @   sø   d  d l  Z  d  d l m Z d  d l m Z e j d  Z d e f d     YZ d Z	 d Z
 d	 Z d
 Z d Z d Z e Z e e	 e
 e e e e d e Z e  j e e d e e  Z i d d 6d d 6d d 6d d 6d d 6d e 6Z d   Z d S(   iÿÿÿÿN(   t   BOM_UTF8(   t   groups   utf-8t
   PrefixPartc           B   s8   e  Z d  d d  Z e d    Z d   Z d   Z RS(   t    c         C   sC   | d  k	 s t  | |  _ | |  _ | |  _ | |  _ | |  _ d  S(   N(   t   Nonet   AssertionErrort   parentt   typet   valuet   spacingt	   start_pos(   t   selft   leaft   typR   R	   R
   (    (    s2   lib/python2.7/site-packages/parso/python/prefix.pyt   __init__
   s    				c         C   sb   |  j  j d  r' |  j d d d f S|  j  t k r= |  j S|  j d |  j d t |  j   f S(   Ns   
i    i   (   R   t   endswithR
   t   unicode_bomt   len(   R   (    (    s2   lib/python2.7/site-packages/parso/python/prefix.pyt   end_pos   s
    c         C   sC   |  j  d t |  j  } t |  j d |  j d |  j  d | f S(   Ni   R	   R
   i    (   R
   R   R	   R   R   (   R   t   column(    (    s2   lib/python2.7/site-packages/parso/python/prefix.pyt   create_spacing_part   s    c         C   s)   d |  j  j |  j t |  j  |  j f S(   Ns   %s(%s, %s, %s)(   t	   __class__t   __name__R   t   reprR   R
   (   R   (    (    s2   lib/python2.7/site-packages/parso/python/prefix.pyt   __repr__"   s
    	N(   R   t
   __module__R   R   t   propertyR   R   R   (    (    (    s2   lib/python2.7/site-packages/parso/python/prefix.pyR   	   s   		s   #[^\n\r\f]*s   \\\r?\ns   \r?\ns   \ft   $s   [ \t]*t   capturet   commentt   #t	   backslashs   \t   formfeeds   t   newlines   
s   t   bomc   
   
   c   s<  | \ } } d } d } } t  } xã | t |  j  k rt j |  j |  } | j d  } | j d  } | sw Pn  t | d }	 t |  |	 | | d | | | t |  t |  f V|	 d k rÒ t	 } n  | j
 d  } | j d  r% | d 7} | } q% q% W| rd } n  t |  d | d | | | f Vd  S(	   Ni    R   i   i   R
   R"   s   
R	   (   t   FalseR   t   prefixt   _regext   matchR   t   _typesR   t   intt   Truet   endR   (
   R   R
   t   lineR   t   startR   R	   R"   R&   t   type_(    (    s2   lib/python2.7/site-packages/parso/python/prefix.pyt   split_prefixD   s2    
&	
	(   t   ret   codecsR    t   parso.python.tokenizeR   t   decodeR   t   objectR   t   _commentt
   _backslasht   _newlinet
   _form_feedt   _only_spacingt   _spacingt   _bomR)   R%   t   compileR'   R.   (    (    (    s2   lib/python2.7/site-packages/parso/python/prefix.pyt   <module>   s.   "	
