Ñò
mÈKc        	   @   s¨   d  Z  d d k Z d d k Z d d k Z d d k Z d d k l Z l Z l Z d d k l Z l	 Z	 d d g Z
 e e Be BZ d e f d „  ƒ  YZ e d „ Z d S(	   s"   Iterator based sre token scanner

iÿÿÿÿN(   t   VERBOSEt	   MULTILINEt   DOTALL(   t   BRANCHt
   SUBPATTERNt   Scannert   patternc           B   s#   e  Z e d  „ Z d d d „ Z RS(   c   	      C   s  d  g |  _ t i ƒ  } | | _ g  } x‘ t | ƒ D]ƒ \ } } | i } y5 t i | t | d t i	 | | ƒ f f g ƒ } Wn t
 i j
 o
 ‚  n X| i | ƒ |  i i | ƒ q4 Wt | ƒ d | _ t i | t d  | f f g ƒ } t i | ƒ |  _ d  S(   Ni   (   t   Nonet   actionst	   sre_parset   Patternt   flagst	   enumerateR   t
   SubPatternR   t   parset   sre_constantst   errort   appendt   lent   groupsR   t   sre_compilet   compilet   scanner(	   t   selft   lexiconR   t   st   pt   idxt   tokent   phraset
   subpattern(    (    s"   /usr/lib/python2.6/json/scanner.pyt   __init__   s"    	 		,!i    c         c   s  |  i  i  | | ƒ i } |  i } | } t | ƒ } xË t oÃ | ƒ  } | d j o Pn | i ƒ  \ }	 }
 | |
 j o Pn | | i } | d j	 o` | | | ƒ \ } } | d j	 o/ | |
 j o" | }
 |  i  i  | |
 ƒ i } n | |
 f Vn |
 } q6 Wd S(   s-   Yield match, end_idx for each match

        N(   R   t   matchR   R   t   TrueR   t   spant	   lastindex(   R   t   stringR   t   contextR    R   t   lastendt   endt   mt
   matchbegint   matchendt   actiont   rvalt   next_pos(    (    s"   /usr/lib/python2.6/json/scanner.pyt   iterscan&   s(    	 	N(   t   __name__t
   __module__t   FLAGSR   R   R.   (    (    (    s"   /usr/lib/python2.6/json/scanner.pyR      s   c            s   ‡  ‡ f d †  } | S(   Nc            s"   ˆ  |  _  t i ˆ  ˆ ƒ |  _ |  S(   N(   R   t   reR   t   regex(   t   fn(   R   R   (    s"   /usr/lib/python2.6/json/scanner.pyt	   decoratorA   s    	(    (   R   R   R5   (    (   R   R   s"   /usr/lib/python2.6/json/scanner.pyR   @   s    (   t   __doc__R2   R	   R   R   R    R   R   R   R   t   __all__R1   t   objectR   R   (    (    (    s"   /usr/lib/python2.6/json/scanner.pyt   <module>   s   /