;
Οβ"Ic            
   @   s₯   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z m Z m Z d d l m Z m	 Z	 d d g Z
 e e Be BZ Gd   d e  Z e d  Z d S(	   u"   Iterator based sre token scanner

i    N(   u   VERBOSEu	   MULTILINEu   DOTALL(   u   BRANCHu
   SUBPATTERNu   Scanneru   patternc             B   s)   |  Ee  Z e d   Z d d d  Z d S(   c       	      C   s  d  g |  _ t j   } | | _ g  } x t |  D] \ } } | j } y5 t j | t | d t j	 | |  f f g  } Wn t
 j k
 o   Yn X| j |  |  j j |  q4 Wt |  d | _ t j | t d  | f f g  } t j |  |  _ d  S(   Ni   (   u   Noneu   actionsu	   sre_parseu   Patternu   flagsu	   enumerateu   patternu
   SubPatternu
   SUBPATTERNu   parseu   sre_constantsu   erroru   appendu   lenu   groupsu   BRANCHu   sre_compileu   compileu   scanner(	   u   selfu   lexiconu   flagsu   su   pu   idxu   tokenu   phraseu
   subpattern(    (    u)   /mit/python/lib/python3.0/json/scanner.pyu   __init__   s"    	 		,	!i    c             c   sό   |  j  j  | |  j } |  j } | } t |  } xΒ |   } | d k o Pn | j   \ }	 }
 | |
 k o Pn | | j } | d k	 o` | | |  \ } } | d k	 o/ | |
 k o" | }
 |  j  j  | |
  j } n | |
 f Vn |
 } q6 d S(   u-   Yield match, end_idx for each match

        N(   u   scanneru   matchu   actionsu   lenu   Noneu   spanu	   lastindex(   u   selfu   stringu   idxu   contextu   matchu   actionsu   lastendu   endu   mu
   matchbeginu   matchendu   actionu   rvalu   next_pos(    (    u)   /mit/python/lib/python3.0/json/scanner.pyu   iterscan&   s&    		N(   u   __name__u
   __module__u   FLAGSu   __init__u   Noneu   iterscan(   u
   __locals__(    (    u)   /mit/python/lib/python3.0/json/scanner.pyu   Scanner   s   
c                s      f d   } | S(   Nc                s"     |  _  t j     |  _ |  S(   N(   u   patternu   reu   compileu   regex(   u   fn(   u   patternu   flags(    u)   /mit/python/lib/python3.0/json/scanner.pyu	   decoratorA   s    	(    (   u   patternu   flagsu	   decorator(    (   u   patternu   flagsu)   /mit/python/lib/python3.0/json/scanner.pyu   pattern@   s    (   u   __doc__u   reu	   sre_parseu   sre_compileu   sre_constantsu   VERBOSEu	   MULTILINEu   DOTALLu   BRANCHu
   SUBPATTERNu   __all__u   FLAGSu   objectu   Scanneru   pattern(    (    (    u)   /mit/python/lib/python3.0/json/scanner.pyu   <module>   s   /