;
Ðâ"Ic               @   s{   d  d l  m Z m Z m Z Gd „  d e j ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d	 e ƒ Z	 d
 d „ Z
 d S(   i   (   u   grammaru   tokenu   tokenizec             B   s   |  Ee  Z d  S(   N(   u   __name__u
   __module__(   u
   __locals__(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   PgenGrammar   s   
u   PgenGrammarc             B   s¶   |  Ee  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d S(   c             C   s¤   d  } | d  k o t | ƒ } | j } n | |  _ | |  _ t j | j ƒ |  _ |  j	 ƒ  |  j
 ƒ  \ |  _ |  _ | d  k	 o | ƒ  n i  |  _ |  j ƒ  d  S(   N(   u   Noneu   openu   closeu   filenameu   streamu   tokenizeu   generate_tokensu   readlineu	   generatoru   gettokenu   parseu   dfasu   startsymbolu   firstu   addfirstsets(   u   selfu   filenameu   streamu   close_stream(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   __init__   s    		
	c          
   C   s  t  ƒ  } t |  j j ƒ  ƒ } | j ƒ  | j |  j ƒ | j d |  j ƒ x; | D]3 } d t | j	 ƒ } | | j	 | <| | j
 | <qR Wxí | D]å } |  j | } g  } x“ | D]‹ } g  } xE | j j ƒ  D]4 \ }	 }
 | j |  j | |	 ƒ | j |
 ƒ f ƒ qÌ W| j o  | j d | j | ƒ f ƒ n | j | ƒ q° W| j j | ƒ | |  j | | ƒ f | j | j	 | <q W| j	 |  j | _ | S(   Ni    i   (   u   PgenGrammaru   listu   dfasu   keysu   sortu   removeu   startsymbolu   insertu   lenu   symbol2numberu   number2symbolu   arcsu   itemsu   appendu
   make_labelu   indexu   isfinalu   statesu
   make_firstu   start(   u   selfu   cu   namesu   nameu   iu   dfau   statesu   stateu   arcsu   labelu   next(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   make_grammar   s6    	
    ,
 *c             C   sD   |  j  | } i  } x* | D]" } |  j | | ƒ } d | | <q W| S(   Ni   (   u   firstu
   make_label(   u   selfu   cu   nameu   rawfirstu   firstu   labelu   ilabel(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu
   make_first4   s     c             C   sê  t  | j ƒ } | d j ƒ  oñ | | j k oN | | j k o | j | S| j j | j | d  f ƒ | | j | <| Sqæt t | d  ƒ } t	 | t
 ƒ p t | ƒ ‚ | t j k p t | ƒ ‚ | | j k o | j | S| j j | d  f ƒ | | j | <| SnÖ | d d k p t | ƒ ‚ t | ƒ } | d j ƒ  oJ | | j k o | j | S| j j t j | f ƒ | | j | <| SnQ t j | } | | j k o | j | S| j j | d  f ƒ | | j | <| Sd  S(   Ni    u   "u   '(   u   "u   '(   u   lenu   labelsu   isalphau   symbol2numberu   symbol2labelu   appendu   Noneu   getattru   tokenu
   isinstanceu   intu   AssertionErroru   tok_nameu   tokensu   evalu   keywordsu   NAMEu   grammaru   opmap(   u   selfu   cu   labelu   ilabelu   itokenu   value(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu
   make_label=   s<    c             C   sU   t  |  j j ƒ  ƒ } | j ƒ  x/ | D]' } | |  j k o |  j | ƒ q& q& Wd  S(   N(   u   listu   dfasu   keysu   sortu   firstu	   calcfirst(   u   selfu   namesu   name(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   addfirstsetsk   s    
 c             C   sr  |  j  | } d  |  j | <| d } i  } i  } x¿ | j j ƒ  D]® \ } } | |  j  k ow | |  j k o2 |  j | } | d  k o t d | ƒ ‚ q¸ n |  j | ƒ |  j | } | j | ƒ | | | <q@ d | | <i d | 6| | <q@ Wi  }	 xf | j ƒ  D]X \ } }
 xI |
 D]A } | |	 k o$ t d | | | |	 | f ƒ ‚ n | |	 | <qWqW| |  j | <d  S(   Ni    u   recursion for rule %ri   uA   rule %s is ambiguous; %s is in the first sets of %s as well as %s(   u   dfasu   Noneu   firstu   arcsu   itemsu
   ValueErroru	   calcfirstu   update(   u   selfu   nameu   dfau   stateu   totalsetu   overlapchecku   labelu   nextu   fsetu   inverseu   itsfirstu   symbol(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu	   calcfirsts   s8    
 
  c       	      C   sõ   i  } d  } xÜ |  j t j k oÈ x" |  j t j k o |  j ƒ  q% W|  j t j ƒ } |  j t j d ƒ |  j	 ƒ  \ } } |  j t j ƒ |  j
 | | ƒ } t | ƒ } |  j | ƒ t | ƒ } | | | <| d  k o
 | } q q W| | f S(   Nu   :(   u   Noneu   typeu   tokenu	   ENDMARKERu   NEWLINEu   gettokenu   expectu   NAMEu   OPu	   parse_rhsu   make_dfau   lenu   simplify_dfa(	   u   selfu   dfasu   startsymbolu   nameu   au   zu   dfau   oldlenu   newlen(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   parse‘   s&      
c          	      sF  t  | t ƒ p t ‚ t  | t ƒ p t ‚ ‡  f d †  } ‡  f d †  ‰  t | | ƒ | ƒ g } xÛ | D]Ó } i  } xU | j D]J } xA | j D]6 \ } }	 | d  k	 o ˆ  |	 | j | i  ƒ ƒ q‘ q‘ Wq Wxl | j ƒ  D]^ \ } }
 x? | D] } | j |
 k o Pqï qï Wt |
 | ƒ } | j	 | ƒ | j
 | | ƒ qÜ Wqk W| S(   Nc                s   i  } ˆ  |  | ƒ | S(   N(    (   u   stateu   base(   u
   addclosure(    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   closure°   s    c                so   t  |  t ƒ p t ‚ |  | k o d  Sd | |  <x5 |  j D]* \ } } | d  k o ˆ  | | ƒ q= q= Wd  S(   Ni   (   u
   isinstanceu   NFAStateu   AssertionErroru   arcsu   None(   u   stateu   baseu   labelu   next(   u
   addclosure(    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu
   addclosure´   s    

 (   u
   isinstanceu   NFAStateu   AssertionErroru   DFAStateu   nfasetu   arcsu   Noneu
   setdefaultu   itemsu   appendu   addarc(   u   selfu   startu   finishu   closureu   statesu   stateu   arcsu   nfastateu   labelu   nextu   nfasetu   st(    (   u
   addclosureu/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   make_dfa©   s0     
 
 %  	c       
      C   sá   t  d | ƒ | g } xÄ t | ƒ D]¶ \ } } t  d | | | k o d p d ƒ xƒ | j D]x \ } } | | k o | j | ƒ }	 n t | ƒ }	 | j | ƒ | d  k o t  d |	 ƒ q] t  d | |	 f ƒ q] Wq# Wd  S(   Nu   Dump of NFA foru     Stateu   (final)u    u	       -> %du       %s -> %d(   u   printu	   enumerateu   arcsu   indexu   lenu   appendu   None(
   u   selfu   nameu   startu   finishu   todou   iu   stateu   labelu   nextu   j(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   dump_nfaÍ   s    	 $
 c             C   sŒ   t  d | ƒ xx t | ƒ D]j \ } } t  d | | j o d p d ƒ x: | j j ƒ  D]) \ } } t  d | | j | ƒ f ƒ qW Wq Wd  S(   Nu   Dump of DFA foru     Stateu   (final)u    u       %s -> %d(   u   printu	   enumerateu   isfinalu   arcsu   itemsu   index(   u   selfu   nameu   dfau   iu   stateu   labelu   next(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   dump_dfaÝ   s     ! c             C   sª   d } x | o• d } xˆ t | ƒ D]z \ } } xk t | d t | ƒ ƒ D]P } | | } | | k o3 | | =x | D] } | j | | ƒ qt Wd } PqI qI Wq# Wq	 Wd  S(   Ni   TF(   u   Trueu   Falseu	   enumerateu   rangeu   lenu
   unifystate(   u   selfu   dfau   changesu   iu   state_iu   ju   state_ju   state(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   simplify_dfaä   s        
 c             C   sµ   |  j  ƒ  \ } } |  j d k o | | f St ƒ  } t ƒ  } | j | ƒ | j | ƒ xK |  j d k o: |  j ƒ  |  j  ƒ  \ } } | j | ƒ | j | ƒ q\ W| | f Sd  S(   Nu   |(   u	   parse_altu   valueu   NFAStateu   addarcu   gettoken(   u   selfu   au   zu   aau   zz(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu	   parse_rhsù   s    		 
c             C   su   |  j  ƒ  \ } } xV |  j d k p |  j t j t j f k o) |  j  ƒ  \ } } | j | ƒ | } q W| | f S(   Nu   (u   [(   u   (u   [(   u
   parse_itemu   valueu   typeu   tokenu   NAMEu   STRINGu   addarc(   u   selfu   au   bu   cu   d(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu	   parse_alt
  s     c             C   sÇ   |  j  d k oG |  j ƒ  |  j ƒ  \ } } |  j t j d ƒ | j | ƒ | | f S|  j ƒ  \ } } |  j  } | d k o | | f S|  j ƒ  | j | ƒ | d k o | | f S| | f Sd  S(   Nu   [u   ]u   +u   *(   u   +u   *(   u   valueu   gettokenu	   parse_rhsu   expectu   tokenu   OPu   addarcu
   parse_atom(   u   selfu   au   zu   value(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu
   parse_item  s    
	
c             C   s½   |  j  d k o: |  j ƒ  |  j ƒ  \ } } |  j t j d ƒ | | f S|  j t j t j f k o: t	 ƒ  } t	 ƒ  } | j
 | |  j  ƒ |  j ƒ  | | f S|  j d |  j |  j  ƒ d  S(   Nu   (u   )u+   expected (...) or NAME or STRING, got %s/%s(   u   valueu   gettokenu	   parse_rhsu   expectu   tokenu   OPu   typeu   NAMEu   STRINGu   NFAStateu   addarcu   raise_error(   u   selfu   au   z(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu
   parse_atom(  s    
		
	c             C   sg   |  j  | k p | d  k	 o3 |  j | k o# |  j d | | |  j  |  j ƒ n |  j } |  j ƒ  | S(   Nu   expected %s/%s, got %s/%s(   u   typeu   Noneu   valueu   raise_erroru   gettoken(   u   selfu   typeu   value(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   expect9  s    -		
c             C   sk   t  |  j ƒ } x1 | d t j t j f k o t  |  j ƒ } q W| \ |  _ |  _ |  _ |  _ |  _	 d  S(   Ni    (
   u   nextu	   generatoru   tokenizeu   COMMENTu   NLu   typeu   valueu   beginu   endu   line(   u   selfu   tup(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   gettokenA  s
     c             G   s|   | oB y | | } WqI d j  | g t t t | ƒ ƒ ƒ } YqI Xn t | |  j |  j d |  j d |  j f ƒ ‚ d  S(   Nu    i    i   (   u   joinu   listu   mapu   stru   SyntaxErroru   filenameu   endu   line(   u   selfu   msgu   args(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   raise_errorH  s    .N(   u   __name__u
   __module__u   Noneu   __init__u   make_grammaru
   make_firstu
   make_labelu   addfirstsetsu	   calcfirstu   parseu   make_dfau   dump_nfau   dump_dfau   simplify_dfau	   parse_rhsu	   parse_altu
   parse_itemu
   parse_atomu   expectu   gettokenu   raise_error(   u
   __locals__(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   ParserGenerator
   s$   
				.				$					
			u   ParserGeneratorc             B   s#   |  Ee  Z d  „  Z d d „ Z d S(   c             C   s   g  |  _  d  S(   N(   u   arcs(   u   self(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   __init__S  s    c             C   sU   | d  k p t | t ƒ p t ‚ t | t ƒ p t ‚ |  j j | | f ƒ d  S(   N(   u   Noneu
   isinstanceu   stru   AssertionErroru   NFAStateu   arcsu   append(   u   selfu   nextu   label(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   addarcV  s    $N(   u   __name__u
   __module__u   __init__u   Noneu   addarc(   u
   __locals__(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   NFAStateQ  s   
	u   NFAStatec             B   s2   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d S(   c             C   sv   t  | t ƒ p t ‚ t  t t | ƒ ƒ t ƒ p t ‚ t  | t ƒ p t ‚ | |  _ | | k |  _ i  |  _ d  S(   N(	   u
   isinstanceu   dictu   AssertionErroru   nextu   iteru   NFAStateu   nfasetu   isfinalu   arcs(   u   selfu   nfasetu   final(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   __init__]  s    #	c             C   sV   t  | t ƒ p t ‚ | |  j k p t ‚ t  | t ƒ p t ‚ | |  j | <d  S(   N(   u
   isinstanceu   stru   AssertionErroru   arcsu   DFAState(   u   selfu   nextu   label(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   addarce  s    c             C   sB   x; |  j  j ƒ  D]* \ } } | | k o | |  j  | <q q Wd  S(   N(   u   arcsu   items(   u   selfu   oldu   newu   labelu   next(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu
   unifystatek  s     c             C   s•   t  | t ƒ p t ‚ |  j | j k o d St |  j ƒ t | j ƒ k o d Sx; |  j j ƒ  D]* \ } } | | j j | ƒ k	 o d Sqc Wd S(   NFT(
   u
   isinstanceu   DFAStateu   AssertionErroru   isfinalu   Falseu   lenu   arcsu   itemsu   getu   True(   u   selfu   otheru   labelu   next(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   __eq__p  s     	N(   u   __name__u
   __module__u   __init__u   addarcu
   unifystateu   __eq__(   u
   __locals__(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   DFAState[  s   
			u   DFAStateu   Grammar.txtc             C   s   t  |  ƒ } | j ƒ  S(   N(   u   ParserGeneratoru   make_grammar(   u   filenameu   p(    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   generate_grammar~  s    N(   u    u   grammaru   tokenu   tokenizeu   Grammaru   PgenGrammaru   objectu   ParserGeneratoru   NFAStateu   DFAStateu   generate_grammar(    (    (    u/   /mit/python/lib/python3.0/lib2to3/pgen2/pgen.pyu   <module>   s   ÿ H
#