Ñò §ÚêLc @s¨dZddkZddkZddkZddkZddklZlZlZddklZl Z ddgZ eeBeBZ de fd„ƒYZ e d„ZdS( s"Iterator based sre token scanner iÿÿÿÿN(tVERBOSEt MULTILINEtDOTALL(tBRANCHt SUBPATTERNtScannertpatterncBs#eZed„Zddd„ZRS(c Csdg|_tiƒ}||_g}x‘t|ƒD]ƒ\}}|i}y5ti|t|dti ||ƒffgƒ}Wnt i j o ‚nX|i |ƒ|ii |ƒq4Wt |ƒd|_ti|td|ffgƒ}ti|ƒ|_dS(Ni(tNonetactionst sre_parsetPatterntflagst enumerateRt SubPatternRtparset sre_constantsterrortappendtlentgroupsRt sre_compiletcompiletscanner( tselftlexiconR tstptidxttokentphraset subpattern((s$/usr/lib64/python2.6/json/scanner.pyt__init__s"      , !iccs|ii||ƒi}|i}|}t|ƒ}xËtoÃ|ƒ}|djoPn|iƒ\} } || joPn||i} | dj o`| ||ƒ\} } | dj o/| | jo"| } |ii|| ƒi}n| | fVn| }q6WdS(s-Yield match, end_idx for each match N(RtmatchRRtTrueRtspant lastindex(RtstringRtcontextR Rtlastendtendtmt matchbegintmatchendtactiontrvaltnext_pos((s$/usr/lib64/python2.6/json/scanner.pytiterscan&s(       N(t__name__t __module__tFLAGSRRR.(((s$/usr/lib64/python2.6/json/scanner.pyRs cs‡‡fd†}|S(Ncs"ˆ|_tiˆˆƒ|_|S(N(RtreRtregex(tfn(RR (s$/usr/lib64/python2.6/json/scanner.pyt decoratorAs ((RR R5((RR s$/usr/lib64/python2.6/json/scanner.pyR@s(t__doc__R2R RRRRRRRt__all__R1tobjectRR(((s$/usr/lib64/python2.6/json/scanner.pyts     /