-í
ç¶<c    	  sV  d  Z  d k l Z d Z d Z d k Z d k Z d k Td k Z g  i Z	 e
 e ƒ D]% Z e d d j o e	 e ƒ n qU [	 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 d Z d Z e e d e ƒ e e ƒ Z d Z d Z d Z d Z e e e e ƒ Z 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! d Z" d Z# d Z$ d  Z% e d! d" ƒ Z& e d# d$ ƒ Z' e d% d& d' d( d) d* d+ d, ƒ Z( d- Z) e d. d/ ƒ Z* e e( e) e* ƒ Z+ e e! e+ e' e ƒ Z, e e, Z- e d0 e d1 d ƒ d2 e d3 d ƒ ƒ Z. e d e e& ƒ Z/ e e e/ e! e+ e. e ƒ Z0 e1 e i2 e- e0 e$ e% f ƒ \ Z3 Z4 Z5 Z6 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 dJ Z9 dK e: f dL „  ƒ  YZ; dM e: f dN „  ƒ  YZ< dO „  Z= e= dP „ Z> dQ „  Z? dR „  Z@ eA dS j oQ 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  Z RS(   N(   s   __name__s
   __module__(    (    (    s   /usr/lib/python2.2/tokenize.pys
   TokenErrort s    s   StopTokenizingc     s   t  Z RS(   N(   s   __name__s
   __module__(    (    (    s   /usr/lib/python2.2/tokenize.pys   StopTokenizingv s    c 	  sA   | \ } } | \ } } 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   s(   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   #s  d } } } t i d d f \ } } d d f \ } } t	 } d g } xxd op|  ƒ  } | d } d t | ƒ f \ } } | oÿ | o t d | f ‚ n | i | ƒ } | oT | i d ƒ } }	 t | | |	  | | |	 f | | f Vd d f \ } } t	 } nw | o | d d j o | d	 d
 j o6 t | | | | t | ƒ f | f Vd } t	 } qK n | | } | | } qK nÃ| d j o | o†| o Pn d } x~ | | j  op | | d j o | d } nD | | d j o | t d t } n | | d j o
 d } n P| d } q®W| | j o Pn | | d j oD t t f | | d j | | | | f | t | ƒ f | f VqK n | | d j o4 | i | ƒ t | |  | d f | | f | f Vn x? | | d j  o- | d  } t d | | f | | f | f VqÛWn( | o t d | d f f ‚ n d } xv| | j  oh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 VnK| 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 | | ƒ } | o9 | i d ƒ } | |
 | !} t | | | | f | f Vn | |
 f } | |
 } | } Png| 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 oU | |
 f } t* | p t* | d p t* | d( } | |
 d f \ } } | } Pn t | | | | f Vn… | | j o t+ | | | | f Vna | d; j o
 d } nJ | d< j o | d } n | d= j o | d } n t, | | | | f Vn2 t | | | | f | | d f | f V| d } qHWqK Wx1 | d D]% } t d | d f | d f d f VqÎWt. d | d f | d f d f Vd  S(>   Ni    s   _s
   0123456789s    i   s   EOF in multi-line stringiþÿÿÿs   \
iýÿÿÿs   \
s    s   	s   s   #
s   #iÿÿÿÿs   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Î    	 	
%
)#

     
 =' 
( $'+C

e(
  ' #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„   	  5



			
		
*ð			{	 