� {fc@s�dZddlZi dd6dd6dd6d d 6d d 6d d6dd6dd6dd6dd6Zd�Zd�Zd�Zedkr�e�ndS(s<Safely evaluate Python string literals without using eval().i����Nstastbs tfs tns trs tts tvt't"s\cCs�|jdd�\}}tj|�}|dk r7|S|jd�r�|d}t|�dkrutd|��nyt|d�}Wq�tk r�td|��q�Xn7yt|d�}Wn!tk r�td|��nXt|�S( Niitxis!invalid hex string escape ('\%s')iis#invalid octal string escape ('\%s')( tgrouptsimple_escapestgettNonet startswithtlent ValueErrortinttchr(tmtallttailtescthexesti((s./usr/lib64/python2.7/lib2to3/pgen2/literals.pytescapes"    cCsX|d}|d |dkr+|d}n|t|�t|� !}tjdt|�S(Niis)\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3})(RtretsubR(tstq((s./usr/lib64/python2.7/lib2to3/pgen2/literals.pyt evalString(s   cCs_xXtd�D]J}t|�}t|�}t|�}||kr |G|G|G|GHq q WdS(Ni(trangeRtreprR(RtcRte((s./usr/lib64/python2.7/lib2to3/pgen2/literals.pyttest2s     t__main__(t__doc__RR RRR#t__name__(((s./usr/lib64/python2.7/lib2to3/pgen2/literals.pyts