
#8Zc           @   s  d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k Z d  d k l Z d  d k l Z l	 Z	 l
 Z
 l Z d  d k l Z l Z l Z l Z d  d k l Z l Z l Z l Z d  d k l Z l Z l Z l Z l Z l Z l Z l Z l Z d  d k l Z y e i  d Z! Wn e" j
 o d	 Z! n Xh d
 d d f 6d d	 d f 6d d d	 f 6d d	 d	 f 6Z# d	 Z$ d Z% d Z& d Z' d d  Z( e) e) d  Z* d f  d     YZ+ d e+ f d     YZ, d e+ f d     YZ- d e+ f d     YZ. d f  d     YZ/ d   Z0 d f  d     YZ1 d  f  d!     YZ2 d" e2 e1 f d#     YZ3 d$ e2 e1 f d%     YZ4 d& e2 e1 f d'     YZ5 d( f  d)     YZ6 d* e2 e6 e1 f d+     YZ7 d, e2 e6 e1 f d-     YZ8 d. f  d/     YZ9 d0 e2 e9 e1 f d1     YZ: d2   Z; d3   Z< d4 f  d5     YZ= d6 f  d7     YZ> d8 e> f d9     YZ? d: e> f d;     YZ@ d< e> f d=     YZA d> e> f d?     YZB h e? e iC 6e@ e iD 6eA e iE 6eB e iF 6ZG d@   ZH eI dA j o& x e iJ d	 D] ZK e( eK  qWn d S(B   iN(   t   StringIO(   t   astt   parset   walkt   syntax(   t   pyassemt   misct   futuret   symbols(   t   SC_LOCALt	   SC_GLOBALt   SC_FREEt   SC_CELL(	   t
   CO_VARARGSt   CO_VARKEYWORDSt   CO_NEWLOCALSt	   CO_NESTEDt   CO_GENERATORt   CO_FUTURE_DIVISIONt   CO_FUTURE_ABSIMPORTt   CO_FUTURE_WITH_STATEMENTt   CO_FUTURE_PRINT_FUNCTION(   t   TupleArgi    i   t   CALL_FUNCTIONt   CALL_FUNCTION_VARt   CALL_FUNCTION_KWt   CALL_FUNCTION_VAR_KWi   i   i   c         C   s   t  |  d  } | i   } | i   t | |   } y | i |  Wn t j
 o
   n, Xt  |  d d  } | i |  | i   d  S(   Nt   Ut   ct   wb(   t   opent   readt   closet   Modulet   compilet   SyntaxErrort   dump(   t   filenamet   displayt   ft   buft   mod(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   compileFile$   s    
c         C   s   | d j	 p | d j	 o t d  n | d j o t |  |  } nM | d j o t |  |  } n- | d j o t |  |  } n t d   | i   | i S(   s*   Replacement for builtin compile() functions   not implemented yett   singlet   exect   evals6   compile() 3rd arg must be 'exec' or 'eval' or 'single'N(   t   Nonet   RuntimeErrort   InteractiveR!   t
   Expressiont
   ValueErrorR"   t   code(   t   sourceR%   t   modet   flagst   dont_inheritt   gen(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR"   2   s    
t   AbstractCompileModec           B   s2   e  Z d Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  |  _ d  S(   N(   R4   R%   R.   R3   (   t   selfR4   R%   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   __init__G   s    		c         C   s9   t  |  i |  i  } t i |  i |  t i |  | S(   N(   R   R4   R5   R   t   set_filenameR%   R   t   check(   R:   t   tree(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   _get_treeL   s    c         C   s   d  S(   N(    (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR"   R   s    c         C   s   |  i  S(   N(   R3   (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   getCodeU   s    N(   t   __name__t
   __module__R.   R5   R;   R?   R"   R@   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR9   C   s
   			R1   c           B   s   e  Z d  Z d   Z RS(   R-   c         C   s+   |  i    } t |  } | i   |  _ d  S(   N(   R?   t   ExpressionCodeGeneratorR@   R3   (   R:   R>   R8   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR"   \   s    (   RA   RB   R5   R"   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR1   X   s   R0   c           B   s   e  Z d  Z d   Z RS(   R+   c         C   s+   |  i    } t |  } | i   |  _ d  S(   N(   R?   t   InteractiveCodeGeneratorR@   R3   (   R:   R>   R8   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR"   e   s    (   RA   RB   R5   R"   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR0   a   s   R!   c           B   s8   e  Z d  Z d d  Z d   Z e i   Z d   Z RS(   R,   i    c         C   sP   |  i    } t |  } | o d d  k } | i |  GHn | i   |  _ d  S(   Ni(   R?   t   ModuleCodeGeneratort   pprintR@   R3   (   R:   R&   R>   R8   RF   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR"   n   s    c         C   s*   | i  |  i    t i |  i |  d  S(   N(   t   writet   getPycHeadert   marshalR$   R3   (   R:   R'   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR$   v   s    c         C   s2   t  i i |  i  } t i d |  } |  i | S(   Ns   <i(   t   ost   patht   getmtimeR%   t   structt   packt   MAGIC(   R:   t   mtime(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRH   |   s    (	   RA   RB   R5   R"   R$   t   impt	   get_magicRO   RH   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR!   j   s
   	t   LocalNameFinderc           B   sk   e  Z d  Z d d  Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z RS(   s   Find local names in scopec         C   sC   t  i   |  _ t  i   |  _ x | D] } |  i i |  q% Wd  S(   N(   R   t   Sett   namest   globalst   add(   R:   RU   t   name(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;      s
     c         C   sH   x> |  i  i   D]- } |  i i |  o |  i i |  q q W|  i S(   N(   RV   t   elementsRU   t   has_eltt   remove(   R:   t   elt(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   getLocals   s
     c         C   s   d  S(   N(    (   R:   t   node(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   visitDict   s    c         C   s(   x! | i  D] } |  i i |  q
 Wd  S(   N(   RU   RV   RW   (   R:   R^   RX   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitGlobal   s    
 c         C   s   |  i  i | i  d  S(   N(   RU   RW   RX   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitFunction   s    c         C   s   d  S(   N(    (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitLambda   s    c         C   s5   x. | i  D]# \ } } |  i  i | p |  q
 Wd  S(   N(   RU   RW   (   R:   R^   RX   t   alias(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitImport   s    
 c         C   s5   x. | i  D]# \ } } |  i  i | p |  q
 Wd  S(   N(   RU   RW   (   R:   R^   RX   Rc   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   visitFrom   s    
 c         C   s   |  i  i | i  d  S(   N(   RU   RW   RX   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitClass   s    c         C   s   |  i  i | i  d  S(   N(   RU   RW   RX   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAssName   s    (    (   RA   RB   t   __doc__R;   R]   R_   R`   Ra   Rb   Rd   Re   Rf   Rg   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRS      s   								c         C   s*   t  |  t i  o |  i p d Sn d S(   Ni   i    (   t
   isinstanceR   t   Constt   value(   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   is_constant_false   s    
	t   CodeGeneratorc           B   sB  e  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   Z d   Z d   Z d   Z e d  Z e Z d Z d Z d   Z d   Z d   Z d   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#   Z. d$   Z/ d%   Z0 d&   Z1 d'   Z2 d(   Z3 d)   Z4 d*   Z5 d+   Z6 d,   Z7 d Z8 d-   Z9 d.   Z: d/   Z; d0   Z< d1   Z= d2   Z> d3   Z? d4   Z@ d5   ZA d6   ZB d7   ZC d8   ZD d9   ZE d:   ZF d; d<  ZG eH d= j o eG ZI eG ZJ n d>   ZI d?   ZJ d@   ZK h dA dB 6dC dD 6dE dF 6dG dH 6dI dJ 6dK dL 6dM dN 6dO dP 6dQ dR 6dS dT 6dU dV 6dW dX 6ZL dY   ZM dZ   ZN d[   ZO d\   ZP d]   ZQ d^   ZR d d_  ZS d`   ZT da   ZU db   ZV d dc  ZW d dd  ZX de   ZY df   ZZ dg   Z[ dh   Z\ di   Z] dj   Z^ dk   Z_ dl   Z` dm   Za dn   Zb do   Zc dp   Zd dq   Ze dr   Zf ds   Zg dt   Zh du   Zi dv   Zj dw   Zk dx   Zl dy   Zm dz   Zn d{   Zo d|   Zp d}   Zq d~   Zr RS(   s  Defines basic code generator for Python bytecode

    This class is an abstract base class.  Concrete subclasses must
    define an __init__() that defines self.graph and then calls the
    __init__() defined in this class.

    The concrete class must also define the class attributes
    NameFinder, FunctionGen, and ClassGen.  These attributes can be
    defined in the initClass() method, which is a hook for
    initializing these methods after all the classes have been
    defined.
    i    c         C   s  |  i  d  j o |  i   d |  i _  n |  i   t i   |  _ t i   |  _ d  |  _	 |  i
   d |  _ |  i   i } x | D] } | d j o |  i i t  d |  _ q | d j o |  i i t  q | d j o |  i i t  q | d j o |  i i t  q q Wd  S(   Ni   t   BINARY_DIVIDEt   divisiont   BINARY_TRUE_DIVIDEt   absolute_importt   with_statementt   print_function(   t   _CodeGenerator__initializedR.   t	   initClasst	   __class__t
   checkClassR   t   Stackt   localst   setupst   last_linenot   _setupGraphDelegationt   _div_opt
   get_modulet   futurest   grapht   setFlagR   R   R   R   (   R:   R   t   feature(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;      s*    

	
	 c         C   s   d S(   s)   This method is called once for each classN(    (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRu      s    c         C   s   y` t  |  d  p t  t |  d  p t  t |  d  p t  t |  d  p t  Wn. t j
 o" } d |  i i } t |  n Xd S(   s*   Verify that class is constructed correctlyR   t
   NameFindert   FunctionGent   ClassGens   Bad class construction for %sN(   t   hasattrt   AssertionErrort   getattrRv   RA   (   R:   t   msgt   intro(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRw      s    c         C   sO   |  i  i |  _ |  i  i |  _ |  i  i |  _ |  i  i |  _ |  i  i |  _ d  S(   N(   R   t   emitt   newBlockt
   startBlockt	   nextBlockt   setDocstring(   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR|      s
    c         C   s   |  i  i   S(   s   Return a code object(   R   R@   (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR@      s    c         C   s,   |  i  d  j	 o t i | |  i   S| Sd  S(   N(   t
   class_nameR.   R   t   mangle(   R:   RX   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR      s    c         C   s    t  i   } t | |  | i S(   N(   R   t   SymbolVisitorR   t   scopes(   R:   R>   t   s(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   parseSymbols   s    c         C   s   t  d  d  S(   Ns#   should be implemented by subclasses(   R/   (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR~     s    c         C   s   |  i  i   i |  S(   N(   Ry   t   topRZ   (   R:   RX   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   isLocalName	  s    c         C   s   |  i  d |  d  S(   Nt   STORE(   t   _nameOp(   R:   RX   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   storeName  s    c         C   s   |  i  d |  d  S(   Nt   LOAD(   R   (   R:   RX   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   loadName  s    c         C   s   |  i  d |  d  S(   Nt   DELETE(   R   (   R:   RX   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   delName  s    c         C   s   |  i  |  } |  i i |  } | t j o: |  i p |  i | d |  q |  i | d |  n | t j o: |  i p |  i | d |  q |  i | d |  nF | t j p | t j o |  i | d |  n t	 d | | f  d  S(   Nt   _NAMEt   _FASTt   _GLOBALt   _DEREFs    unsupported scope for var %s: %d(
   R   t   scopet
   check_nameR	   t	   optimizedR   R
   R   R   R/   (   R:   t   prefixRX   R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR     s    

c         C   s:   |  i  o |  i | d |  n |  i | d |  d S(   s   Emit name ops for names generated implicitly by for loops

        The interpreter generates names that start with a period or
        dollar sign.  The symbol table ignores these names because
        they aren't present in the program text.
        R   R   N(   R   R   (   R:   R   RX   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   _implicitNameOp(  s    
c         C   sX   t  | d d  } | d j	 o5 | |  i j p | o |  i d |  | |  _ t St S(   s  Emit SET_LINENO if necessary.

        The instruction is considered necessary if the node has a
        lineno attribute and it is different than the last lineno
        emitted.

        Returns true if SET_LINENO was emitted.

        There are no rules for when an AST node should have a lineno
        attribute.  The transformer and AST code need to be reviewed
        and a consistent policy implemented and documented.  Until
        then, this method works around missing line numbers.
        t   linenot
   SET_LINENON(   R   R.   R{   R   t   Truet   False(   R:   R^   t   forceR   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   set_lineno9  s    	c         C   s   |  i  |  |  _ |  i | |  _ |  i d d  | i o$ |  i d | i  |  i d  n t | i |  i   d d } |  i	 i
 | i    |  i | i  |  i d d   |  i d  d  S(   NR   i    t
   LOAD_CONSTRh   t   verboset   RETURN_VALUE(   R   R   R   R   t   docR   R   R^   R   Ry   t   pushR]   t   visitR.   (   R:   R^   t   lnf(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitModuleW  s    
c         C   sP   |  i  |  |  i |  |  _ |  i | |  _ |  i | i  |  i d  d  S(   NR   (   R   R   R   R   R   R^   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitExpressiond  s
    c         C   sE   |  i  | d d | i o |  i | i  n |  i | i  d  S(   Nt   isLambdai    (   t   _visitFuncOrLambdaR   R   R   RX   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRa   k  s    
c         C   s   |  i  | d d d  S(   NR   i   (   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRb   q  s    c         C   s  | oD | i  o: x! | i  i D] } |  i |  q Wt | i  i  } n d } |  i | |  i | |  i |  i    } t | i	 |  | i
   |  i |  x | i D] } |  i |  q W|  i | t | i   x$ t |  D] } |  i d d  q Wd  S(   Ni    R   i   (   t
   decoratorst   nodesR   t   lenR   R   R   R~   R   R3   t   finishR   t   defaultst   _makeClosuret   rangeR   (   R:   R^   R   t	   decoratort   ndecoratorsR8   t   defaultt   i(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR   t  s$     

  c         C   s   |  i  | |  i |  i    } t | i |  | i   |  i |  |  i d | i  x | i	 D] } |  i
 |  qb W|  i d t | i	   |  i | d  |  i d d  |  i d  |  i | i  d  S(   NR   t   BUILD_TUPLEi    R   t   BUILD_CLASS(   R   R   R~   R   R3   R   R   R   RX   t   basesR   R   R   R   (   R:   R^   R8   t   base(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRf     s    

 c         C   s  |  i    } t | i  } x t |  D] } | i | \ } } t |  o q( n |  i |  |  i |  |  i    } |  i d |  |  i   |  i d  |  i |  |  i d |  |  i	 |  |  i d  q( W| i
 o |  i | i
  n |  i |  d  S(   Nt   JUMP_IF_FALSEt   POP_TOPt   JUMP_FORWARD(   R   R   t   testsR   Rl   R   R   R   R   R   t   else_(   R:   R^   t   endt   numtestsR   t   testt   suitet   nextTest(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitIf  s(     

c         C   s8  |  i  |  |  i   } |  i   } |  i   } |  i d |  |  i |  |  i i t | f  |  i  | d t |  i | i	  |  i d | p |  |  i   |  i d  |  i | i
  |  i d |  |  i |  |  i d  |  i d  |  i i   | i o |  i | i  n |  i |  d  S(   Nt
   SETUP_LOOPR   R   R   t   JUMP_ABSOLUTEt	   POP_BLOCK(   R   R   R   R   Rz   R   t   LOOPR   R   R   t   bodyR   t   popR   (   R:   R^   t   loopR   t   after(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitWhile  s*    

c         C   s*  |  i    } |  i    } |  i    } |  i i t | f  |  i |  |  i d |  |  i | i  |  i d  |  i |  |  i | d d |  i d |  |  i | i	  |  i | i
  |  i d |  |  i |  |  i d  |  i i   | i o |  i | i  n |  i |  d  S(   NR   t   GET_ITERR   i   t   FOR_ITERR   R   (   R   Rz   R   R   R   R   R   t   listR   t   assignR   R   R   (   R:   R^   t   startt   anchorR   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitFor  s(    
c         C   sE   |  i  p t d | i | i f  n |  i |  |  i d  d  S(   Ns   'break' outside loop (%s, %d)t
   BREAK_LOOP(   Rz   R#   R%   R   R   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitBreak  s
    
c         C   sj  |  i  p t d | i | i f  n |  i  i   \ } } | t j o+ |  i |  |  i d |  |  i   n | t	 j p | t
 j o |  i |  t |  i   } xA | d j o3 | d } |  i  | \ } } | t j o Pq q W| t j o t d | i | i f  n |  i d |  |  i   n1 | t j o# d } t | | i | i f  n d  S(   Ns    'continue' outside loop (%s, %d)R   i    i   t   CONTINUE_LOOPs7   'continue' not allowed inside 'finally' clause (%s, %d)(   Rz   R#   R%   R   R   R   R   R   R   t   EXCEPTt   TRY_FINALLYR   t   END_FINALLY(   R:   R^   t   kindt   blockR   t
   loop_blockR   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitContinue  s2    
 

c         C   s}   |  i    } xI | i d  D]: } |  i |  |  i | |  |  i   |  i d  q W|  i | i d  |  i |  d  S(   NiR   (   R   R   R   R   R   (   R:   R^   t   jumpR   t   child(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   visitTest  s     
c         C   s   |  i  | d  d  S(   NR   (   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAnd  s    c         C   s   |  i  | d  d  S(   Nt   JUMP_IF_TRUE(   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitOr  s    c         C   s   |  i    } |  i    } |  i | i  |  i d |  |  i d  |  i | i  |  i d |  |  i |  |  i d  |  i | i  |  i |  d  S(   NR   R   R   (   R   R   R   R   t   thenR   R   (   R:   R^   t   endblockt	   elseblock(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitIfExp  s    c         C   sD  |  i  | i  |  i   } xy | i d  D]j \ } } |  i  |  |  i d  |  i d  |  i d |  |  i d |  |  i   |  i d  q* W| i o4 | i d \ } } |  i  |  |  i d |  n t | i  d j oT |  i   } |  i d |  |  i |  |  i d	  |  i d  |  i |  n d  S(
   Nit   DUP_TOPt	   ROT_THREEt
   COMPARE_OPR   R   i   R   t   ROT_TWO(   R   t   exprR   t   opsR   R   R   R   (   R:   R^   t   cleanupt   opR3   R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitCompare$  s,     

c         C   s  |  i  |  d |  i } |  i d |  _ |  i d d  |  i d  |  i d |  g  } x t t t | i   | i  D] \ } } |  i |  \ } } d  } x> | i
 D]3 }	 | d  j o |  i   } n |  i |	 |  q W| i d | | | f  q W|  i d |  |  i | i  |  i d  x | D]z \ } } } | oG |  i   }
 |  i d	 |
  |  i |  |  i d
  |  i |
  n |  i d |  |  i |  q8W|  i d |  |  i d |  _ d  S(   Ns   $list%di   t
   BUILD_LISTi    R   R   R   t   LIST_APPENDR   R   R   R   (   R   t   _CodeGenerator__list_countR   R   t   zipR   R   t   qualsR   R.   t   ifsR   t   insertR   R   R   (   R:   R^   t   tmpnamet   stackR   t   for_R   R   t   contt   if_t   skip_one(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitListComp?  s@    " 
  c         C   s   |  i    } |  i    } |  i | i  |  i d  |  i |  |  i | d t |  i d |  |  i   |  i | i  | | f S(   NR   R   R   (   R   R   R   R   R   R   R   R   (   R:   R^   R   R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitListCompForc  s    
c         C   sN   |  i  | d t |  i | i  |  i d |  |  i   |  i d  d  S(   NR   R   R   (   R   R   R   R   R   R   (   R:   R^   t   branch(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitListCompIfp  s
    
c         C   s   | i  i   } | o[ x | D] } |  i d |  q W|  i d t |   |  i d |  |  i d |  n! |  i d |  |  i d |  d  S(   Nt   LOAD_CLOSURER   R   t   MAKE_CLOSUREt   MAKE_FUNCTION(   R   t   get_free_varsR   R   (   R:   R8   t   argst   freesRX   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR   w  s     c         C   s   t  | |  i |  i |  i    } t | i |  | i   |  i |  |  i | d  |  i	 | i i
 d i  |  i d  |  i d d  d  S(   Ni    R   R   i   (   t   GenExprCodeGeneratorR   R   R~   R   R3   R   R   R   R   R  t   iterR   (   R:   R^   R8   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitGenExpr  s    
c      	   C   s  |  i  |  g  } x t t t | i   | i  D] \ } } |  i |  \ } } } d  } x> | i D]3 }	 | d  j o |  i   } n |  i |	 |  qi W| i	 d | | | | f  q5 W|  i | i
  |  i d  |  i d  x | D] \ } } } } | oG |  i   }
 |  i d |
  |  i |  |  i d  |  i |
  n |  i d |  |  i |  |  i d  |  i i   |  i |  q W|  i d d   d  S(   Ni    t   YIELD_VALUER   R   R   R   R   (   R   R  R   R   R  R   R.   R  R   R  R   R   R   R   Rz   R   (   R:   R^   R  R   R	  R   R   R   R
  R  R  (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitGenExprInner  s:    " 
   c         C   s   |  i    } |  i    } |  i    } |  i i t | f  |  i d |  | i o |  i d  n |  i | i  |  i d  |  i	 |  |  i
 | d t |  i d |  |  i	   |  i | i  | | | f S(   NR   s   .0R   R   R   (   R   Rz   R   R   R   t
   is_outmostR   R   R  R   R   R   R   (   R:   R^   R   R   R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitGenExprFor  s    

c         C   sN   |  i  | d t |  i | i  |  i d |  |  i   |  i d  d  S(   NR   R   R   (   R   R   R   R   R   R   (   R:   R^   R  (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitGenExprIf  s
    
c         C   s   |  i    } |  i |  |  i   |  i | i  |  i d |  |  i   |  i d  |  i d d  | i o$ |  i | i  |  i d d  n |  i d d  |  i |  |  i d  d  S(   NR   R   t   LOAD_GLOBALR   t   RAISE_VARARGSi   i   (   R   R   R   R   R   R   t   fail(   R:   R^   R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAssert  s    


c         C   s   |  i  |  d } | i o |  i | i  | d } n | i o |  i | i  | d } n | i o |  i | i  | d } n |  i d |  d  S(   Ni    i   R   (   R   t   expr1R   t   expr2t   expr3R   (   R:   R^   t   n(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitRaise  s    


c         C   sh  |  i    } |  i    } |  i    } | i o |  i    } n | } |  i |  |  i d |  |  i |  |  i i t | f  |  i | i	  |  i d  |  i i
   |  i d |  |  i |  t | i  d } x>t t | i   D]'} | i | \ } }	 } |  i |  | oa |  i d  |  i |  |  i d d  |  i    }
 |  i d |
  |  i   |  i d	  n |  i d	  |	 o |  i |	  n |  i d	  |  i d	  |  i |  |  i d |  | o |  i |
  n |  i   | o |  i d	  q q W|  i d
  | i o! |  i |  |  i | i  n |  i |  d  S(   Nt   SETUP_EXCEPTR   R   i   R   R   s   exception matchR   R   R   (   R   R   R   R   R   Rz   R   R   R   R   R   R   R   t   handlersR   (   R:   R^   R   R)  R   t   lElset   lastR   R   t   targett   next(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitTryExcept  sZ    
 


c         C   s   |  i    } |  i    } |  i |  |  i d |  |  i |  |  i i t | f  |  i | i  |  i d  |  i i	   |  i d d   |  i |  |  i i t | f  |  i | i  |  i d  |  i i	   d  S(   Nt   SETUP_FINALLYR   R   R   (   R   R   R   R   Rz   R   R   R   R   R   R.   R   t   final(   R:   R^   R   R0  (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitTryFinally%  s    c         C   s  |  i    } |  i    } d |  i } |  i d 7_ |  i |  |  i | i  |  i d  |  i d d  |  i d  |  i d d  |  i d d	  | i d  j o |  i d
  n |  i d |  |  i d |  |  i	 |  |  i
 i t | f  | i d  j	 o4 |  i d |  |  i d |  |  i | i  n |  i | i  |  i d  |  i
 i   |  i d d   |  i	 |  |  i
 i t | f  |  i d  |  i d  |  i
 i   |  i d 8_ d  S(   Ns   $value%di   R   t	   LOAD_ATTRt   __exit__R   t	   __enter__R   i    R   R   R/  R   R   R   R   t   WITH_CLEANUPR   (   R   t   _CodeGenerator__with_countR   R   R   R   t   varsR.   R   R   Rz   R   R   R   R   R   (   R:   R^   R   R0  t   valuevar(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   visitWith8  s>    c         C   s.   |  i  |  |  i | i  |  i d  d  S(   NR   (   R   R   R   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitDiscard\  s    c         C   s   |  i  d | i  d  S(   NR   (   R   Rk   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitConsta  s    c         C   s'   |  i  d | i  |  i | i  d  S(   NR   (   R   RX   R   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitKeywordd  s    c         C   s   d  S(   N(    (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR`   h  s    c         C   s!   |  i  |  |  i | i  d  S(   N(   R   R   RX   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   visitNamel  s    c         C   s   |  i  |  d  S(   N(   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   visitPassp  s    c         C   s   |  i  |  |  i i t  o d n d } x | i D] \ } } t d j o$ |  i d |  |  i d d   n |  i d |  | i d  d } | o |  i	 |  |  i
 |  q7 |  i
 |  q7 Wd  S(   Ni    ii   R   t   IMPORT_NAMEt   .(   R   R   t	   checkFlagR   RU   t   VERSIONR   R.   t   splitt   _resolveDotsR   (   R:   R^   t   levelRX   Rc   R)   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRd   s  s     
 c         C   s`  |  i  |  | i } | d j o |  i i t  o
 d } n t d   | i D  } t d j o$ |  i d |  |  i d |  n |  i d | i	  x | i D] \ } } t d j oz | d j o8 d |  _
 |  i d  t | i  d j p t  d  S|  i d	 |  |  i |  |  i | p |  q |  i d	 |  q W|  i d
  d  S(   Ni    ic         s   s   x |  ] \ } } | Vq Wd  S(   N(    (   t   .0RX   Rc   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pys	   <genexpr>  s   	 i   R   R?  t   *t   IMPORT_STARt   IMPORT_FROMR   (   R   RE  R   RA  R   t   tupleRU   RB  R   t   modnamet	   namespaceR   R   RD  R   (   R:   R^   RE  t   fromlistRX   Rc   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRe     s,    	!

 	c         C   sP   | i  d  } t |  d j o d  Sx" | d D] } |  i d |  q2 Wd  S(   NR@  i   R2  (   RC  R   R   (   R:   RX   t   eltsR\   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRD    s     c         C   s0   |  i  | i  |  i d |  i | i   d  S(   NR2  (   R   R   R   R   t   attrname(   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitGetattr  s    c         C   s   |  i  |  |  i | i  t | i  d } xl t t | i   D]U } | i | } | | j  o |  i d  n t | t i	  o |  i |  qF qF Wd  S(   Ni   R   (
   R   R   R   R   R   R   R   Ri   R   t   Node(   R:   R^   t   dupsR   R\   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAssign  s     c         C   se   | i  d j o |  i | i  n> | i  d j o! |  i |  |  i | i  n d G| i  GHd  S(   Nt	   OP_ASSIGNt	   OP_DELETEt   oops(   R6   R   RX   R   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRg     s    c         C   s   |  i  | i  | i d j o  |  i d |  i | i   nB | i d j o  |  i d |  i | i   n d G| i GH| GHd  S(   NRT  t
   STORE_ATTRRU  t   DELETE_ATTRs   warning: unexpected flags:(   R   R   R6   R   R   RO  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAssAttr  s      t   UNPACK_SEQUENCEc         C   sU   t  |  d j o |  i | t | i   n x | i D] } |  i |  q: Wd  S(   NRU  (   t   findOpR   R   R   R   (   R:   R^   R   R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   _visitAssSequence  s
    
 i   c         C   s   |  i  | d  d  S(   Nt   UNPACK_TUPLE(   R\  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAssTuple  s    c         C   s   |  i  | d  d  S(   Nt   UNPACK_LIST(   R\  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAssList  s    c         C   sg   |  i  |  t | i  } |  i | d  |  i | i  |  i |  i | i  |  i | d  d  S(   Nt   loadt   store(   R   t   wrap_augR^   R   R   R   t   _augmented_opcodeR   (   R:   R^   t   aug_node(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAugAssign  s    t   INPLACE_ADDs   +=t   INPLACE_SUBTRACTs   -=t   INPLACE_MULTIPLYs   *=t   INPLACE_DIVIDEs   /=t   INPLACE_FLOOR_DIVIDEs   //=t   INPLACE_MODULOs   %=t   INPLACE_POWERs   **=t   INPLACE_RSHIFTs   >>=t   INPLACE_LSHIFTs   <<=t   INPLACE_ANDs   &=t   INPLACE_XORs   ^=t
   INPLACE_ORs   |=c         C   sF   | d j o |  i  | i  n" | d j o |  i | i  n d  S(   NRa  Rb  (   R   RX   R   (   R:   R^   R5   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAugName  s    c         C   s   | d j o= |  i  | i  |  i d  |  i d |  i | i   n; | d j o- |  i d  |  i d |  i | i   n d  S(   NRa  R   R2  Rb  R   RW  (   R   R   R   R   RO  (   R:   R^   R5   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAugGetattr  s     c         C   s   | d j o |  i  | d  n | d j o d } | i o | d B} n | i o | d B} n | d j o |  i d  n, | d j o |  i d  n |  i d	  |  i d
 |  n d  S(   NRa  i   Rb  i    i   R   i   t   ROT_FOURR   s   STORE_SLICE+%d(   t
   visitSlicet   lowert   upperR   (   R:   R^   R5   t   slice(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAugSlice  s    

c         C   sP   | d j o |  i  | d  n, | d j o |  i d  |  i d  n d  S(   NRa  i   Rb  R   t   STORE_SUBSCR(   t   visitSubscriptR   (   R:   R^   R5   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAugSubscript  s
    c         C   s   |  i  | i  | i d  j o |  i d d   n |  i  | i  | i d  j o |  i d  n |  i  | i  |  i d  d  S(   NR   R   t	   EXEC_STMT(   R   R   Ry   R.   R   RV   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   visitExec  s    c         C   s  d } d } |  i  |  |  i | i  xI | i D]> } |  i |  t | t i  o | d } q3 | d } q3 W| i d  j	 o |  i | i  n | i	 d  j	 o |  i | i	  n | i d  j	 } | i	 d  j	 } t
 | | f } |  i | | d >| B d  S(   Ni    i   i   (   R   R   R^   R  Ri   R   t   Keywordt	   star_argsR.   t
   dstar_argst   callfunc_opcode_infoR   (   R:   R^   t   post   kwt   argt	   have_start
   have_dstart   opcode(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitCallFunc#  s$    
 c         C   s   |  i  |  | i o |  i | i  n xn | i D]c } | i o |  i d  n |  i |  | i o |  i d  |  i d  q5 |  i d  q5 W| i o | o |  i d  n d  S(   NR   R   t   PRINT_ITEM_TOt
   PRINT_ITEMR   (   R   t   destR   R   R   (   R:   R^   t   newlineR   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitPrint7  s    

 

c         C   s?   |  i  | d d | i o |  i d  n |  i d  d  S(   NR  i   t   PRINT_NEWLINE_TOt   PRINT_NEWLINE(   R  R  R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitPrintnlG  s    
c         C   s.   |  i  |  |  i | i  |  i d  d  S(   NR   (   R   R   Rk   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitReturnN  s    c         C   s.   |  i  |  |  i | i  |  i d  d  S(   NR  (   R   R   Rk   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitYieldS  s    c         C   sB  |  i  | i  d } | i o |  i  | i  | d B} n | i o |  i  | i  | d B} n | oS | d j o |  i d  q | d j o |  i d d  q |  i d d  n | i d j o |  i d |  nZ | i d	 j o |  i d
 |  n5 | i d j o |  i d |  n d G| i GH  d  S(   Ni    i   i   R   i   t   DUP_TOPXt   OP_APPLYs   SLICE+%dRT  s   STORE_SLICE+%dRU  s   DELETE_SLICE+%ds   weird slice(   R   R   Rw  Rx  R   R6   (   R:   R^   t   aug_flagRy  (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRv  Z  s,    

c         C   s   |  i  | i  x | i D] } |  i  |  q Wt | i  d j o |  i d t | i   n | o |  i d d  n | i d j o |  i d  nC | i d j o |  i d  n" | i d	 j o |  i d
  n d  S(   Ni   R   R  i   R  t   BINARY_SUBSCRRT  R{  RU  t   DELETE_SUBSCR(   R   R   t   subsR   R   R6   (   R:   R^   R  t   sub(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR|  u  s    
 c         C   s1   |  i  | i  |  i  | i  |  i |  d  S(   N(   R   t   leftt   rightR   (   R:   R^   R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   binaryOp  s    c         C   s   |  i  | d  S(   Nt
   BINARY_ADD(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitAdd  s    c         C   s   |  i  | d  S(   Nt   BINARY_SUBTRACT(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitSub  s    c         C   s   |  i  | d  S(   Nt   BINARY_MULTIPLY(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitMul  s    c         C   s   |  i  | |  i  S(   N(   R  R}   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitDiv  s    c         C   s   |  i  | d  S(   Nt   BINARY_FLOOR_DIVIDE(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitFloorDiv  s    c         C   s   |  i  | d  S(   Nt   BINARY_MODULO(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitMod  s    c         C   s   |  i  | d  S(   Nt   BINARY_POWER(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitPower  s    c         C   s   |  i  | d  S(   Nt   BINARY_LSHIFT(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitLeftShift  s    c         C   s   |  i  | d  S(   Nt   BINARY_RSHIFT(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitRightShift  s    c         C   s!   |  i  | i  |  i |  d  S(   N(   R   R   R   (   R:   R^   R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   unaryOp  s    c         C   s   |  i  | d  S(   Nt   UNARY_INVERT(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitInvert  s    c         C   s   |  i  | d  S(   Nt   UNARY_NEGATIVE(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitUnarySub  s    c         C   s   |  i  | d  S(   Nt   UNARY_POSITIVE(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitUnaryAdd  s    c         C   s   |  i  | d  S(   NR  (   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitUnaryInvert  s    c         C   s   |  i  | d  S(   Nt	   UNARY_NOT(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitNot  s    c         C   s   |  i  | d  S(   Nt   UNARY_CONVERT(   R  (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitBackquote  s    c         C   sD   |  i  | d  x, | d D]  } |  i  |  |  i |  q Wd  S(   Ni    i   (   R   R   (   R:   R   R   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   bitOp  s
     c         C   s   |  i  | i d  S(   Nt
   BINARY_AND(   R  R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitBitand  s    c         C   s   |  i  | i d  S(   Nt	   BINARY_OR(   R  R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitBitor  s    c         C   s   |  i  | i d  S(   Nt
   BINARY_XOR(   R  R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitBitxor  s    c         C   s   |  i  d t  d  S(   NR   (   R   t   Ellipsis(   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitEllipsis  s    c         C   sK   |  i  |  x | i D] } |  i |  q W|  i d t | i   d  S(   NR   (   R   R   R   R   R   (   R:   R^   R\   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt
   visitTuple  s
    
 c         C   sK   |  i  |  x | i D] } |  i |  q W|  i d t | i   d  S(   NR   (   R   R   R   R   R   (   R:   R^   R\   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt	   visitList  s
    
 c         C   s>   x | i  D] } |  i |  q
 W|  i d t | i    d  S(   Nt   BUILD_SLICE(   R   R   R   R   (   R:   R^   R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   visitSliceobj  s    
 c         C   s|   |  i  |  |  i d d  xX | i D]M \ } } |  i d  |  i |  |  i |  |  i d  |  i d  q' Wd  S(   Nt	   BUILD_MAPi    R   R   R{  (   R   R   t   itemsR   (   R:   R^   t   kt   v(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR_     s    
 N(s   RA   RB   Rh   R   R.   Rt   R   R;   Ru   Rw   R|   R@   R   R   R~   R   R   R   R   R   R   R   R   RS   R   R   R   R   R   Ra   Rb   R   Rf   R   R   R   R   R   R   R   R   R   R   R  R  R  R  R   R  R  R  R  R"  R'  R.  R1  R6  R9  R:  R;  R<  R`   R=  R>  Rd   Re   RD  RP  RS  Rg   RY  R\  RB  R^  R`  Rf  Rd  Rs  Rt  Rz  R}  R  R  R  R  R  R  Rv  R|  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R_   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRm      s   																									
					$					!						2		$														

			
																																			t   NestedScopeMixinc           B   s   e  Z d  Z d   Z RS(   s>   Defines initClass() for nested scoping (Python 2.2-compatible)c         C   s(   t  |  i _ t |  i _ t |  i _ d  S(   N(   RS   Rv   R   t   FunctionCodeGeneratorR   t   ClassCodeGeneratorR   (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRu     s    (   RA   RB   Rh   Ru   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR    s   RE   c           B   s)   e  Z e i Z d Z d    Z d   Z RS(   c         C   sE   t  i d | i  |  _ t i |  |  _ |  i   t | |   d  S(   Ns   <module>(	   R   t   PyFlowGraphR%   R   R   t   find_futuresR   t    _ModuleCodeGenerator__super_initR   (   R:   R>   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;     s    
c         C   s   |  S(   N(    (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR~     s    N(   RA   RB   Rm   R;   R  R.   R   R~   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRE     s   		RC   c           B   s/   e  Z e i Z d Z d Z d    Z d   Z RS(   c         C   s3   t  i d | i  |  _ |  i   t | |   d  S(   Ns   <expression>(   R   R  R%   R   t$   _ExpressionCodeGenerator__super_initR   (   R:   R>   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;   
  s    
c         C   s   |  S(   N(    (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR~     s    N(    (	   RA   RB   Rm   R;   R  R.   R   R   R~   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRC     s
   		RD   c           B   s8   e  Z e i Z d Z d Z d    Z d   Z d   Z	 RS(   c         C   sM   t  i d | i  |  _ |  i   |  i |  t | |   |  i d  d  S(   Ns   <interactive>R   (   R   R  R%   R   t%   _InteractiveCodeGenerator__super_initR   R   R   (   R:   R>   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;     s
    
c         C   s   |  S(   N(    (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR~      s    c         C   s!   |  i  | i  |  i d  d  S(   Nt
   PRINT_EXPR(   R   R   R   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR:  #  s    N(    (
   RA   RB   Rm   R;   R  R.   R   R   R~   R:  (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRD     s   			t   AbstractFunctionCodec           B   sG   e  Z d  Z d Z d   Z d   Z d   Z d   Z d   Z e Z	 RS(   i   i    c         C   sW  | |  _  | |  _ | o' t } d | i } | i d | _ n
 | i } t | i  \ } }	 t i | | i	 | d d |  _
 | |  _ |  i   | o | i o |  i | i  n t | i |  i |  d d }
 |  i i |
 i    | i o |  i
 i t  n | i o |  i
 i t  n |  i |  |	 o |  i | i  n d  S(   Ns   <lambda.%d>i   R   R   i    (   R   t   moduleR  t   lambdaCountRX   t   generateArgListt   argnamesR   R  R%   R   R   t
   super_initR   R   R   R3   R   Ry   R   R]   t   varargsR   R   t   kwargsR   R   t   generateArgUnpack(   R:   t   funcR   R   R   R)   t   klassRX   R  t   hasTupleArgR   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;   -  s.    				
!

c         C   s   |  i  S(   N(   R  (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR~   J  s    c         C   s<   |  i  i   |  i p |  i d d   n |  i d  d  S(   NR   R   (   R   t   startExitBlockR   R   R.   (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR   M  s    
c         C   sd   x] t  t |   D]I } | | } t | t  o) |  i d d | d  |  i |  q q Wd  S(   Nt	   LOAD_FASTs   .%di   (   R   R   Ri   RJ  R   t   unpackSequence(   R:   R  R   R  (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR  S  s     
c         C   s   t  d j o |  i d t |   n |  i d t |   x? | D]7 } t | t  o |  i |  qD |  i d |  qD Wd  S(   Ni   RZ  R]  R   (   RB  R   R   Ri   RJ  R  R   (   R:   t   tupR\   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR  Z  s     (
   RA   RB   R   R  R;   R~   R   R  R  t   unpackTuple(    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR  )  s   					R  c           B   s)   e  Z e i Z d Z e i Z d    Z RS(   c         C   s   | |  _  | | |  _ |  i | | | | |  |  i i |  i i    |  i i |  i i    |  i i d  j	 o |  i i
 t  n d  S(   N(   R   R   t"   _FunctionCodeGenerator__super_initR   t   setFreeVarsR  t   setCellVarst   get_cell_varst	   generatorR.   R   R   (   R:   R  R   R   R   R)   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;   n  s    	N(	   RA   RB   Rm   R;   R  R.   R   R  R  (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR  g  s   		R  c           B   s)   e  Z e i Z d Z e i Z d    Z RS(   c         C   su   | |  _  | | |  _ |  i | | d | |  |  i i |  i i    |  i i |  i i    |  i i t	  d  S(   Ni   (
   R   R   t!   _GenExprCodeGenerator__super_initR   R  R  R  R  R   R   (   R:   t   gexpR   R   R)   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;   ~  s    	N(	   RA   RB   Rm   R;   R  R.   R   R  R  (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR  w  s   		t   AbstractClassCodec           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   | i  |  _ | |  _ t i | i  | i d d d d |  _ |  i   t | i	 |  i
   d d } |  i i | i    |  i i t  | i o |  i | i  n d  S(   NR   i    R  i   R   (   RX   R   R  R   R  R%   R   R  R   R3   R   Ry   R   R]   R   R   R   R   (   R:   R  R   R  R   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;     s    	

c         C   s   |  i  S(   N(   R  (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR~     s    c         C   s+   |  i  i   |  i d  |  i d  d  S(   Nt   LOAD_LOCALSR   (   R   R  R   (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR     s    (   RA   RB   R;   R~   R   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR    s   		R  c           B   s)   e  Z e i Z d Z e i Z d    Z RS(   c         C   s   | |  _  | | |  _ |  i | | |  |  i i |  i i    |  i i |  i i    |  i |  |  i	 d d  |  i
 d  | i o$ |  i	 d | i  |  i
 d  n d  S(   NR  RA   RB   R   Rh   (   R   R   t   _ClassCodeGenerator__super_initR   R  R  R  R  R   R   R   R   (   R:   R  R   R  (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;     s    	
N(	   RA   RB   Rm   R;   R  R.   R   R  R  (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR    s   		c         C   s   g  } g  } d } x t  t |    D] } |  | } t | t  o | i |  q% t | t  o> | i t | d |   | i t i	 |   | d } q% t
 d |  q% W| | | f S(   s&   Generate an arg list marking TupleArgsi    i   i   s   unexpect argument type:(   R   R   Ri   t   strt   appendRJ  R   t   extendR   t   flattenR2   (   t   arglistR  t   extrat   countR   R\   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR    s     
c         C   s#   t    } t |  | d d | i S(   s5   Find the op (DELETE, LOAD, STORE) in an AssTuple treeR   i    (   t   OpFinderR   R   (   R^   R  (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR[    s    	R  c           B   s&   e  Z d    Z d   Z e Z e Z RS(   c         C   s   d  |  _ d  S(   N(   R.   R   (   R:   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;     s    c         C   sD   |  i  d  j o | i |  _  n! |  i  | i j o t d  n d  S(   Ns   mixed ops in stmt(   R   R.   R6   R2   (   R:   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRg     s    (   RA   RB   R;   Rg   RY  R|  (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR    s   		t	   Delegatorc           B   s    e  Z d  Z d   Z d   Z RS(   s  Base class to support delegation for augmented assignment nodes

    To generator code for augmented assignments, we use the following
    wrapper classes.  In visitAugAssign, the left-hand expression node
    is visited twice.  The first time the visit uses the normal method
    for that node .  The second time the visit uses a different method
    that generates the appropriate code to perform the assignment.
    These delegator classes wrap the original AST nodes in order to
    support the variant visit methods.
    c         C   s   | |  _  d  S(   N(   t   obj(   R:   R  (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR;     s    c         C   s   t  |  i |  S(   N(   R   R  (   R:   t   attr(    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   __getattr__  s    (   RA   RB   Rh   R;   R  (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR    s   
	t
   AugGetattrc           B   s   e  Z RS(    (   RA   RB   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR    s   t   AugNamec           B   s   e  Z RS(    (   RA   RB   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR    s   t   AugSlicec           B   s   e  Z RS(    (   RA   RB   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR    s   t   AugSubscriptc           B   s   e  Z RS(    (   RA   RB   (    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyR     s   c         C   s   t  |  i |   S(   N(   t   wrapperRv   (   R^   (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyRc    s    t   __main__(L   RQ   RJ   RI   RM   t   syst	   cStringIOR    t   compilerR   R   R   R   R   R   R   R   t   compiler.constsR	   R
   R   R   R   R   R   R   R   R   R   R   R   t   compiler.pyassemR   t   version_infoRB  t   AttributeErrorR  R   R   R   R   R*   R.   R"   R9   R1   R0   R!   RS   Rl   Rm   R  RE   RC   RD   R  R  R  R  R  R  R[  R  R  R  R  R  R   t   Getattrt   Namet   Slicet	   SubscriptR  Rc  RA   t   argvt   file(    (    (    s(   /usr/lib/python2.6/compiler/pycodegen.pyt   <module>   s   """@		+	    =>				


	 