;
ะโ"Ic               @   s   d  Z  d d l Z i
 d d 6d d 6d d 6d	 d
 6d d 6d d 6d d 6d d 6d d 6d d 6Z d   Z d   Z d   Z e d k o e   n d S(   u<   Safely evaluate Python string literals without using eval().i    Nu   u   au   u   bu   u   fu   
u   nu   u   ru   	u   tu   u   vu   'u   "u   \c          	   C   s  |  j  d d  \ } } t j |  } | d  k	 o | S| j d  ou | d d   } t |  d k  o t d |   n y t | d  } Wq๘ t k
 o t d |   Yq๘ Xn; y t | d  } Wn$ t k
 o t d |   Yn Xt |  S(	   Ni    i   u   xi   u!   invalid hex string escape ('\%s')i   i   u#   invalid octal string escape ('\%s')(	   u   groupu   simple_escapesu   getu   Noneu
   startswithu   lenu
   ValueErroru   intu   chr(   u   mu   allu   tailu   escu   hexesu   i(    (    u3   /mit/python/lib/python3.0/lib2to3/pgen2/literals.pyu   escape   s"    c             C   sc   |  d } |  d  d  | d k o | d } n |  t  |  t  |   }  t j d t |   S(   Ni    i   u)   \\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3})(   u   lenu   reu   subu   escape(   u   su   q(    (    u3   /mit/python/lib/python3.0/lib2to3/pgen2/literals.pyu
   evalString(   s
    
c              C   sc   x\ t  d  D]N }  t |   } t |  } t |  } | | k o t |  | | |  q q Wd  S(   Ni   (   u   rangeu   chru   repru
   evalStringu   print(   u   iu   cu   su   e(    (    u3   /mit/python/lib/python3.0/lib2to3/pgen2/literals.pyu   test2   s     u   __main__(   u   __doc__u   reu   simple_escapesu   escapeu
   evalStringu   testu   __name__(    (    (    u3   /mit/python/lib/python3.0/lib2to3/pgen2/literals.pyu   <module>   s    

		
		