ó v®¸Qc@s“dZddlZi dd6dd6dd6d d 6d d 6d d6dd6dd6dd6dd6Zd„Zd„Zd„Zedkreƒ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,/sys/lib/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,/sys/lib/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,/sys/lib/python2.7/lib2to3/pgen2/literals.pyttest2s     t__main__(t__doc__RR RRR#t__name__(((s,/sys/lib/python2.7/lib2to3/pgen2/literals.pyts