;
ะโ"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  \ } } | j d  p t  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   \u   xi   u!   invalid hex string escape ('\%s')i   i   u#   invalid octal string escape ('\%s')(
   u   groupu
   startswithu   AssertionErroru   simple_escapesu   getu   Noneu   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   s๘   |  j  d  p- |  j  d  p t t |  d  d     |  d } |  d  d  | d k o | d } n |  j |  p$ t t |  t |  d      t |   d t |  k p t  |  t |  t |   }  t j d t |   S(   Nu   'u   "i   i    i   i   u)   \\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3})(   u
   startswithu   AssertionErroru   repru   endswithu   lenu   reu   subu   escape(   u   su   q(    (    u3   /mit/python/lib/python3.0/lib2to3/pgen2/literals.pyu
   evalString(   s    =
4$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    

		
		