‡Æ
Nö9c       s8  d  Z  d Z d k Z d k Z d k Te 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 d Z d Z d Z d Z e	 d d ƒ Z e	 d d ƒ Z e	 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	 d* e	 d+ d ƒ d, e	 d- d ƒ ƒ Z& e	 d e e ƒ Z' e e	 e' e e# e& e ƒ Z( e) e i* e% e( e e f ƒ \ Z+ Z, Z- Z. 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 d6 Z1 d7 e2 f d8 „  ƒ  YZ3 d9 „  Z4 e4 d: „ Z5 e6 d; j oQ 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 	   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   ecols%   /mit/python/lib/python2.0/tokenize.pys
   printtoken^ s   c    sê  d } } } t i d t i f \ } } d d f \ } } t
 }	 d g }
 x=d o5|  ƒ  } | d } d t | ƒ f \ } } | o| o t d | f ‚ n | i | ƒ } | oW | i d ƒ } } | t | | |  | | | f |	 | ƒ d d f \ } } t
 }	 n| | o! | d d j o | d d	 j o9 | t | | | | t | ƒ f |	 ƒ d } t
 }	 qN n | | } |	 | }	 qN 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 oG | t t f | | d j | | | | f | t | ƒ f | ƒ qN n | |
 d j o7 |
 i | ƒ | t  | |  | d f | | f | ƒ n xD | |
 d j  o1 |
 d  }
 | t! d | | f | | f | ƒ qíWn( | 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 o. | | d j o t p t+ | | | | ƒ nó| d j o | t | | | | ƒ nÌ| d d d d d d f j o€ t, | } | i | | ƒ } | o< | i d ƒ } | | | !} | t | | | | f | ƒ n | | f } | | } | }	 Pn-| d d f j p | d  d d d d f j or | d d j oF | | f } t, | p t, | d } | | d f \ } } | }	 Pn | t | | | | ƒ n‹ | | j o | t- | | | | ƒ nd | d j o
 d } nM | d  j o | d } n | d! j o | d } n | t. | | | | ƒ n5 | t | | | | f | | d f | ƒ | d } q_WqN Wx6 |
 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Ø    	 	

+

     
 !* + $'
 
0
   &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   


				
		
*r	t	 