,bc@sdZddlZddlTdZdZedZedZedZed Z ie e d fd 6e e d fd 6e e dfd6e e dfd6e e dfd6e e dfd6e e dfd6e e dfd6Z i e efd6e efd 6e efd6eeefgfd6eeefgfd6eeefgfd6eeefgfd6eeefgfd 6eeefgfd!6e efd"6Zied#6ed$6ed%6ed&6ed'6e d(6e!d)6Z"d*fd+YZ#d,fd-YZ$d.fd/YZ%d0Z&d1Z'd2Z(d3Z)d4Z*d5d6Z+d7Z,ed8Z-ed9Z.ed:Z/ee0e1gZ2d;Z3d<e4d=Z5d>Z6d?Z7dS(@sInternal support module for sreiN(t*s .\[{()*+?^$|s*+?{t 0123456789t01234567t0123456789abcdefABCDEFs ss\ass\bs s\fs s\ns s\rs s\ts s\vs\s\\s\As\Bs\ds\Ds\ss\Ss\ws\Ws\ZtitLtmtstxtttutPatterncBs/eZdZddZdZdZRS(cCs1d|_g|_d|_i|_d|_dS(Nii(tflagstopentgroupst groupdictt lookbehind(tself((s/usr/lib/python2.7/sre_parse.pyt__init__Cs     cCs|j}|d|_|dk rr|jj|d}|dk rbtdt|||fn||j|R@RARRJ(((s/usr/lib/python2.7/sre_parse.pyR!Zs  %       t TokenizercBsAeZdZdZddZdZdZdZRS(cCs ||_d|_|jdS(Ni(tstringR;t_Tokenizer__next(RRX((s/usr/lib/python2.7/sre_parse.pyRs  cCs|jt|jkr%d|_dS|j|j}|ddkry|j|jd}Wntk rytdnX||}n|jt||_||_dS(Nis\isbogus escape (end of line)(R;R9RXRtnextt IndexErrorR(Rtchartc((s/usr/lib/python2.7/sre_parse.pyt__nexts    icCs*||jkr&|r"|jndSdS(Nii(RZRY(RR\tskip((s/usr/lib/python2.7/sre_parse.pytmatchs  cCs|j}|j|S(N(RZRY(Rtthis((s/usr/lib/python2.7/sre_parse.pyRs  cCs|j|jfS(N(R;RZ(R((s/usr/lib/python2.7/sre_parse.pyttellscCs|\|_|_dS(N(R;RZ(RR;((s/usr/lib/python2.7/sre_parse.pytseeks(RR RRYR`RRbRc(((s/usr/lib/python2.7/sre_parse.pyRWs     cCsBd|kodknpAd|ko3dknpA|dkS(NR3tztAtZt_((R\((s/usr/lib/python2.7/sre_parse.pytisidentscCsd|kodkSS(Nt0t9((R\((s/usr/lib/python2.7/sre_parse.pytisdigitscCsKt|dstSx0|dD]$}t| rt| rtSqWtS(Nii(RhtFalseRktTrue(RR\((s/usr/lib/python2.7/sre_parse.pytisnames cCstj|}|r|Stj|}|rB|dtkrB|SyO|dd!}|dkrx5|jtkrt|dkr||j}qaW|d}t|dkrtdtd|nt t |dd @fS|t krHx5|jt kr&t|dkr&||j}qW|d}t t |d d @fS|t krjtdt|nt|dkrt t |dfSWntk rnXtdt|dS( NiiiRisbogus escape: %ss\iii(tESCAPESRt CATEGORIESR)RZt HEXDIGITSR9RRRDtintt OCTDIGITStDIGITStordt ValueError(tsourcetescapeR?R]((s/usr/lib/python2.7/sre_parse.pyt _class_escapes6  $  $   cCsjtj|}|r|Stj|}|r2|Sy |dd!}|dkrx5|jtkrt|dkr||j}qQWt|dkrtntt|ddd@fS|dkrx5|jt krt|dkr||j}qWtt|ddd@fS|t kr|jt kr||j}|dt kr|dt kr|jt kr||j}tt|ddd@fSnt|d}||j kr|j |st d n|jrd dl}|jd tnt|fStnt|dkr>tt|dfSWntk rRnXt d t|dS( NiiRiiiRiiscannot refer to open groupis;group references in lookbehind assertions are not supportedsbogus escape: %s(RpRRoRZRqR9RvRDRrRsRtRRRRtwarningstwarntRuntimeWarningtGROUPREFRuR(RwRxtstateR?R]tgroupRz((s/usr/lib/python2.7/sre_parse.pyt_escape sP  $  $          ic Csg}|j}|j}xY|t|||dr@qn|sJPn|j sc|ddrgPqtdqWt|dkr|dSt|}|j}xxd}xj|D]=} | sPn|dkr| d}q| d|krPqqWx|D] } | d=qW||qPqWxz|D]0} t| dksQ| ddtkr%Pq%q%Wg} | j} x|D]} | | dqoW|t | f|S|jt d|ff|S(Nt|t)ispattern not properly closedi( RR`t_parseRZRR9R!RRDR)R*( RwR~tnestedtitemst itemsappendt sourcematcht subpatterntsubpatternappendtprefixtitemtsett setappend((s/usr/lib/python2.7/sre_parse.pyt _parse_sub=sR             &  cCst||}|jdrKt||}|jdrQtdqQnd}|jry|jdd rytdnt|}|jt|||ff|S(NRs/conditional backref with more than two branchesRispattern not properly closed(RR`RRRZR!RR-(RwR~R4R5R6R((s/usr/lib/python2.7/sre_parse.pyt_parse_sub_condxs  s|)s=!smissing group namesbad character in group name %rt=Rs&bad character in backref group name %rsunknown group name: {0!r}s;group references in lookbehind assertions are not supportedsunexpected end of patternsunknown specifier: ?P%st:sunbalanced parenthesiss syntax errorsbad character in group namesunknown extensiont$s parser error(Ns (ii(6R!RRR`R9t_PATTERNENDERSt _ASSERTCHARSt_LOOKBEHINDASSERTCHARSt _REPEATCODESRZRR tSRE_FLAG_VERBOSEt WHITESPACEt SPECIAL_CHARSRDRutNEGATERyRR)RCREt REPEAT_CHARSRIRbRtRcRrt OverflowErrortATRGRHRBRnRtformatRRzR{R|R}RtASSERTt ASSERT_NOTRvtFLAGSRRRRNt AT_BEGINNINGtAT_ENDR("RwR~RRt sourcegetRt_lent PATTERNENDERSt ASSERTCHARStLOOKBEHINDASSERTCHARSRSRaRRtstarttcode1tcode2RPRQRKRLthereRRRR4R\RtmsgRztdirtptcondnameR?((s/usr/lib/python2.7/sre_parse.pyRs                            &:                 -                                                                     icCst|}|dkr$t}n||_||_t||d}|j}|dkrltdn|r~tdn|t@ r|j jt@rt ||j jS|t @r|j n|S(NiRsunbalanced parenthesiss-bogus characters at end of regular expression( RWRR R tstrRRRRR"tparsetSRE_FLAG_DEBUGR,(RR R"RwRttail((s/usr/lib/python2.7/sre_parse.pyRs            cCst|}|j}g}|j}||d}|d }t|tdkr^t}nt}x|} | dkrPn| r"| ddkr"| dd!} | dkrd} |jdr xB|} | dkrtd n| d krPn| | } qWn| std ny(t | } | dkrBtd nWnit k rt | sktd ny|j | } Wqt k rdj| }t|qXnX|t| fq,| dkr0|jtkr | |} |jtkr | |} q n||t | ddd@q,| tkrt}|jtkr| |} | tkr| dtkr|jtkr| |} t}||t | ddd@qn|s|tt | dfqq,y|t| d} Wnt k rnX|| qg|| qgWd}g}|j}dgt|}xG|D]?\} }| tkr|||fn |||<|d}q_W||fS(NcSsM|r9|ddtkr9t|dd|f|d sn          b!   1 ;     8 X