Lc @ s d 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 f d YZ d Z d f d YZ d Z d Z d Z d Z d e f d YZ d Z d f d YZ d Z d Z d f d YZ d f d YZ e i Z d S( s/ A flow graph representation for Python bytecodeiN( t misc( t CO_OPTIMIZEDt CO_NEWLOCALSt CO_VARARGSt CO_VARKEYWORDSt FlowGraphc B s e 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 RS( c C s[ t | _ | _ t d | _ t i | _ | i i | i | i i | i d S( Nt exit( t Blockt currentt entryR R t Sett blockst add( t self( ( s( /usr/lib64/python2.6/compiler/pyassem.pyt __init__ s c C sg | i oP | i o7 d Gt | i GHd G| i i GHd G| i i GHn t | GHn | | _ d S( Nt ends nexts ( t _debugR t reprt nextt get_children( R t block( ( s( /usr/lib64/python2.6/compiler/pyassem.pyt startBlock s c C s> | d j o | i } n | i i | | i | d S( N( t Nonet newBlockR t addNextR ( R R ( ( s( /usr/lib64/python2.6/compiler/pyassem.pyt nextBlock s c C s t } | i i | | S( N( R R R ( R t b( ( s( /usr/lib64/python2.6/compiler/pyassem.pyR 5 s c C s | i | i d S( N( R R ( R ( ( s( /usr/lib64/python2.6/compiler/pyassem.pyt startExitBlock: s i c C s d | _ d S( Ni ( R ( R ( ( s( /usr/lib64/python2.6/compiler/pyassem.pyt _enable_debug? s c C s d | _ d S( Ni ( R ( R ( ( s( /usr/lib64/python2.6/compiler/pyassem.pyt _disable_debugB s c G s | i o d G| GHn | d d j o | i i | i n t | d j o, t | d t o | i i | d n | i i | d S( Ns i t RETURN_VALUEt YIELD_VALUEi i ( R R ( R R t addOutEdgeR t lent isinstanceR t emit( R t inst( ( s( /usr/lib64/python2.6/compiler/pyassem.pyR# E s 'c C s xL | i i D]; } | | i j o q n | i p | i | i q q Wt | i h } | i | i | | i | i | j o | i | i n | S( sl Return the blocks in reverse postorder i.e. each node appears before all of its successors ( R t elementsR R R t dfs_postorderR t reverset fixupOrdert append( R R t order( ( s( /usr/lib64/python2.6/compiler/pyassem.pyt getBlocksInOrderN s c C s$ | i | | | i | | d S( s" Fixup bad order introduced by DFS.N( t fixupOrderHonorNextt fixupOrderForward( R R t default_next( ( s( /usr/lib64/python2.6/compiler/pyassem.pyR( c s c C s h } x( t t | D] } | | | |