-
<c    	  s"    d  Z    d k l Z  d Z  d Z  d k Z d k Z   d k T" d k Z # g  i Z	 e
 e  D# ]( Z # e d d j o e	 e  n qp [	 d d	 d
 g Z $ [ & e Z ' d e e <( e d Z ) d
 e e <* e d 7Z , d   Z - d   Z . d   Z 0 d Z 1 d Z 2 e e d e  e e  Z 3 d Z 5 d Z 6 d Z 7 d Z 8 e e e e  Z 9 d Z : e d d  e e  Z ; d e Z < e e e  Z = e d e d  Z  > e e  e e  Z! A d Z" C d Z# E d Z$ G d  Z% H e d! d"  Z& J e d# K d$  Z' P e d% d& d' d( d) Q d* R d+ S d,  Z( U d- Z) V e d. d/  Z* W e e( e) e*  Z+ Y e e! e+ e' e  Z, Z e e, Z- ] e d0 e d1 d  _ d2 e d3 d   Z. a e d e e&  Z/ b e e e/ e! e+ e. e  Z0 d e1 e i2 e- e0 e$ e% f  \ Z3 Z4 Z5 Z6 f h  e i2 e"  d1 <e i2 e#  d3 <e5 d4 <e6 d5 <e5 d6 <e6 d7 <e5 d8 <e6 d9 <e5 d: <e6 d; <e5 d< <e6 d= <e5 d> <e6 d? <e5 d@ <e6 dA <e5 dB <e6 dC <e5 dD <e6 dE <e7 dF <e7 dG <e7 dH <e7 dI <Z8 r dJ Z9 t dK e: f dL     YZ; v dM e: f dN     YZ< x dO   Z= | e= dP  Z>  dQ   Z?  dR   Z@ eA dS j o] d kB ZB eC eB iD  d j o! e> eE eB iD d  iF  n e> eB iG iF  n d S(T   s  Tokenization help for Python programs.

generate_tokens(readline) is a generator that breaks a stream of
text into Python tokens.  It accepts a readline-like method which is called
repeatedly to get the next line of input (or "" for EOF).  It generates
5-tuples with these members:

    the token type (see token.py)
    the token (a string)
    the starting (row, column) indices of the token (a 2-tuple of ints)
    the ending (row, column) indices of the token (a 2-tuple of ints)
    the original line (string)

It is designed to match the working of the Python tokenizer exactly, except
that it produces COMMENT tokens for comments and gives type OP for all
operators

Older entry points
    tokenize_loop(readline, tokeneater)
    tokenize(readline, tokeneater=printtoken)
are the same, except instead of generating tokens, tokeneater is a callback
function to which the 5 fields described above are passed as 5 arguments,
each time a new token is found.(   s
   generatorss   Ka-Ping Yee <ping@lfw.org>s@   GvR, ESR, Tim Peters, Thomas Wouters, Fred Drake, Skip MontanaroN(   s   *i    s   _s   COMMENTs   tokenizes   NLi   i   c    s   , , d d i  |   d Sd  S(   Ns   (s   |s   )(   s   joins   choices(   s   choices(    (    s   /usr/lib/python2.2/tokenize.pys   group, s    c    s   - - t  t |   d Sd  S(   Ns   *(   s   applys   groups   choices(   s   choices(    (    s   /usr/lib/python2.2/tokenize.pys   any- s    c    s   . . t  t |   d Sd  S(   Ns   ?(   s   applys   groups   choices(   s   choices(    (    s   /usr/lib/python2.2/tokenize.pys   maybe. s    s   [ \f\t]*s	   #[^\r\n]*s   \\\r?\ns   [a-zA-Z_]\w*s   0[xX][\da-fA-F]*[lL]?s   0[0-7]*[lL]?s   [1-9]\d*[lL]?s   [eE][-+]?\d+s   \d+\.\d*s   \.\d+s   \d+s   \d+[jJ]s   [jJ]s   [^'\\]*(?:\\.[^'\\]*)*'s   [^"\\]*(?:\\.[^"\\]*)*"s%   [^'\\]*(?:(?:\\.|'(?!''))[^'\\]*)*'''s%   [^"\\]*(?:(?:\\.|"(?!""))[^"\\]*)*"""s   [uU]?[rR]?'''s   [uU]?[rR]?"""s&   [uU]?[rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*'s&   [uU]?[rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*"s   \*\*=?s   >>=?s   <<=?s   <>s   !=s   //=?s   [+\-*/%&|^=<>]=?s   ~s   [][(){}]s   \r?\ns   [:;.,`]s%   [uU]?[rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*s   's%   [uU]?[rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*s   "s   '''s   """s   r'''s   r"""s   u'''s   u"""s   ur'''s   ur"""s   R'''s   R"""s   U'''s   U"""s   uR'''s   uR"""s   Ur'''s   Ur"""s   UR'''s   UR"""s   rs   Rs   us   Ui   s
   TokenErrorc     s   t t  Z t RS(   N(   s   __name__s
   __module__(    (    (    s   /usr/lib/python2.2/tokenize.pys
   TokenErrort s   	 s   StopTokenizingc     s   v t  Z v RS(   N(   s   __name__s
   __module__(    (    (    s   /usr/lib/python2.2/tokenize.pys   StopTokenizingv s   	 c 	  sG   x | \ } } | \ } } y d | | | | t |  t |  f GHd  S(   Ns   %d,%d-%d,%d:	%s	%s(   s   srows   scols   erows   ecols   tok_names   types   reprs   token(	   s   types   tokens   .4s   .6s   lines   srows   scols   erows   ecol(    (    s   /usr/lib/python2.2/tokenize.pys
   printtokenx s   c   s:   | } y ~ t  |  |  Wn  t j
 o
  n Xd  S(   N(   s   tokenize_loops   readlines
   tokeneaters   StopTokenizing(   s   readlines
   tokeneater(    (    s   /usr/lib/python2.2/tokenize.pys   tokenize| s   c   s4     x' t  |   D ] }  t | |  q Wd  S(   N(   s   generate_tokenss   readlines
   token_infos   applys
   tokeneater(   s   readlines
   tokeneaters
   token_info(    (    s   /usr/lib/python2.2/tokenize.pys   tokenize_loop s    	c   #sR    d } } }  t i d d f \ } }  d d f \ } }  t	 }  d g }  x d o |    }  | d }  d t |  f \ } }  | o/ | o  t d | f  n  | i |  }  | o`  | i d  } }	  t | | |	  | | |	 f | | f V d d f \ } }  t	 } n  | o | d d j o | d	 d
 j oB  t | | | | t |  f | f V d }  t	 }  q` n!  | | }  | | }  q` n | d j o | o | o  Pn  d }  x  | | j  o  | | d j o  | d } nS  | | d j o  | t d t } n&  | | d j o  d } n  P | d } qW | | j o  Pn  | | d j oJ  t t f | | d j | | | | f | t |  f | f V q` n  | | d j o:  | i |   t | |  | d f | | f | f Vn  xH  | | d j  o3  | d  }  t d | | f | | f | f VqtWn1  | o  t d | d f f  n  d }  x | | j  o t  i | |  }  | o | i" d  \ }
 }	  | |
 f | |	 f |	 f \ } } }  | |
 |	 !| |
 f \ } }  | | j p | d j o
 | d j o  t( | | | | f Vn | d j o.  | d j o t p t) | | | | f Vn | d j o  t | | | | f Vn{ | d d d d d d d d d d d d d  d! d" d# d$ d% f j o  t* | }  | i | |  }  | oB  | i d  }  | |
 | !}  t | | | | f | f Vn*  | |
 f }  | |
 }  | }  Pn | d& d' f j pO | d(  d) d* d+ d, d- d. d/ d0 f j p& | d1  d2 d3 d4 d5 d6 d7 d8 d9 f j o  | d d: j od  | |
 f }  t* | p t* | d p t* | d( }  | |
 d f \ } }  | }  Pn  t | | | | f Vn  | | j o  t+ | | | | f Vnv  | d; j o  d } nY  | d< j o  | d } n"  | d= j o  | d } n  t, | | | | f Vn8  t | | | | f | | d f | f V | d } qWq` W x7 | d D ]( }  t d | d f | d f d f VqW t. d | d f | d f d f Vd  S(>   Ni    s   _s
   0123456789s    i   s   EOF in multi-line stringis   \
is   \
s    s   	s   s   #
s   #is   EOF in multi-line statements   .s   
s   '''s   """s   r'''s   r"""s   R'''s   R"""s   u'''s   u"""s   U'''s   U"""s   ur'''s   ur"""s   Ur'''s   Ur"""s   uR'''s   uR"""s   UR'''s   UR"""s   's   "i   s   r's   r"s   R's   R"s   u's   u"s   U's   U"i   s   ur's   ur"s   Ur's   Ur"s   uR's   uR"s   UR's   UR"s   
s   \s   ([{s   )]}(/   s   lnums   parenlevs	   continueds   strings   ascii_letterss	   namecharss   numcharss   contstrs   needconts   Nones   contlines   indentss   readlines   lines   lens   poss   maxs
   TokenErrors   strstarts   endprogs   matchs   endmatchs   ends   STRINGs
   ERRORTOKENs   columns   tabsizes   NLs   COMMENTs   appends   INDENTs   DEDENTs
   pseudoprogs   pseudomatchs   spans   starts   sposs   eposs   tokens   initials   NUMBERs   NEWLINEs   endprogss   NAMEs   OPs   indents	   ENDMARKER(   s   readlines   initials   lnums   poss	   namecharss   lines   eposs   needconts   tokens   ends   starts   strstarts   maxs   endmatchs   sposs   indentss   contlines   indents	   continueds   pseudomatchs   endprogs   columns   contstrs   numcharss   parenlev(    (    s   /usr/lib/python2.2/tokenize.pys   generate_tokens s   	 


(,&		

 	     @
* +	 
' *.F
 	h+	  * 	&s   __main__(H   s   __doc__s
   __future__s
   generatorss
   __author__s   __credits__s   strings   res   tokens   appends   _[1]s   dirs   xs   __all__s   N_TOKENSs   COMMENTs   tok_names   NLs   groups   anys   maybes
   Whitespaces   Comments   Ignores   Names	   Hexnumbers	   Octnumbers	   Decnumbers	   Intnumbers   Exponents
   Pointfloats   Expfloats   Floatnumbers
   Imagnumbers   Numbers   Singles   Doubles   Single3s   Double3s   Triples   Strings   Operators   Brackets   Specials   Funnys
   PlainTokens   Tokens   ContStrs   PseudoExtrass   PseudoTokens   maps   compiles	   tokenprogs
   pseudoprogs   single3progs   double3progs   Nones   endprogss   tabsizes	   Exceptions
   TokenErrors   StopTokenizings
   printtokens   tokenizes   tokenize_loops   generate_tokenss   __name__s   syss   lens   argvs   opens   readlines   stdin(9   s   Funnys   PseudoTokens   Exponents   Floatnumbers   tokenize_loops   PseudoExtrass   N_TOKENSs
   PlainTokens   syss   endprogss   Double3s   anys   Names   COMMENTs   __credits__s   NLs   Strings   __all__s
   TokenErrors   Singles
   printtokens	   Intnumbers   res	   Octnumbers   tabsizes	   tokenprogs   tokenizes
   generatorss   Single3s   strings
   Imagnumbers   Doubles	   Decnumbers
   __author__s   Ignores   Tokens   Brackets   ContStrs   generate_tokenss
   pseudoprogs   groups
   Pointfloats   Comments	   Hexnumbers   maybes   double3progs   single3progs   Numbers   _[1]s   Expfloats   tokens   StopTokenizings   Triples   Operators   xs
   Whitespaces   Special(    (    s   /usr/lib/python2.2/tokenize.pys   ? s   		
 	 8			!											-	{ !