e fz@sdZddlTddlmZdZdZedZedZedZ ed Z ie e d fd 6e e d fd 6e e dfd6e e dfd6e e dfd6e e dfd6e e dfd6e e dfd6Z i eefd6eefd 6eefd6eeefgfd6eeefgfd6eeefgfd6eeefgfd6eeefgfd 6eeefgfd!6eefd"6Zied#6ed$6ed%6ed&6e d'6e!d(6e"d)6e#d*6Z$Gd+d,d,Z%Gd-d.d.Z&Gd/d0d0Z'd1d2Z(d3d4Z)d5d6Z*d7d8Z+d9d:Z,d;d<d=Z-d>d?Z.ed@Z/edAZ0edBZ1ee2e3gZ4dCdDZ5dEdFZ6ddGdHdIZ7dJdKZ8dLdMZ9dGS)NzInternal support module for sre)*) MAXREPEATz .\[{()*+?^$|z*+?{ 0123456789Z01234567Z0123456789abcdefABCDEFz z\az\b z\f z\n z\r z\t z\v\z\\z\Az\Bz\dz\Dz\sz\Sz\wz\Wz\ZiLmsxatuc@sCeZdZddZdddZddZdd ZdS) PatterncCs1d|_g|_d|_i|_d|_dS)Nr)flagsopengroups groupdict lookbehind)selfr./opt/alt/python34/lib64/python3.4/sre_parse.py__init__Cs     zPattern.__init__NcCs|j}|d|_|dk ru|jj|d}|dk retdt|||fn||j|)rrrErFrGrrrr_parse_sub_conds rz|)z=!zmissing group namezbad character in group name %r=rz&bad character in backref group name %rzunknown group name: {0!r}z;group references in lookbehind assertions are not supportedzunexpected end of patternzunknown specifier: ?P%s:zunbalanced parenthesisz syntax errorzbad character in group namezunknown extension$z parser error)Nr)rrrrr)5r.r#r rsrI_PATTERNENDERS _ASSERTCHARS_LOOKBEHINDASSERTCHARS _REPEATCODESrlrSRE_FLAG_VERBOSE WHITESPACE SPECIAL_CHARSrUrNEGATErr!r:rTrV REPEAT_CHARSrr{rr|r OverflowErrorATrXrYrS isidentifierrformatrrrrrrASSERT ASSERT_NOTrFLAGSr'rr)r^ AT_BEGINNINGAT_ENDr)"rrrr sourcegetr_len PATTERNENDERS ASSERTCHARSLOOKBEHINDASSERTCHARSrcrtrrstartcode1code2r`rar[r\hererrr$rEror%msgrdirpcondnamerOrrrrs                         &:                -                                                       rcCs_t|trB|t@s&|tO}q[|t@r[tdq[n|t@r[tdn|S)Nz(ASCII and UNICODE flags are incompatiblez+can't use UNICODE flag with a bytes pattern)r?rhSRE_FLAG_ASCIISRE_FLAG_UNICODEr)srcrrrr fix_flagss    rNcCst|}|dkr$t}n||_||_t||d}t||jj|j_|j}|dkrtdn|rtdn|t @r|j n|t @ r|jjt @rt ||jjS|S)Nrrzunbalanced parenthesisz-bogus characters at end of regular expression) rgrrrhrrr/r r!SRE_FLAG_DEBUGr=rparse)rhrr/rrtailrrrrs"         rc snt|}|j}gggj}fdd}x|}|dkrdPn|ddkr|d}|dkrd}|jdrxE|} | dkrtd n| d krPn|| 7}qWn|std ny+t|} | dkr&td nWnntk r|jsRtd ny|j|} Wn-t k rdj |} t | YnXYnX|| q|dkr|j t kr||7}|j t kr||7}qn|tt|dddd@q|tkrd} |j tkr||7}|t kr|dt kr|j t kr||7}d} |tt|dddd@qn| s|t|ddqqytt|d}Wnt k rYnX||qK||qKWr?jdjnt|tsdddDnfS)NcsVr,jdjdd=njt|fjddS)Nr3)r#joinrI)rK)rliteralliteralsrraddgroup(s z parse_template..addgrouprr rgr3rzunterminated group namerzmissing group nameznegative group numberzbad character in group namezunknown group name: {0!r}rrrFrRTcSs1g|]'}|dkrdn |jdqS)Nzlatin-1)encode).0rrrr ls z"parse_template..)rgr r#rsr!rrr groupindexKeyErrorrrnrlrrmrrrr?rh) rr/rsgetlappendrrtrpr$rorKrisoctalr)rrrrparse_templates                  *   -   rc Cs|j}|jdd}|\}}|dd}yJxC|D];\}}||||<}|dkrBtdqBqBWWntk rtdYnX|j|S)Nrzunmatched groupzinvalid group reference)rrjr!rnr) templatersrseprrrKrrrrrexpand_templateos    r):__doc__ sre_constants_srerrrrrrrrrUrrrAT_BEGINNING_STRING AT_BOUNDARYAT_NON_BOUNDARYr:rWCATEGORY_DIGITCATEGORY_NOT_DIGITCATEGORY_SPACECATEGORY_NOT_SPACE CATEGORY_WORDCATEGORY_NOT_WORD AT_END_STRINGrSRE_FLAG_IGNORECASESRE_FLAG_LOCALESRE_FLAG_MULTILINESRE_FLAG_DOTALLrrSRE_FLAG_TEMPLATErrrr.rgrrrrrrrrrrrXrYrrrrrrrrrr sr         e4   * =;     7  P