;
Êâ"Ic               @   s)  d  Z  d d l Z d d l Z d d l Z d d l Te j e k p t d ƒ ‚ e j d k o
 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 d „  Z  d „  Z! d d „ Z" d S(   u   Internal support module for srei    N(   u   *u   SRE module mismatchi   iÿÿ  l   ÿÿ c             C   s   |  S(   N(    (   u   x(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   _identityfunction   s    c             C   s9  |  j  } t } t } t } t } t } x| D]\ }	 }
 |	 | k oS | t @o, | t t |	 ƒ | t	 j
 |
 | ƒ ƒ q1| t |	 ƒ | |
 ƒ q. |	 t k o‚ | t @o" | t t |	 ƒ | d „ } n | t |	 ƒ t } | |  ƒ } | d ƒ t |
 | |  | ƒ | |  ƒ | |  | <q. |	 t k o/ | t @o | t t ƒ q1| t t ƒ q. |	 | k oÝ| t @o† t d ƒ ‚ | t t ƒ | |  ƒ } | d ƒ | |
 d ƒ | |
 d ƒ t |  |
 d | ƒ | t t ƒ | |  ƒ | |  | <q1t |
 ƒ o¦ |	 t k	 o™ |	 t k o | t t ƒ n | t t ƒ | |  ƒ } | d ƒ | |
 d ƒ | |
 d ƒ t |  |
 d | ƒ | t t ƒ | |  ƒ | |  | <q1| t t ƒ | |  ƒ } | d ƒ | |
 d ƒ | |
 d ƒ t |  |
 d | ƒ | |  ƒ | |  | <|	 t k o | t t ƒ q1| t t ƒ q. |	 t k o‚ |
 d o( | t t ƒ | |
 d d d ƒ n t |  |
 d | ƒ |
 d o, | t t ƒ | |
 d d d d ƒ q1q. |	 | k o | t |	 ƒ q. |	 | k oº | t |	 ƒ | |  ƒ } | d ƒ |
 d d k o | d ƒ n> |
 d j ƒ  \ } } | | k o t d ƒ ‚ n | | ƒ t |  |
 d | ƒ | t t ƒ | |  ƒ | |  | <q. |	 t k oZ | t |	 ƒ | |  ƒ } | d ƒ t |  |
 | ƒ | t t ƒ | |  ƒ | |  | <q. |	 t  k oƒ | t |	 ƒ | t! @o t" j# |
 |
 ƒ }
 n | t$ @o t% j# |
 |
 ƒ }
 n" | t& @o t' j# |
 |
 ƒ }
 n | t( |
 ƒ q. |	 t) k oÇ | t |	 ƒ g  } | j  } xt |
 d D]h }
 | |  ƒ } | d ƒ t |  |
 | ƒ | t t* ƒ | | |  ƒ ƒ | d ƒ | |  ƒ | |  | <qðW| d ƒ xÈ| D] } | |  ƒ | |  | <qmWq. |	 t+ k oR | t |	 ƒ | t$ @o t, |
 }
 n | t& @o t- |
 }
 n | t. |
 ƒ q. |	 t/ k oA | t @o | t t |	 ƒ n | t |	 ƒ | |
 d ƒ q. |	 t0 k oÙ | t |	 ƒ | |
 d d ƒ | |  ƒ } | d ƒ t |  |
 d | ƒ |
 d oh | t t* ƒ | |  ƒ } | d ƒ | |  ƒ | d |  | <t |  |
 d | ƒ | |  ƒ | |  | <q1| |  ƒ | d |  | <q. t1 d |	 ƒ ‚ q. Wd  S(   Nc             S   s   t  j |  | ƒ S(   N(   u   _sreu   getlower(   u   literalu   flags(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   fixup3   s    i    u'   internal: unsupported template operatori   i   u(   look-behind requires fixed-width patternu   unsupported operand type(2   u   appendu   lenu   _LITERAL_CODESu   _REPEATING_CODESu   _SUCCESS_CODESu   _ASSERT_CODESu   SRE_FLAG_IGNORECASEu   OPCODESu	   OP_IGNOREu   _sreu   getloweru   INu   _identityfunctionu   _compile_charsetu   ANYu   SRE_FLAG_DOTALLu   ANY_ALLu   SRE_FLAG_TEMPLATEu   erroru   REPEATu   _compileu   SUCCESSu   _simpleu
   MAX_REPEATu
   REPEAT_ONEu   MIN_REPEAT_ONEu	   MAX_UNTILu	   MIN_UNTILu
   SUBPATTERNu   MARKu   getwidthu   CALLu   ATu   SRE_FLAG_MULTILINEu   AT_MULTILINEu   getu   SRE_FLAG_LOCALEu	   AT_LOCALEu   SRE_FLAG_UNICODEu
   AT_UNICODEu   ATCODESu   BRANCHu   JUMPu   CATEGORYu	   CH_LOCALEu
   CH_UNICODEu   CHCODESu   GROUPREFu   GROUPREF_EXISTSu
   ValueError(   u   codeu   patternu   flagsu   emitu   _lenu   LITERAL_CODESu   REPEATING_CODESu   SUCCESS_CODESu   ASSERT_CODESu   opu   avu   fixupu   skipu   lou   hiu   tailu
   tailappendu   skipyesu   skipno(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   _compile    s   	  
 
 
 
" 

 
	  
 

  
 
c             C   st  | j  } | d  k o
 t } n x?t |  | ƒ D].\ } } | t | ƒ | t k o q0 | t k o | | | ƒ ƒ q0 | t k o, | | | d ƒ ƒ | | | d ƒ ƒ q0 | t k o | j	 | ƒ q0 | t
 k o | j	 | ƒ q0 | t k oT | t @o | t t | ƒ q^| t @o | t t | ƒ q^| t | ƒ q0 t d ƒ ‚ q0 W| t t ƒ d  S(   Ni    i   u"   internal: unsupported set operator(   u   appendu   Noneu   _identityfunctionu   _optimize_charsetu   OPCODESu   NEGATEu   LITERALu   RANGEu   CHARSETu   extendu
   BIGCHARSETu   CATEGORYu   SRE_FLAG_LOCALEu   CHCODESu	   CH_LOCALEu   SRE_FLAG_UNICODEu
   CH_UNICODEu   erroru   FAILURE(   u   charsetu   flagsu   codeu   fixupu   emitu   opu   av(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   _compile_charset²   s2    	
 c             C   sK  g  } | j  } d g d } y¼ xµ |  D]­ \ } } | t k o | | | f ƒ q& | t k o d | | | ƒ <q& | t k o@ xO t | | d ƒ | | d ƒ d ƒ D] } d | | <q© Wq& | t k o |  Sq& WWn! t k
 o t |  | ƒ SYn Xd } } }	 g  }
 |
 j  } xe | D]] } | o% |	 d k o
 | } n |	 d }	 n" |	 o | | |	 f ƒ d }	 n | d } q W|	 o | | |	 f ƒ n t |
 ƒ d k ox xS |
 D]K \ } }	 |	 d k o | t | f ƒ q¶| t | | |	 d f f ƒ q¶Wt | ƒ t |  ƒ k  o | Sn! t	 | ƒ } | t
 | f ƒ | S|  S(   Ni    i   i   i   (   u   appendu   NEGATEu   LITERALu   RANGEu   rangeu   CATEGORYu
   IndexErroru   _optimize_unicodeu   lenu
   _mk_bitmapu   CHARSET(   u   charsetu   fixupu   outu	   outappendu   charmapu   opu   avu   iu   pu   nu   runsu
   runsappendu   cu   data(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   _optimize_charsetÏ   sZ    	 ( 	 

 "	c             C   s–   g  } | j  } t j d k o
 d } n d } | \ } } xT |  D]L } | o | | } n | | } | t k o | | ƒ | \ } } qB qB W| S(   Ni   i   i    (   i   i    (   i   i    (   u   appendu   _sreu   CODESIZEu   MAXCODE(   u   bitsu   datau
   dataappendu   startu   mu   vu   c(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu
   _mk_bitmap  s    	
 

c             C   s«  y d d  l  } Wn t k
 o |  SYn Xd g d } d } y² x« |  D]£ \ } } | t k o
 d } qH | t k o d | | | ƒ <qH | t k o@ xO t | | d ƒ | | d ƒ d ƒ D] } d | | <qÁ WqH | t k o |  SqH WWn t k
 o |  SYn X| o? t j	 d k o |  Sx' t d ƒ D] } | | | | <q4Wn i  } d g d }	 d }
 g  } x} t d ƒ D]o } t
 | | d | d d … ƒ } | j | |
 ƒ } | |	 | <| |
 k o |
 d }
 | t | ƒ } q}q}W|
 g } t j d k o
 d } n d } | j  d	 |	 ƒ j ƒ  }	 | j  | |	 ƒ }	 |	 j t j k p t ‚ t |	 ƒ |	 j d k p t ‚ | |	 j ƒ  } | | d d … <t | f g S(
   Ni    i   i   iÿÿ  i   i   u   Hu   Iu   b(   u   arrayu   ImportErroru   NEGATEu   LITERALu   RANGEu   rangeu   CATEGORYu
   IndexErroru   sysu
   maxunicodeu   tupleu
   setdefaultu
   _mk_bitmapu   _sreu   CODESIZEu   tostringu   itemsizeu   AssertionErroru   lenu   tolistu
   BIGCHARSET(   u   charsetu   fixupu   arrayu   charmapu   negateu   opu   avu   iu   compsu   mappingu   blocku   datau   chunku   newu   headeru   code(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   _optimize_unicode-  sd    
 
( 
  "

	
!c             C   st   |  d j  ƒ  \ } } | d k o | t k o t d ƒ ‚ n | | k o
 d k n o |  d d d t k S(   Ni   i    u   nothing to repeati   (   u   getwidthu	   MAXREPEATu   erroru
   SUBPATTERN(   u   avu   lou   hi(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   _simplec  s    c          
   C   sª  | j  ƒ  \ } } | d k o d  Sg  } | j } d } g  } | j }	 | t @p6x¬ | j D]¡ \ }
 } |
 t k o/ t | ƒ | k o | d } n | | ƒ q] |
 t k oK t | d ƒ d k o4 | d d \ }
 } |
 t k o | | ƒ qþ Pq] Pq] W| o{| j oq| j d \ }
 } |
 t k o½ | d o² | d d \ }
 } |
 t k o |	 |
 | f ƒ q|
 t k ol g  } | j } xZ | d D]D } | p Pn | d \ }
 } |
 t k o | |
 | f ƒ q›Pq›W| } qq…|
 t k ol g  } | j } xq | d D]D } | p Pn | d \ }
 } |
 t k o | |
 | f ƒ qPqW| } q…|
 t k o
 | } q…q‰n |  j } | t	 t
 ƒ t |  ƒ } | d ƒ d } | oE t } t | ƒ | k o t | j ƒ k n o | t } qn | o | t } n | | ƒ | t k  o | | ƒ n | t ƒ | d  t … } | t k  o | | ƒ n | d ƒ | oï | t | ƒ ƒ | | ƒ |  j | ƒ d g d g t | ƒ } x t t | ƒ ƒ D]| } | | d | | d <x] | | d d k oG | | | | | d d k o& | | | d d d | | d <qûWqÜW|  j | d d  … ƒ n | o t | | |  ƒ n t |  ƒ | |  | <d  S(   Ni    i   iÿÿÿÿ(   u   getwidthu   appendu   SRE_FLAG_IGNORECASEu   datau   LITERALu   lenu
   SUBPATTERNu   BRANCHu   INu   OPCODESu   INFOu   SRE_INFO_PREFIXu   SRE_INFO_LITERALu   SRE_INFO_CHARSETu   MAXCODEu   extendu   rangeu   _compile_charset(   u   codeu   patternu   flagsu   lou   hiu   prefixu   prefixappendu   prefix_skipu   charsetu   charsetappendu   opu   avu   cu   cappendu   pu   emitu   skipu   masku   tableu   i(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   _compile_infoj  s®    		
 $	 	 
	 
-



  6+c             C   s   t  |  t t f ƒ S(   N(   u
   isinstanceu   stru   bytes(   u   obj(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   isstringÔ  s    c             C   sN   |  j  j | B} g  } t | |  | ƒ t | |  j | ƒ | j t t ƒ | S(   N(   u   patternu   flagsu   _compile_infou   _compileu   datau   appendu   OPCODESu   SUCCESS(   u   pu   flagsu   code(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   _code×  s    c          	   C   s×   t  |  ƒ o |  } t j |  | ƒ }  n d  } t |  | ƒ } |  j j d k o t d ƒ ‚ n |  j j } d  g |  j j } x$ | j	 ƒ  D] \ } } | | | <q Wt
 j | | |  j j B| |  j j d | | ƒ S(   Nid   u6   sorry, but this version only supports 100 named groupsi   (   u   isstringu	   sre_parseu   parseu   Noneu   _codeu   patternu   groupsu   AssertionErroru	   groupdictu   itemsu   _sreu   compileu   flags(   u   pu   flagsu   patternu   codeu
   groupindexu
   indexgroupu   ku   i(    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   compileæ  s"     (#   u   __doc__u   _sreu   sysu	   sre_parseu   sre_constantsu   MAGICu   AssertionErroru   CODESIZEu   MAXCODEu   _identityfunctionu   setu   LITERALu   NOT_LITERALu   _LITERAL_CODESu   REPEATu
   MIN_REPEATu
   MAX_REPEATu   _REPEATING_CODESu   SUCCESSu   FAILUREu   _SUCCESS_CODESu   ASSERTu
   ASSERT_NOTu   _ASSERT_CODESu   _compileu   Noneu   _compile_charsetu   _optimize_charsetu
   _mk_bitmapu   _optimize_unicodeu   _simpleu   _compile_infou   isstringu   _codeu   compile(    (    (    u(   /mit/python/lib/python3.0/sre_compile.pyu   <module>   s,   

		’	3	+	6		j		