ó
6Þ	Pc           @   sk  d  Z  d d l Z d d l Z d d l Z d d l Te j e k sL t d ‚ e j d k rd d Z n d Z d „  Z	 e
 e e g ƒ Z e
 e e e g ƒ Z e
 e e g ƒ Z e
 e e g ƒ Z d	 „  Z d d
 „ Z d „  Z d „  Z d „  Z d „  Z d „  Z y e  Wn  e! k
 r*e" d ƒ f Z# n Xe" d ƒ e" e  d ƒ ƒ f Z# d „  Z$ d „  Z% d d „ Z& d S(   s   Internal support module for sreiÿÿÿÿN(   t   *s   SRE module mismatchi   iÿÿ  l   ÿÿ c         C   s   |  S(   N(    (   t   x(    (    s!   /usr/lib/python2.7/sre_compile.pyt   _identityfunction   s    c         C   sô  |  j  } t } t } t } t } t } xÆ| D]¾\ }	 }
 |	 | k r– | t @r{ | t t |	 ƒ | t	 j
 |
 | ƒ ƒ qì| t |	 ƒ | |
 ƒ q. |	 t k r!| t @rÍ | t t |	 ƒ | d „ } n | t |	 ƒ t } | |  ƒ } | d ƒ t |
 | |  | ƒ | |  ƒ | |  | <q. |	 t k rY| t @rH| t t ƒ qì| t t ƒ q. |	 | k r5| t @rñt d ‚ | t t ƒ | |  ƒ } | d ƒ | |
 d ƒ | |
 d ƒ t |  |
 d | ƒ | t t ƒ | |  ƒ | |  | <qìt |
 ƒ rŸ|	 t k	 rŸ|	 t k r&| t t ƒ n | t t ƒ | |  ƒ } | d ƒ | |
 d ƒ | |
 d ƒ t |  |
 d | ƒ | t t ƒ | |  ƒ | |  | <qì| t t ƒ | |  ƒ } | d ƒ | |
 d ƒ | |
 d ƒ t |  |
 d | ƒ | |  ƒ | |  | <|	 t k r$| t t ƒ qì| t t ƒ q. |	 t k r¾|
 d rr| t t ƒ | |
 d d d ƒ n  t |  |
 d | ƒ |
 d rì| t t ƒ | |
 d d d d ƒ qìq. |	 | k rÛ| t |	 ƒ q. |	 | k r™| t |	 ƒ | |  ƒ } | d ƒ |
 d d k r(| d ƒ n8 |
 d j ƒ  \ } } | | k rVt d ‚ n  | | ƒ t |  |
 d | ƒ | t t ƒ | |  ƒ | |  | <q. |	 t k rþ| t |	 ƒ | |  ƒ } | d ƒ t |  |
 | ƒ | t t ƒ | |  ƒ | |  | <q. |	 t  k r†| t |	 ƒ | t! @r7t" j# |
 |
 ƒ }
 n  | t$ @rVt% j# |
 |
 ƒ }
 n | t& @rut' j# |
 |
 ƒ }
 n  | t( |
 ƒ q. |	 t) k rX| t |	 ƒ g  } | j  } xt |
 d D]h }
 | |  ƒ } | d ƒ t |  |
 | ƒ | t t* ƒ | | |  ƒ ƒ | d ƒ | |  ƒ | |  | <qºW| d ƒ x¹| D] } | |  ƒ | |  | <q7Wq. |	 t+ k r±| t |	 ƒ | t$ @r‰t, |
 }
 n | t& @r t- |
 }
 n  | t. |
 ƒ q. |	 t/ k rû| t @rÜ| t t |	 ƒ n | t |	 ƒ | |
 d ƒ q. |	 t0 k rÝ| t |	 ƒ | |
 d d ƒ | |  ƒ } | d ƒ t |  |
 d | ƒ |
 d rÂ| t t* ƒ | |  ƒ } | d ƒ | |  ƒ | d |  | <t |  |
 d | ƒ | |  ƒ | |  | <qì| |  ƒ | d |  | <q. t1 d |	 f ‚ q. Wd  S(   Nc         S   s   t  j |  | ƒ S(   N(   t   _sret   getlower(   t   literalt   flags(    (    s!   /usr/lib/python2.7/sre_compile.pyt   fixup3   s    i    s'   internal: unsupported template operatori   i   s(   look-behind requires fixed-width patterns   unsupported operand type(2   t   appendt   lent   _LITERAL_CODESt   _REPEATING_CODESt   _SUCCESS_CODESt   _ASSERT_CODESt   SRE_FLAG_IGNORECASEt   OPCODESt	   OP_IGNORER   R   t   INR   t   _compile_charsett   ANYt   SRE_FLAG_DOTALLt   ANY_ALLt   SRE_FLAG_TEMPLATEt   errort   REPEATt   _compilet   SUCCESSt   _simplet
   MAX_REPEATt
   REPEAT_ONEt   MIN_REPEAT_ONEt	   MAX_UNTILt	   MIN_UNTILt
   SUBPATTERNt   MARKt   getwidtht   CALLt   ATt   SRE_FLAG_MULTILINEt   AT_MULTILINEt   gett   SRE_FLAG_LOCALEt	   AT_LOCALEt   SRE_FLAG_UNICODEt
   AT_UNICODEt   ATCODESt   BRANCHt   JUMPt   CATEGORYt	   CH_LOCALEt
   CH_UNICODEt   CHCODESt   GROUPREFt   GROUPREF_EXISTSt
   ValueError(   t   codet   patternR   t   emitt   _lent   LITERAL_CODESt   REPEATING_CODESt   SUCCESS_CODESt   ASSERT_CODESt   opt   avR   t   skipt   lot   hit   tailt
   tailappendt   skipyest   skipno(    (    s!   /usr/lib/python2.7/sre_compile.pyR       s   	

 


	 
 
 


  

 



	 
 




 

 
c         C   s_  | j  } | d  k r t } n  x,t |  | ƒ D]\ } } | t | ƒ | t k rW q. | t k rv | | | ƒ ƒ q. | t k r­ | | | d ƒ ƒ | | | d ƒ ƒ q. | t k rÉ | j	 | ƒ q. | t
 k rå | j	 | ƒ q. | t k r@| t @r| t t | ƒ qI| t @r/| t t | ƒ qI| t | ƒ q. t d ‚ q. W| t t ƒ d  S(   Ni    i   s"   internal: unsupported set operator(   R   t   NoneR   t   _optimize_charsetR   t   NEGATEt   LITERALt   RANGEt   CHARSETt   extendt
   BIGCHARSETR0   R)   R3   R1   R+   R2   R   t   FAILURE(   t   charsetR   R7   R   R9   R?   R@   (    (    s!   /usr/lib/python2.7/sre_compile.pyR   ²   s0    		

c         C   s/  g  } | j  } d g d } y´ x­ |  D]¥ \ } } | t k rQ | | | f ƒ q& | t k rp d | | | ƒ <q& | t k r» xL t | | d ƒ | | d ƒ d ƒ D] } d | | <q¤ Wq& | t k r& |  Sq& WWn t k
 rí t |  | ƒ SXd } } }	 g  }
 |
 j  } x_ | D]W } | r@|	 d k r3| } n  |	 d }	 n |	 r_| | |	 f ƒ d }	 n  | d } qW|	 r†| | |	 f ƒ n  t |
 ƒ d k rxQ |
 D]I \ } }	 |	 d k rÊ| t | f ƒ qŸ| t | | |	 d f f ƒ qŸWt | ƒ t |  ƒ k  r+| Sn  t	 | ƒ } | t
 | f ƒ | S|  S(   Ni    i   i   i   (   R   RJ   RK   RL   t   rangeR0   t
   IndexErrort   _optimize_unicodeR	   t
   _mk_bitmapRM   (   RQ   R   t   outt	   outappendt   charmapR?   R@   t   it   pt   nt   runst
   runsappendt   ct   data(    (    s!   /usr/lib/python2.7/sre_compile.pyRI   Ï   sR    	.			"c         C   s   g  } | j  } t j d k r' d } n d } | \ } } xP |  D]H } | rY | | } n  | | } | t k r@ | | ƒ | \ } } q@ q@ W| S(   Ni   i   i    l    l    (   i   i    (   l    l    (   R   R   t   CODESIZEt   MAXCODE(   t   bitsR_   t
   dataappendt   startt   mt   vR^   (    (    s!   /usr/lib/python2.7/sre_compile.pyRU     s    		

c         C   sf  y d d  l  } Wn t k
 r$ |  SXd g d } d } yª x£ |  D]› \ } } | t k rc d } qB | t k r‚ d | | | ƒ <qB | t k rÍ xL t | | d ƒ | | d ƒ d ƒ D] } d | | <q¶ WqB | t k rB |  SqB WWn t k
 rö |  SX| r9t j	 d k r|  Sx& t d ƒ D] } | | | | <qWn  i  } d g d }	 d }
 g  } xx t d ƒ D]j } t
 | | d | d d !ƒ } | j | |
 ƒ } | |	 | <| |
 k re|
 d }
 | t | ƒ } qeqeW|
 g } t j d k rôd } n d	 } | j  d
 |	 ƒ j ƒ  }	 | j  | |	 ƒ }	 |	 j t j k s<t ‚ | |	 j ƒ  } | | d d +t | f g S(   Niÿÿÿÿi    i   i   iÿÿ  i   i   t   Ht   It   b(   t   arrayt   ImportErrorRJ   RK   RL   t   xrangeR0   RS   t   syst
   maxunicodet   tuplet
   setdefaultRU   R   R`   t   tostringt   itemsizet   AssertionErrort   tolistRO   (   RQ   R   Rj   RX   t   negateR?   R@   RY   t   compst   mappingt   blockR_   t   chunkt   newt   headerR7   (    (    s!   /usr/lib/python2.7/sre_compile.pyRT   -  sZ    	.

		c         C   sl   |  d j  ƒ  \ } } | d k r: | t k r: t d ‚ n  | | k oQ d k n ok |  d d d t k S(   Ni   i    s   nothing to repeati   (   R#   t	   MAXREPEATR   R!   (   R@   RB   RC   (    (    s!   /usr/lib/python2.7/sre_compile.pyR   b  s    c      
   C   si  | j  ƒ  \ } } | d k r" d  Sg  } | j } d } g  } | j }	 | t @sfx£ | j D]˜ \ }
 } |
 t k rž t | ƒ | k r‘ | d } n  | | ƒ qZ |
 t k rñ t | d ƒ d k rñ | d d \ }
 } |
 t k rí | | ƒ qò PqZ PqZ W| rf| j rf| j d \ }
 } |
 t k rØ| d rØ| d d \ }
 } |
 t k rb|	 |
 | f ƒ q`|
 t k r`g  } | j } xU | d D]@ } | s˜Pn  | d \ }
 } |
 t k rÇ| |
 | f ƒ qˆPqˆW| } q`qc|
 t k rKg  } | j } xj | d D]@ } | sPn  | d \ }
 } |
 t k r=| |
 | f ƒ qþPqþW| } qc|
 t k rc| } qcqfn  |  j } | t	 t
 ƒ t |  ƒ } | d ƒ d } | ràt } t | ƒ | k oËt | j ƒ k n ró| t } qón | ró| t } n  | | ƒ | t k  r| | ƒ n | t ƒ | t  } | t k  rC| | ƒ n
 | d ƒ | r8| t | ƒ ƒ | | ƒ |  j | ƒ d g d g t | ƒ } x t t | ƒ ƒ D]y } | | d | | d <xZ | | d d k r| | | | | d d k r| | | d d d | | d <qÆWq§W|  j | d ƒ n | rQt | | |  ƒ n  t |  ƒ | |  | <d  S(   Ni    i   iÿÿÿÿ(   R#   R   R   R_   RK   R	   R!   R.   R   R   t   INFOt   SRE_INFO_PREFIXt   SRE_INFO_LITERALt   SRE_INFO_CHARSETRa   RN   Rl   R   (   R7   R8   R   RB   RC   t   prefixt   prefixappendt   prefix_skipRQ   t   charsetappendR?   R@   R^   t   cappendRZ   R9   RA   t   maskt   tableRY   (    (    s!   /usr/lib/python2.7/sre_compile.pyt   _compile_infoi  s¤    		
"				 
+




7*t    c         C   s(   x! t  D] } t |  | ƒ r d Sq Wd S(   Ni   i    (   t   STRING_TYPESt
   isinstance(   t   objt   tp(    (    s!   /usr/lib/python2.7/sre_compile.pyt   isstringÚ  s    c         C   sN   |  j  j | B} g  } t | |  | ƒ t | |  j | ƒ | j t t ƒ | S(   N(   R8   R   Rˆ   R   R_   R   R   R   (   RZ   R   R7   (    (    s!   /usr/lib/python2.7/sre_compile.pyt   _codeà  s    i    c         C   sÓ   t  |  ƒ r' |  } t j |  | ƒ }  n d  } t |  | ƒ } |  j j d k r] t d ƒ ‚ n  |  j j } d  g |  j j } x$ | j	 ƒ  D] \ } } | | | <q‰ Wt
 j | | |  j j B| |  j j d | | ƒ S(   Nid   s6   sorry, but this version only supports 100 named groupsi   (   RŽ   t	   sre_parset   parseRH   R   R8   t   groupsRs   t	   groupdictt   itemsR   t   compileR   (   RZ   R   R8   R7   t
   groupindext
   indexgroupt   kRY   (    (    s!   /usr/lib/python2.7/sre_compile.pyR•   ï  s     ('   t   __doc__R   Rm   R   t   sre_constantst   MAGICRs   R`   Ra   R   t   setRK   t   NOT_LITERALR
   R   t
   MIN_REPEATR   R   R   RP   R   t   ASSERTt
   ASSERT_NOTR   R   RH   R   RI   RU   RT   R   Rˆ   t   unicodet	   NameErrort   typeRŠ   RŽ   R   R•   (    (    (    s!   /usr/lib/python2.7/sre_compile.pyt   <module>   s6   
			’	3	+	5		j		