ó
v®¸Qc           @   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 r e ƒ  n  d S(   s<   Safely evaluate Python string literals without using eval().iÿÿÿÿNs   t   as   t   bs   t   fs   
t   ns   t   rs   	t   ts   t   vt   't   "s   \c         C   sð   |  j  d d ƒ \ } } t j | ƒ } | d  k	 r7 | S| j d ƒ r¯ | d } t | ƒ d k  ru t d | ƒ ‚ n  y t | d ƒ } Wqæ t k
 r« t d | ƒ ‚ qæ Xn7 y t | d ƒ } Wn! t k
 rå t d | ƒ ‚ n Xt | ƒ S(	   Ni    i   t   xi   s!   invalid hex string escape ('\%s')i   i   s#   invalid octal string escape ('\%s')(	   t   groupt   simple_escapest   gett   Nonet
   startswitht   lent
   ValueErrort   intt   chr(   t   mt   allt   tailt   esct   hexest   i(    (    s,   /sys/lib/python2.7/lib2to3/pgen2/literals.pyt   escape   s"    
c         C   sX   |  d } |  d  | d k r+ | d } n  |  t  | ƒ t  | ƒ !}  t j d t |  ƒ S(   Ni    i   s)   \\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3})(   R   t   ret   subR   (   t   st   q(    (    s,   /sys/lib/python2.7/lib2to3/pgen2/literals.pyt
   evalString(   s
    
c          C   s_   xX t  d ƒ D]J }  t |  ƒ } t | ƒ } t | ƒ } | | k r |  G| G| G| GHq q Wd  S(   Ni   (   t   rangeR   t   reprR   (   R   t   cR   t   e(    (    s,   /sys/lib/python2.7/lib2to3/pgen2/literals.pyt   test2   s    t   __main__(   t   __doc__R   R   R   R   R#   t   __name__(    (    (    s,   /sys/lib/python2.7/lib2to3/pgen2/literals.pyt   <module>   s    

		
		