Ć
Nö9c       sŕ    d  Z  
  d Z  d k Z d k Z  d k T e Z  d e e < e d Z  d e e < 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 d e d  Z / e	 e e e  Z 2 d Z 4 d Z 6 d Z 8 d Z 9 e	 d d  Z ; e	 d < d  Z A e	 d  d! d" d# d$ B d% C d&  Z  E d' Z! F e	 d( d)  Z" G e	 e  e! e"  Z# I e	 e e# e e  Z$ J e e$ Z% M e	 d* e	 d+ d  N d, e	 d- d   Z& O e	 d e e  Z' P e e	 e' e e# e& e  Z( R e) e i* e% e( e e f  \ Z+ Z, Z- Z. T h  e i* e  d+ <e i* e  d- <e- d. <e. d/ <e- d0 <e. d1 <e- d2 <e. d3 <e/ d4 <e/ d5 <Z0 Y d6 Z1 [ d7 e2 f d8     YZ3 ^ d9   Z4 b e4 d:  Z5 Ö e6 d; j o] × d k7 Z7 Ř e8 e7 i9  d j o! Ř e5 e: e7 i9 d  i;  n Ů e5 e7 i< i;  n d S(<   s  Tokenization help for Python programs.

This module exports a function called 'tokenize()' 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) and a "token-eater"
function which is called once for each token found.  The latter function is
passed the token type, a string containing the token, the starting and
ending (row, column) coordinates of the token, and the original line.  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.s2   Ka-Ping Yee, 26 October 1997; patched, GvR 3/30/98N(   s   *s   COMMENTi   s   NLc     s"     d t  i |  d  d Sd  S(   Ns   (s   |s   )(   s   strings   joins   choices(   s   choicess%   /mit/python/lib/python2.0/tokenize.pys   group s    c     s     t  t |   d Sd  S(   Ns   *(   s   applys   groups   choices(   s   choicess%   /mit/python/lib/python2.0/tokenize.pys   any s    c     s     t  t |   d Sd  S(   Ns   ?(   s   applys   groups   choices(   s   choicess%   /mit/python/lib/python2.0/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   [1-9]\d*s   0[jJ]s   [1-9]\d*[jJ]s   [jJ]s   [^'\\]*(?:\\.[^'\\]*)*'s   [^"\\]*(?:\\.[^"\\]*)*"s%   [^'\\]*(?:(?:\\.|'(?!''))[^'\\]*)*'''s%   [^"\\]*(?:(?:\\.|"(?!""))[^"\\]*)*"""s   [rR]?'''s   [rR]?"""s!   [rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*'s!   [rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*"s   \*\*=?s   >>=?s   <<=?s   <>s   !=s   [+\-*/%&|^=<>]=?s   ~s   [][(){}]s   \r?\ns   [:;.,`]s    [rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*s   's    [rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*s   "s   '''s   """s   r'''s   r"""s   R'''s   R"""s   rs   Ri   s
   TokenErrorc      s   [ \ RS(   N(    (    s%   /mit/python/lib/python2.0/tokenize.pys
   TokenError[ s   c 	   sG   ^ | \ } } | \ } } _ 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   ecols%   /mit/python/lib/python2.0/tokenize.pys
   printtoken^ s   c    s1  b c d } } } d t i d t i f \ } } e d d f \ } } f t
 }	 g d g }
 i xci d oXj |    } k | d } l d t |  f \ } } n | o=o | o p t d | f  n q | i |  } r | of s | i d  } } t | t | | |  u | | | f |	 |  v d d f \ } } w t
 }	 n x | o! | d d j o | d d	 j oH y | t | | z | | t |  f |	  { d } | t
 }	 } qc n!  | | }  |	 | }	  qc 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 oP  | t t f | | d j | |  | | f | t |  f |   qc n  | |
 d j o=  |
 i |   | t  | |  | d f | | f |  n  xM  | |
 d j  o7  |
 d  }
  | t! d | | f | | f |  q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* | | | |  nŠ | d j o4 Ş | | d j o t p t+ Ť | | | |  nMŹ | d j o ­ | t | | | |  n Ž | d d d d d d f j o ° t, | } ą | i | |  } ˛ | oE ł | i d  } ´ | | | !} ľ | t | | | | f |  n* ˇ | | f } ¸ | | } š | }	 ş Pn`ť | d d f j p | d  d d d d f j o ˝ | d d j oU ž | | f } ż t, | p t, | d } Ŕ | | d f \ } } Á | }	 Â Pn Ä | t | | | |  nŚ Ĺ | | j o Ć | t- | | | |  ny Ç | d j o Č d } n\ Ę | d  j o Ę | d } n" Ë | d! j o Ë | d } n Ě | t. | | | |  n> Î | t | | Ď | | f | | d f |  Đ | d } qWqc WŇ x< |
 d d Ň r+ } Ó | t! d | d f | d f d  qÖWÔ | t0 d | d f | d f d  d  S("   Ni    s   _s    i   s   EOF in multi-line stringi   s   \
i   s   \
s    s   	s   s   #
s   #s   EOF in multi-line statements   .s   
s   '''s   """s   r'''s   r"""s   R'''s   R"""s   's   "s   r's   r"s   R's   R"s   
s   \s   ([{s   )]}(1   s   lnums   parenlevs	   continueds   strings   letterss   digitss	   namecharss   numcharss   contstrs   needconts   Nones   contlines   indentss   readlines   lines   lens   poss   maxs
   TokenErrors   strstarts   endprogs   matchs   endmatchs   ends
   tokeneaters   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
   tokeneaters   lnums   parenlevs	   continueds	   namecharss   numcharss   contstrs   needconts   contlines   indentss   lines   poss   maxs   endmatchs   ends   columns   pseudomatchs   starts   sposs   eposs   tokens   initials   endprogs   strstarts   indents%   /mit/python/lib/python2.0/tokenize.pys   tokenizeb sŘ   	 


.		

 	     $"
- .	 
' *"
#	3	    	)s   __main__(=   s   __doc__s   __version__s   strings   res   tokens   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
   printtokens   tokenizes   __name__s   syss   lens   argvs   opens   readlines   stdin(    s%   /mit/python/lib/python2.0/tokenize.pys   ?
 sl   	
				!											-u	t !