/usr/lib64/python2.7/compiler
NameSizeModeActions
ast.py375080644editdlrm
ast.pyc721250644editdlrm
ast.pyo721250644editdlrm
consts.py4680644editdlrm
consts.pyc7370644editdlrm
consts.pyo7370644editdlrm
future.py18930644editdlrm
future.pyc29560644editdlrm
future.pyo29560644editdlrm
misc.py17940644editdlrm
misc.pyc37330644editdlrm
misc.pyo37330644editdlrm
pyassem.py242680644editdlrm
pyassem.pyc259510644editdlrm
pyassem.pyo253770644editdlrm
pycodegen.py478090644editdlrm
pycodegen.pyc565150644editdlrm
pycodegen.pyo560710644editdlrm
symbols.py144890644editdlrm
symbols.pyc176770644editdlrm
symbols.pyo176430644editdlrm
syntax.py14440644editdlrm
syntax.pyc18820644editdlrm
syntax.pyo18820644editdlrm
transformer.py531160644editdlrm
transformer.pyc476450644editdlrm
transformer.pyo458300644editdlrm
visitor.py38960644editdlrm
visitor.pyc41870644editdlrm
visitor.pyo41870644editdlrm
__init__.py10230644editdlrm
__init__.pyc12970644editdlrm
__init__.pyo12970644editdlrm
Edit: /usr/lib64/python2.7/compiler/pyassem.pyc (25951B)
ó {fc@sdZddlZddlZddlZddlmZddlmZmZm Z m Z dfd„ƒYZ d„Z dfd „ƒYZ d Zd Zd Zd Zde fd„ƒYZd„Zdfd„ƒYZd„Zd„Zdfd„ƒYZdfd„ƒYZeƒjZdS(s/A flow graph representation for Python bytecodeiÿÿÿÿN(tmisc(t CO_OPTIMIZEDt CO_NEWLOCALSt CO_VARARGStCO_VARKEYWORDSt FlowGraphcBs}eZd„Zd„Zd d„Zd„Zd„ZdZd„Z d„Z d„Z d „Z d „Z d „Zd „ZRS(cCs[tƒ|_|_tdƒ|_tjƒ|_|jj|jƒ|jj|jƒdS(Ntexit(tBlocktcurrenttentryRRtSettblockstadd(tself((s(/usr/lib64/python2.7/compiler/pyassem.pyt__init__ s cCsr|jre|jrWdGt|jƒGHdG|jjGHdG|jjGHdG|jjƒGHnt|ƒGHn||_dS(Ntends nexts prevs (t_debugRtreprtnexttprevt get_children(R tblock((s(/usr/lib64/python2.7/compiler/pyassem.pyt startBlocks  cCs<|dkr|jƒ}n|jj|ƒ|j|ƒdS(N(tNonetnewBlockRtaddNextR(R R((s(/usr/lib64/python2.7/compiler/pyassem.pyt nextBlocks cCstƒ}|jj|ƒ|S(N(RR R (R tb((s(/usr/lib64/python2.7/compiler/pyassem.pyR5s cCs|j|jƒdS(N(RR(R ((s(/usr/lib64/python2.7/compiler/pyassem.pytstartExitBlock:sicCs d|_dS(Ni(R(R ((s(/usr/lib64/python2.7/compiler/pyassem.pyt _enable_debug?scCs d|_dS(Ni(R(R ((s(/usr/lib64/python2.7/compiler/pyassem.pyt_disable_debugBscGse|jrdG|GHnt|ƒdkrQt|dtƒrQ|jj|dƒn|jj|ƒdS(Ns ii(Rtlent isinstanceRRt addOutEdgetemit(R tinst((s(/usr/lib64/python2.7/compiler/pyassem.pyR"Es   %cCst|j|jƒ}|S(slReturn the blocks in reverse postorder i.e. each node appears before all of its successors (t order_blocksR R(R torder((s(/usr/lib64/python2.7/compiler/pyassem.pytgetBlocksInOrderLscCs |jjƒS(N(R telements(R ((s(/usr/lib64/python2.7/compiler/pyassem.pyt getBlocksTscCs|jS(s/Return nodes appropriate for use with dominator(R (R ((s(/usr/lib64/python2.7/compiler/pyassem.pytgetRootWscCs4g}x'|jƒD]}|j|jƒƒqW|S(N(R(textendtgetContainedGraphs(R tlR((s(/usr/lib64/python2.7/compiler/pyassem.pyR+[sN(t__name__t __module__RRRRRRRRRR"R&R(R)R+(((s(/usr/lib64/python2.7/compiler/pyassem.pyR s          csêg}tƒ‰|g}xh|r‚|jƒ}|ˆkr?qnˆj|ƒx0|jƒD]"}|ˆkrY|j|ƒqYqYWqWi‰xɈD]Á}tr×|jr×||jdjdks×t||jfƒ‚nˆj |tƒƒxd|j ƒD]V}xMˆj |tƒƒj|ƒ|jrH|jd|k rH|jd}qPqWq÷WqW‡‡fd†}|}xv|j|ƒˆj |ƒ|jr¦|jd}qpn)||k rÏ|j ƒ rÏ|j|ƒnˆsÙPn|ƒ}qpW|S(s8Order blocks so that they are emitted in the right ordericsPx7ˆD]/}x&ˆ|D]}|ˆkrPqqW|SqWdsLtdƒ‚dS(Nis+circular dependency, cannot find next block(tAssertionError(Rtc(t dominatorst remaining(s(/usr/lib64/python2.7/compiler/pyassem.pyt find_nextŒs   ( tsettpopR Rtappendt __debug__RRR/t setdefaultt get_followerstdiscardthas_unconditional_transfer(t start_blockt exit_blockR%ttodoRR0R3((R1R2s(/usr/lib64/python2.7/compiler/pyassem.pyR$bsH        2       RcBszeZdZdd„Zd„Zd„Zd„Zd„Zd„Zd„Z dZ d„Z d„Z d„Z d„ZRS(itcCsPg|_tƒ|_||_tj|_g|_g|_tjdt_dS(Ni( tinstsR4toutEdgestlabelRt_counttbidRR(R RB((s(/usr/lib64/python2.7/compiler/pyassem.pyR¨s      cCs,|jrd|j|jfSd|jSdS(Nss (RBRD(R ((s(/usr/lib64/python2.7/compiler/pyassem.pyt__repr__±s cCs2tt|jƒ}d|j|jdj|ƒfS(Nss (tmaptstrR@RBRDtjoin(R R@((s(/usr/lib64/python2.7/compiler/pyassem.pyt__str__·scCs|d}|jj|ƒdS(Ni(R@R6(R R#top((s(/usr/lib64/python2.7/compiler/pyassem.pyR"¼s cCs|jS(N(R@(R ((s(/usr/lib64/python2.7/compiler/pyassem.pytgetInstructionsÀscCs|jj|ƒdS(N(RAR (R R((s(/usr/lib64/python2.7/compiler/pyassem.pyR!ÃscCs~|jj|ƒt|jƒdks=ttt|jƒƒ‚|jj|ƒt|jƒdkszttt|jƒƒ‚dS(Ni(RR6RR/RFRGR(R R((s(/usr/lib64/python2.7/compiler/pyassem.pyRÆs-t RETURN_VALUEt RAISE_VARARGSt JUMP_ABSOLUTEt JUMP_FORWARDt CONTINUE_LOOPcCs?y|jd\}}Wnttfk r1dSX||jkS(sÆReturns True if there is an unconditional transfer to an other block at the end of this block. This means there is no risk for the bytecode executer to go past this block's bytecode.iÿÿÿÿN(R@t IndexErrort ValueErrort_uncond_transfer(R RJtarg((s(/usr/lib64/python2.7/compiler/pyassem.pyR;Ðs cCst|jƒ|jS(N(tlistRAR(R ((s(/usr/lib64/python2.7/compiler/pyassem.pyRÚscCsNt|jƒ}x8|jD]-}|dtjkr|j|dƒqqW|S(s:Get the whole list of followers, including the next block.ii(R4RR@t PyFlowGraphthasjrelR (R t followersR#((s(/usr/lib64/python2.7/compiler/pyassem.pyR9Ýs cCsbg}xU|jD]J}t|ƒdkr.qn|d}t|dƒr|j|jƒqqW|S(s¨Return all graphs contained within this block. For example, a MAKE_FUNCTION block will contain a reference to the graph for the function body. itgraph(R@RthasattrR6RY(R t containedR#RJ((s(/usr/lib64/python2.7/compiler/pyassem.pyR+çs (RLRMRNRORP(R-R.RCRRERIR"RKR!RRSR;RR9R+(((s(/usr/lib64/python2.7/compiler/pyassem.pyR¥s        tRAWtFLATtCONVtDONERVcBsAeZejZdddd„Zd„Zd„Zd„Zd„Z d„Z d„Z dd„Z d „Z d „ZeƒZx%ejD]ZejejeƒqˆWeƒZx%ejD]Zejejeƒq¹Wd „Zd „Zd „ZiZd„Zd„ZeZeZd„Zd„ZeZ eZ!eZ"eZ#eZ$eZ%eZ&eZ'eZ(eZ)d„Z*e*Z+e*Z,d„Z-e.ej/ƒZ0d„Z1xDe2ƒj3ƒD]3\Z4Z5e4d dkrªe4dZe5eet‚|jƒ|jtks]t‚|jƒ|jt ks|t‚|j ƒS(sGet a Python code object( RrR\R/tcomputeStackDeptht flattenGraphR]t convertArgsR^t makeByteCodeR_t newCodeObject(R ((s(/usr/lib64/python2.7/compiler/pyassem.pytgetCode1s    cCs¸|rtj}|t_nd}x~|jD]s}|d}|dkrKHnt|ƒdkr{dGd|G|GH|d}q+dGd|G|G|dGH|d}q+W|r´|t_ndS(Nit SET_LINENOis s%3di(tsyststdoutR@R(R tiotsavetpctttopname((s(/usr/lib64/python2.7/compiler/pyassem.pytdump=s     cspi‰d}x*ˆjƒD]}t|jƒƒˆ|s*   "W CTÿ2  Bn