/usr/lib/python2.6/compiler
NameSizeModeActions
ast.py358320644editdlrm
ast.pyc685170644editdlrm
ast.pyo685170644editdlrm
consts.py4360644editdlrm
consts.pyc6900644editdlrm
consts.pyo6900644editdlrm
future.py18930644editdlrm
future.pyc29580644editdlrm
future.pyo29580644editdlrm
misc.py17940644editdlrm
misc.pyc37170644editdlrm
misc.pyo37170644editdlrm
pyassem.py261530644editdlrm
pyassem.pyc277820644editdlrm
pyassem.pyo273230644editdlrm
pycodegen.py471010644editdlrm
pycodegen.pyc554240644editdlrm
pycodegen.pyo549490644editdlrm
symbols.py144270644editdlrm
symbols.pyc177210644editdlrm
symbols.pyo176850644editdlrm
syntax.py14440644editdlrm
syntax.pyc18720644editdlrm
syntax.pyo18720644editdlrm
transformer.py516180644editdlrm
transformer.pyc470850644editdlrm
transformer.pyo453250644editdlrm
visitor.py38960644editdlrm
visitor.pyc41950644editdlrm
visitor.pyo41950644editdlrm
__init__.py9990644editdlrm
__init__.pyc12770644editdlrm
__init__.pyo12770644editdlrm
Edit: /usr/lib/python2.6/compiler/pycodegen.pyc (55424B)
gc@sddkZddkZddkZddkZddkZddklZddklZl Z l Z l Z ddkl Z l Z lZlZddklZlZlZlZddklZlZlZlZlZlZlZlZlZddklZyei dZ!Wne"j o d Z!nXhd ddf6d d df6d dd f6d d d f6Z#d Z$dZ%dZ&dZ'ddZ(e)e)dZ*dfdYZ+de+fdYZ,de+fdYZ-de+fdYZ.dfdYZ/dZ0dfdYZ1d fd!YZ2d"e2e1fd#YZ3d$e2e1fd%YZ4d&e2e1fd'YZ5d(fd)YZ6d*e2e6e1fd+YZ7d,e2e6e1fd-YZ8d.fd/YZ9d0e2e9e1fd1YZ:d2Z;d3Z<d4fd5YZ=d6fd7YZ>d8e>fd9YZ?d:e>fd;YZ@d<e>fd=YZAd>e>fd?YZBhe?eiC6e@eiD6eAeiE6eBeiF6ZGd@ZHeIdAjo&xeiJd D]ZKe(eKqWndS(BiN(tStringIO(tasttparsetwalktsyntax(tpyassemtmisctfuturetsymbols(tSC_LOCALt SC_GLOBALtSC_FREEtSC_CELL( t CO_VARARGStCO_VARKEYWORDSt CO_NEWLOCALSt CO_NESTEDt CO_GENERATORtCO_FUTURE_DIVISIONtCO_FUTURE_ABSIMPORTtCO_FUTURE_WITH_STATEMENTtCO_FUTURE_PRINT_FUNCTION(tTupleArgiit CALL_FUNCTIONtCALL_FUNCTION_VARtCALL_FUNCTION_KWtCALL_FUNCTION_VAR_KWiiicCst|d}|i}|it||}y|i|Wntj o n,Xt|dd}|i||idS(NtUtctwb(topentreadtclosetModuletcompilet SyntaxErrortdump(tfilenametdisplaytftbuftmod((s(/usr/lib/python2.6/compiler/pycodegen.pyt compileFile$s   cCs|dj p |dj o tdn|djot||}nM|djot||}n-|djot||}n td|i|iS(s*Replacement for builtin compile() functionsnot implemented yettsingletexectevals6compile() 3rd arg must be 'exec' or 'eval' or 'single'N(tNonet RuntimeErrort InteractiveR!t Expressiont ValueErrorR"tcode(tsourceR%tmodetflagst dont_inherittgen((s(/usr/lib/python2.6/compiler/pycodegen.pyR"2s      tAbstractCompileModecBs2eZdZdZdZdZdZRS(cCs||_||_d|_dS(N(R4R%R.R3(tselfR4R%((s(/usr/lib/python2.6/compiler/pycodegen.pyt__init__Gs  cCs9t|i|i}ti|i|ti||S(N(RR4R5Rt set_filenameR%Rtcheck(R:ttree((s(/usr/lib/python2.6/compiler/pycodegen.pyt _get_treeLs cCsdS(N((R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR"RscCs|iS(N(R3(R:((s(/usr/lib/python2.6/compiler/pycodegen.pytgetCodeUsN(t__name__t __module__R.R5R;R?R"R@(((s(/usr/lib/python2.6/compiler/pycodegen.pyR9Cs    R1cBseZdZdZRS(R-cCs+|i}t|}|i|_dS(N(R?tExpressionCodeGeneratorR@R3(R:R>R8((s(/usr/lib/python2.6/compiler/pycodegen.pyR"\s  (RARBR5R"(((s(/usr/lib/python2.6/compiler/pycodegen.pyR1XsR0cBseZdZdZRS(R+cCs+|i}t|}|i|_dS(N(R?tInteractiveCodeGeneratorR@R3(R:R>R8((s(/usr/lib/python2.6/compiler/pycodegen.pyR"es  (RARBR5R"(((s(/usr/lib/python2.6/compiler/pycodegen.pyR0asR!cBs8eZdZddZdZeiZdZRS(R,icCsP|i}t|}|oddk}|i|GHn|i|_dS(Ni(R?tModuleCodeGeneratortpprintR@R3(R:R&R>R8RF((s(/usr/lib/python2.6/compiler/pycodegen.pyR"ns    cCs*|i|iti|i|dS(N(twritet getPycHeadertmarshalR$R3(R:R'((s(/usr/lib/python2.6/compiler/pycodegen.pyR$vscCs2tii|i}tid|}|i|S(Ns|iiD]-}|ii|o|ii|qqW|iS(N(RVtelementsRUthas_elttremove(R:telt((s(/usr/lib/python2.6/compiler/pycodegen.pyt getLocalss cCsdS(N((R:tnode((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitDictscCs(x!|iD]}|ii|q WdS(N(RURVRW(R:R^RX((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitGlobals cCs|ii|idS(N(RURWRX(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitFunctionscCsdS(N((R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitLambdascCs5x.|iD]#\}}|ii|p|q WdS(N(RURW(R:R^RXtalias((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitImports cCs5x.|iD]#\}}|ii|p|q WdS(N(RURW(R:R^RXRc((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitFroms cCs|ii|idS(N(RURWRX(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitClassscCs|ii|idS(N(RURWRX(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitAssNames(( RARBt__doc__R;R]R_R`RaRbRdReRfRg(((s(/usr/lib/python2.6/compiler/pycodegen.pyRSs         cCs*t|tio|ipdSndS(Nii(t isinstanceRtConsttvalue(R^((s(/usr/lib/python2.6/compiler/pycodegen.pytis_constant_falses  t CodeGeneratorcBsBeZdZdZdZdZdZdZdZ dZ dZ dZ dZ d Zd Zd Zd Zd ZdZdZedZeZdZdZdZdZdZdZddZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)d Z*dZ+d!Z,d"Z-d#Z.d$Z/d%Z0d&Z1d'Z2d(Z3d)Z4d*Z5d+Z6d,Z7dZ8d-Z9d.Z:d/Z;d0Z<d1Z=d2Z>d3Z?d4Z@d5ZAd6ZBd7ZCd8ZDd9ZEd:ZFd;d<ZGeHd=joeGZIeGZJnd>ZId?ZJd@ZKh dAdB6dCdD6dEdF6dGdH6dIdJ6dKdL6dMdN6dOdP6dQdR6dSdT6dUdV6dWdX6ZLdYZMdZZNd[ZOd\ZPd]ZQd^ZRdd_ZSd`ZTdaZUdbZVddcZWdddZXdeZYdfZZdgZ[dhZ\diZ]djZ^dkZ_dlZ`dmZadnZbdoZcdpZddqZedrZfdsZgdtZhduZidvZjdwZkdxZldyZmdzZnd{Zod|Zpd}Zqd~ZrRS(sDefines 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. icCs|idjo|id|i_n|iti|_ti|_d|_ |i d|_ |i i }x|D]}|djo|iitd|_ q|djo|iitq|djo|iitq|djo|iitqqWdS(Nit BINARY_DIVIDEtdivisiontBINARY_TRUE_DIVIDEtabsolute_importtwith_statementtprint_function(t_CodeGenerator__initializedR.t initClasst __class__t checkClassRtStacktlocalstsetupst last_linenot_setupGraphDelegationt_div_opt get_moduletfuturestgraphtsetFlagRRRR(R:Rtfeature((s(/usr/lib/python2.6/compiler/pycodegen.pyR;s*          cCsdS(s)This method is called once for each classN((R:((s(/usr/lib/python2.6/compiler/pycodegen.pyRuscCsy`t|dptt|dptt|dptt|dptWn.tj o"}d|ii}t|nXdS(s*Verify that class is constructed correctlyRt NameFindert FunctionGentClassGensBad class construction for %sN(thasattrtAssertionErrortgetattrRvRA(R:tmsgtintro((s(/usr/lib/python2.6/compiler/pycodegen.pyRwscCsO|ii|_|ii|_|ii|_|ii|_|ii|_dS(N(RtemittnewBlockt startBlockt nextBlockt setDocstring(R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR|s cCs |iiS(sReturn a code object(RR@(R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR@scCs,|idj oti||iS|SdS(N(t class_nameR.Rtmangle(R:RX((s(/usr/lib/python2.6/compiler/pycodegen.pyRscCs ti}t|||iS(N(Rt SymbolVisitorRtscopes(R:R>ts((s(/usr/lib/python2.6/compiler/pycodegen.pyt parseSymbolss  cCs tddS(Ns#should be implemented by subclasses(R/(R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR~scCs|iii|S(N(RyttopRZ(R:RX((s(/usr/lib/python2.6/compiler/pycodegen.pyt isLocalName scCs|id|dS(NtSTORE(t_nameOp(R:RX((s(/usr/lib/python2.6/compiler/pycodegen.pyt storeName scCs|id|dS(NtLOAD(R(R:RX((s(/usr/lib/python2.6/compiler/pycodegen.pytloadNamescCs|id|dS(NtDELETE(R(R:RX((s(/usr/lib/python2.6/compiler/pycodegen.pytdelNamescCs|i|}|ii|}|tjo:|ip|i|d|q|i|d|n|tjo:|ip|i|d|q|i|d|nF|tjp |tjo|i|d|nt d||fdS(Nt_NAMEt_FASTt_GLOBALt_DEREFs unsupported scope for var %s: %d( Rtscopet check_nameR t optimizedRR R R R/(R:tprefixRXR((s(/usr/lib/python2.6/compiler/pycodegen.pyRs    cCs:|io|i|d|n|i|d|dS(sEmit 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. RRN(RR(R:RRX((s(/usr/lib/python2.6/compiler/pycodegen.pyt_implicitNameOp(s cCsXt|dd}|dj o5||ijp|o|id|||_tStS(sEmit 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. tlinenot SET_LINENON(RR.R{RtTruetFalse(R:R^tforceR((s(/usr/lib/python2.6/compiler/pycodegen.pyt set_lineno9s cCs|i||_|i||_|idd|io$|id|i|idnt|i|idd}|i i |i |i |i|idd|iddS(NRit LOAD_CONSTRhtverboset RETURN_VALUE(RRRRtdocRRR^RRytpushR]tvisitR.(R:R^tlnf((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitModuleWs cCsP|i||i||_|i||_|i|i|iddS(NR(RRRRRR^R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitExpressionds  cCsE|i|dd|io|i|in|i|idS(NtisLambdai(t_visitFuncOrLambdaRRRRX(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyRaks cCs|i|dddS(NRi(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyRbqscCs| oD|io:x!|iiD]}|i|qWt|ii}nd}|i||i||i|i}t|i ||i |i |x|i D]}|i|qW|i |t|i x$t|D]}|iddqWdS(NiRi(t decoratorstnodesRtlenRRRR~RR3tfinishRtdefaultst _makeClosuretrangeR(R:R^Rt decoratort ndecoratorsR8tdefaultti((s(/usr/lib/python2.6/compiler/pycodegen.pyRts$     cCs|i||i|i}t|i||i|i||id|ix|i D]}|i |qbW|idt |i |i |d|idd|id|i |idS(NRt BUILD_TUPLEiRt BUILD_CLASS(RRR~RR3RRRRXtbasesRRRR(R:R^R8tbase((s(/usr/lib/python2.6/compiler/pycodegen.pyRfs    cCs |i}t|i}xt|D]}|i|\}}t|oq(n|i||i||i}|id||i|id|i||id||i ||idq(W|i o|i|i n|i|dS(Nt JUMP_IF_FALSEtPOP_TOPt JUMP_FORWARD( RRttestsRRlRRRRRtelse_(R:R^tendtnumtestsRttesttsuitetnextTest((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitIfs(           cCs8|i||i}|i}|i}|id||i||iit|f|i|dt|i|i |id|p||i|id|i|i |id||i ||id|id|ii |i o|i|i n|i|dS(Nt SETUP_LOOPRRRt JUMP_ABSOLUTEt POP_BLOCK(RRRRRzRtLOOPRRRtbodyRtpopR(R:R^tloopRtafter((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitWhiles*            cCs*|i}|i}|i}|iit|f|i||id||i|i|id|i||i|dd|id||i|i |i|i |id||i||id|ii |i o|i|i n|i|dS(NRtGET_ITERRitFOR_ITERRR( RRzRRRRRtlistRtassignRRR(R:R^tstarttanchorR((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitFors(          cCsE|iptd|i|ifn|i||iddS(Ns'break' outside loop (%s, %d)t BREAK_LOOP(RzR#R%RRR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitBreaks   cCsj|iptd|i|ifn|ii\}}|tjo+|i||id||in|t jp |t jo|i|t |i}xA|djo3|d}|i|\}}|tjoPqqW|tjotd|i|ifn|id||in1|t jo#d}t||i|ifndS(Ns 'continue' outside loop (%s, %d)Riit CONTINUE_LOOPs7'continue' not allowed inside 'finally' clause (%s, %d)( RzR#R%RRRRRRtEXCEPTt TRY_FINALLYRt END_FINALLY(R:R^tkindtblockRt loop_blockR((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitContinues2          cCs}|i}xI|id D]:}|i||i|||i|idqW|i|id|i|dS(NiR(RRRRR(R:R^tjumpRtchild((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitTests   cCs|i|ddS(NR(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitAndscCs|i|ddS(Nt JUMP_IF_TRUE(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitOrscCs|i}|i}|i|i|id||id|i|i|id||i||id|i|i|i|dS(NRRR(RRRRtthenRR(R:R^tendblockt elseblock((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitIfExps     cCsD|i|i|i}xy|id D]j\}}|i||id|id|id||id||i|idq*W|io4|id\}}|i||id|nt|idjoT|i}|id||i||id |id|i|ndS( NitDUP_TOPt ROT_THREEt COMPARE_OPRRiRtROT_TWO(RtexprRtopsRRRR(R:R^tcleanuptopR3R((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitCompare$s,            c Cs|i|d|i}|id|_|idd|id|id|g}xttt|i|iD]\}}|i|\}}d}x>|i D]3} |djo|i }n|i| |qW|i d|||fqW|id||i|i |idx|D]z\}}}|oG|i } |id | |i||id |i| n|id ||i|q8W|id ||id|_dS( Ns$list%dit BUILD_LISTiRRRt LIST_APPENDRRRR(Rt_CodeGenerator__list_countRRtzipRRtqualsRR.tifsRtinsertRRR( R:R^ttmpnametstackRtfor_RRtconttif_tskip_one((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitListComp?s@   "       cCs|i}|i}|i|i|id|i||i|dt|id||i|i|i||fS(NRRR(RRRRRRRR(R:R^RR((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitListCompForcs     cCsN|i|dt|i|i|id||i|iddS(NRRR(RRRRRR(R:R^tbranch((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitListCompIfps  cCs|ii}|o[x|D]}|id|qW|idt||id||id|n!|id||id|dS(Nt LOAD_CLOSURERRt MAKE_CLOSUREt MAKE_FUNCTION(Rt get_free_varsRR(R:R8targstfreesRX((s(/usr/lib/python2.6/compiler/pycodegen.pyRwscCst||i|i|i}t|i||i|i||i|d|i |ii di |i d|i dddS(NiRRi( tGenExprCodeGeneratorRRR~RR3RRRRRtiterR(R:R^R8((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitGenExprs   c Cs|i|g}xttt|i|iD]\}}|i|\}}}d}x>|iD]3} |djo|i}n|i| |qiW|i d||||fq5W|i|i |i d|i dx|D]\}}}}|oG|i} |i d| |i ||i d|i | n|i d||i ||i d|ii|i |qW|i dddS(Nit YIELD_VALUERRRRR(RRRRRRR.RRRRRRRRzR( R:R^RRR RRRR R R ((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitGenExprInners: "            cCs|i}|i}|i}|iit|f|id||io|idn|i|i|id|i ||i |dt |id||i |i|i |||fS(NRs.0RRR( RRzRRRt is_outmostRRRRRRR(R:R^RRR((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitGenExprFors       cCsN|i|dt|i|i|id||i|iddS(NRRR(RRRRRR(R:R^R((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitGenExprIfs  cCs|i}|i||i|i|i|id||i|id|idd|io$|i|i|iddn|idd|i||iddS(NRRt LOAD_GLOBALRt RAISE_VARARGSii(RRRRRRtfail(R:R^R((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitAsserts       cCs|i|d}|io|i|i|d}n|io|i|i|d}n|io|i|i|d}n|id|dS(NiiR (Rtexpr1Rtexpr2texpr3R(R:R^tn((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitRaises    c Csh|i}|i}|i}|io|i}n|}|i||id||i||iit|f|i|i |id|ii |id||i |t |i d}x>tt |i D]'}|i |\}} }|i||oa|id|i||idd|i} |id| |i|id n|id | o|i| n|id |id |i||id||o|i| n |i|o|id qqW|id |io!|i||i|in|i|dS( Nt SETUP_EXCEPTRRiRRsexception matchRRR(RRRRRRzRRRRRRRthandlersR( R:R^RR)RtlElsetlastRRttargettnext((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitTryExceptsZ                      cCs|i}|i}|i||id||i||iit|f|i|i|id|ii |idd|i||iit |f|i|i |id|ii dS(Nt SETUP_FINALLYRRR( RRRRRzRRRRRR.Rtfinal(R:R^RR0((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitTryFinally%s        cCs|i}|i}d|i}|id7_|i||i|i|id|idd|id|idd|idd |idjo|id n|id ||id ||i ||i i t |f|idj o4|id ||id||i|in|i|i |id|i i|idd|i ||i i t|f|id|id|i i|id8_dS(Ns$value%diRt LOAD_ATTRt__exit__Rt __enter__RiRRR/RRRRt WITH_CLEANUPR(Rt_CodeGenerator__with_countRRRRtvarsR.RRRzRRRRR(R:R^RR0tvaluevar((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitWith8s>             cCs.|i||i|i|iddS(NR(RRRR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitDiscard\s cCs|id|idS(NR(RRk(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitConstascCs'|id|i|i|idS(NR(RRXRR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitKeyworddscCsdS(N((R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyR`hscCs!|i||i|idS(N(RRRX(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitNamels cCs|i|dS(N(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitPasspscCs|i||iitodnd}x|iD]\}}tdjo$|id||iddn|id||idd}|o|i ||i |q7|i |q7WdS(NiiiRt IMPORT_NAMEt.( RRt checkFlagRRUtVERSIONRR.tsplitt _resolveDotsR(R:R^tlevelRXRcR)((s(/usr/lib/python2.6/compiler/pycodegen.pyRdss     cCs`|i||i}|djo|iit o d}ntd|iD}tdjo$|id||id|n|id|i x|iD]\}}tdjoz|djo8d|_ |idt |idjpt dS|id ||i ||i|p|q|id |qW|id dS( Niicssx|]\}}|VqWdS(N((t.0RXRc((s(/usr/lib/python2.6/compiler/pycodegen.pys s iRR?t*t IMPORT_STARt IMPORT_FROMR(RRERRARttupleRURBRtmodnamet namespaceRRRDR(R:R^REtfromlistRXRc((s(/usr/lib/python2.6/compiler/pycodegen.pyRes,  !        cCsP|id}t|djodSx"|dD]}|id|q2WdS(NR@iR2(RCRR(R:RXteltsR\((s(/usr/lib/python2.6/compiler/pycodegen.pyRDs  cCs0|i|i|id|i|idS(NR2(RRRRtattrname(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitGetattrscCs|i||i|it|id}xltt|iD]U}|i|}||jo|idnt|ti o|i|qFqFWdS(NiR( RRRRRRRRiRtNode(R:R^tdupsRR\((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitAssigns   cCse|idjo|i|in>|idjo!|i||i|in dG|iGHdS(Nt OP_ASSIGNt OP_DELETEtoops(R6RRXRR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyRgs  cCs|i|i|idjo |id|i|inB|idjo |id|i|indG|iGH|GHdS(NRTt STORE_ATTRRUt DELETE_ATTRswarning: unexpected flags:(RRR6RRRO(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitAssAttrs   tUNPACK_SEQUENCEcCsUt|djo|i|t|inx|iD]}|i|q:WdS(NRU(tfindOpRRRR(R:R^RR((s(/usr/lib/python2.6/compiler/pycodegen.pyt_visitAssSequences  icCs|i|ddS(Nt UNPACK_TUPLE(R\(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitAssTuplescCs|i|ddS(Nt UNPACK_LIST(R\(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitAssListscCsg|i|t|i}|i|d|i|i|i|i|i|i|ddS(Ntloadtstore(Rtwrap_augR^RRRt_augmented_opcodeR(R:R^taug_node((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitAugAssigns  t INPLACE_ADDs+=tINPLACE_SUBTRACTs-=tINPLACE_MULTIPLYs*=tINPLACE_DIVIDEs/=tINPLACE_FLOOR_DIVIDEs//=tINPLACE_MODULOs%=t INPLACE_POWERs**=tINPLACE_RSHIFTs>>=tINPLACE_LSHIFTs<<=t INPLACE_ANDs&=t INPLACE_XORs^=t INPLACE_ORs|=cCsF|djo|i|in"|djo|i|indS(NRaRb(RRXR(R:R^R5((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitAugNames  cCs|djo=|i|i|id|id|i|in;|djo-|id|id|i|indS(NRaRR2RbRRW(RRRRRO(R:R^R5((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitAugGetattrs     cCs|djo|i|dn|djod}|io|dB}n|io|dB}n|djo|idn,|djo|idn|id |id |ndS( NRaiRbiiRitROT_FOURRsSTORE_SLICE+%d(t visitSlicetlowertupperR(R:R^R5tslice((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitAugSlices       cCsP|djo|i|dn,|djo|id|idndS(NRaiRbRt STORE_SUBSCR(tvisitSubscriptR(R:R^R5((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitAugSubscripts    cCs|i|i|idjo|iddn|i|i|idjo|idn|i|i|iddS(NRRt EXEC_STMT(RRRyR.RRV(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitExecscCsd}d}|i||i|ixI|iD]>}|i|t|tio|d}q3|d}q3W|idj o|i|in|i dj o|i|i n|idj }|i dj }t ||f}|i ||d>|BdS(Niii( RRR^RRiRtKeywordt star_argsR.t dstar_argstcallfunc_opcode_infoR(R:R^tpostkwtargt have_start have_dstartopcode((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitCallFunc#s$   cCs|i||io|i|inxn|iD]c}|io|idn|i||io|id|idq5|idq5W|io| o|idndS(NRRt PRINT_ITEM_TOt PRINT_ITEMR(RtdestRRR(R:R^tnewlineR((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitPrint7s       cCs?|i|dd|io|idn|iddS(NRitPRINT_NEWLINE_TOt PRINT_NEWLINE(RRR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitPrintnlGs cCs.|i||i|i|iddS(NR(RRRkR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitReturnNs cCs.|i||i|i|iddS(NR(RRRkR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitYieldSs cCsB|i|id}|io|i|i|dB}n|io|i|i|dB}n|oS|djo|idq|djo|iddq|iddn|idjo|id|nZ|id jo|id |n5|id jo|id |nd G|iGHdS(NiiiRitDUP_TOPXtOP_APPLYsSLICE+%dRTsSTORE_SLICE+%dRUsDELETE_SLICE+%ds weird slice(RRRwRxRR6(R:R^taug_flagRy((s(/usr/lib/python2.6/compiler/pycodegen.pyRvZs,     cCs|i|ix|iD]}|i|qWt|idjo|idt|in|o|iddn|idjo|idnC|idjo|idn"|id jo|id ndS( NiRRiRt BINARY_SUBSCRRTR{RUt DELETE_SUBSCR(RRtsubsRRR6(R:R^Rtsub((s(/usr/lib/python2.6/compiler/pycodegen.pyR|us cCs1|i|i|i|i|i|dS(N(RtlefttrightR(R:R^R((s(/usr/lib/python2.6/compiler/pycodegen.pytbinaryOpscCs|i|dS(Nt BINARY_ADD(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitAddscCs|i|dS(NtBINARY_SUBTRACT(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitSubscCs|i|dS(NtBINARY_MULTIPLY(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitMulscCs|i||iS(N(RR}(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitDivscCs|i|dS(NtBINARY_FLOOR_DIVIDE(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitFloorDivscCs|i|dS(Nt BINARY_MODULO(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitModscCs|i|dS(Nt BINARY_POWER(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitPowerscCs|i|dS(Nt BINARY_LSHIFT(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitLeftShiftscCs|i|dS(Nt BINARY_RSHIFT(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitRightShiftscCs!|i|i|i|dS(N(RRR(R:R^R((s(/usr/lib/python2.6/compiler/pycodegen.pytunaryOpscCs|i|dS(Nt UNARY_INVERT(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitInvertscCs|i|dS(NtUNARY_NEGATIVE(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitUnarySubscCs|i|dS(NtUNARY_POSITIVE(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitUnaryAddscCs|i|dS(NR(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitUnaryInvertscCs|i|dS(Nt UNARY_NOT(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitNotscCs|i|dS(Nt UNARY_CONVERT(R(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pytvisitBackquotescCsD|i|dx,|dD] }|i||i|qWdS(Nii(RR(R:RRR^((s(/usr/lib/python2.6/compiler/pycodegen.pytbitOps   cCs|i|idS(Nt BINARY_AND(RR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitBitandscCs|i|idS(Nt BINARY_OR(RR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitBitorscCs|i|idS(Nt BINARY_XOR(RR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitBitxorscCs|idtdS(NR(RtEllipsis(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitEllipsisscCsK|i|x|iD]}|i|qW|idt|idS(NR(RRRRR(R:R^R\((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitTuples   cCsK|i|x|iD]}|i|qW|idt|idS(NR(RRRRR(R:R^R\((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitLists   cCs>x|iD]}|i|q W|idt|idS(Nt BUILD_SLICE(RRRR(R:R^R((s(/usr/lib/python2.6/compiler/pycodegen.pyt visitSliceobjs cCs||i||iddxX|iD]M\}}|id|i||i||id|idq'WdS(Nt BUILD_MAPiRRR{(RRtitemsR(R:R^tktv((s(/usr/lib/python2.6/compiler/pycodegen.pyR_s      N(sRARBRhRR.RtRR;RuRwR|R@RRR~RRRRRRRRRSRRRRRRaRbRRfRRRRRRRRRRRR RRRRRRRR"R'R.R1R6R9R:R;R<R`R=R>RdReRDRPRSRgRYR\RBR^R`RfRdRsRtRzR}RRRRRRRvR|RRRRRRRRRRRRRRRRRRRRRRRRRR_(((s(/usr/lib/python2.6/compiler/pycodegen.pyRms                             $  !    2  $                                                    tNestedScopeMixincBseZdZdZRS(s>Defines initClass() for nested scoping (Python 2.2-compatible)cCs(t|i_t|i_t|i_dS(N(RSRvRtFunctionCodeGeneratorRtClassCodeGeneratorR(R:((s(/usr/lib/python2.6/compiler/pycodegen.pyRus  (RARBRhRu(((s(/usr/lib/python2.6/compiler/pycodegen.pyRsREcBs)eZeiZdZdZdZRS(cCsEtid|i|_ti||_|it||dS(Ns( Rt PyFlowGraphR%RRt find_futuresRt _ModuleCodeGenerator__super_initR(R:R>((s(/usr/lib/python2.6/compiler/pycodegen.pyR;s cCs|S(N((R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR~sN(RARBRmR;RR.RR~(((s(/usr/lib/python2.6/compiler/pycodegen.pyREs  RCcBs/eZeiZdZdZdZdZRS(cCs3tid|i|_|it||dS(Ns (RRR%Rt$_ExpressionCodeGenerator__super_initR(R:R>((s(/usr/lib/python2.6/compiler/pycodegen.pyR; s cCs|S(N((R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR~sN(( RARBRmR;RR.RRR~(((s(/usr/lib/python2.6/compiler/pycodegen.pyRCs   RDcBs8eZeiZdZdZdZdZdZ RS(cCsMtid|i|_|i|i|t|||iddS(Ns R(RRR%Rt%_InteractiveCodeGenerator__super_initRRR(R:R>((s(/usr/lib/python2.6/compiler/pycodegen.pyR;s    cCs|S(N((R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR~ scCs!|i|i|iddS(Nt PRINT_EXPR(RRR(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyR:#sN(( RARBRmR;RR.RRR~R:(((s(/usr/lib/python2.6/compiler/pycodegen.pyRDs    tAbstractFunctionCodecBsGeZdZdZdZdZdZdZdZeZ RS(iic CsW||_||_|o't}d|i}|id|_n |i}t|i\}} ti||i |dd|_ ||_ |i | o|i o|i|i nt|i|i|dd} |ii| i|io|i itn|io|i itn|i|| o|i|indS(Ns iRRi(RtmoduleRt lambdaCountRXtgenerateArgListtargnamesRRR%RRt super_initRRRR3RRyRR]tvarargsRR tkwargsRRtgenerateArgUnpack( R:tfuncRRRR)tklassRXRt hasTupleArgR((s(/usr/lib/python2.6/compiler/pycodegen.pyR;-s.       !   cCs|iS(N(R(R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR~JscCs<|ii|ip|iddn|iddS(NRR(RtstartExitBlockRRR.(R:((s(/usr/lib/python2.6/compiler/pycodegen.pyRMs  cCsdx]tt|D]I}||}t|to)|idd|d|i|qqWdS(Nt LOAD_FASTs.%di(RRRiRJRtunpackSequence(R:RRR((s(/usr/lib/python2.6/compiler/pycodegen.pyRSs  cCstdjo|idt|n|idt|x?|D]7}t|to|i|qD|id|qDWdS(NiRZR]R(RBRRRiRJRR(R:ttupR\((s(/usr/lib/python2.6/compiler/pycodegen.pyRZs ( RARBRRR;R~RRRt unpackTuple(((s(/usr/lib/python2.6/compiler/pycodegen.pyR)s     RcBs)eZeiZdZeiZdZRS(cCs||_|||_|i||||||ii|ii|ii|ii|iidj o|ii t ndS(N( RRt"_FunctionCodeGenerator__super_initRt setFreeVarsRt setCellVarst get_cell_varst generatorR.RR(R:RRRRR)((s(/usr/lib/python2.6/compiler/pycodegen.pyR;ns  N( RARBRmR;RR.RRR(((s(/usr/lib/python2.6/compiler/pycodegen.pyRgs  RcBs)eZeiZdZeiZdZRS(cCsu||_|||_|i||d|||ii|ii|ii|ii|iit dS(Ni( RRt!_GenExprCodeGenerator__super_initRRRRRRR(R:tgexpRRR)((s(/usr/lib/python2.6/compiler/pycodegen.pyR;~s   N( RARBRmR;RR.RRR(((s(/usr/lib/python2.6/compiler/pycodegen.pyRws  tAbstractClassCodecBs#eZdZdZdZRS(cCs|i|_||_ti|i|idddd|_|it|i |i dd}|i i |i |iit|io|i|indS(NRiRiR(RXRRRRR%RRRR3RRyRR]RRRR(R:RRRR((s(/usr/lib/python2.6/compiler/pycodegen.pyR;s    cCs|iS(N(R(R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR~scCs+|ii|id|iddS(Nt LOAD_LOCALSR(RRR(R:((s(/usr/lib/python2.6/compiler/pycodegen.pyRs  (RARBR;R~R(((s(/usr/lib/python2.6/compiler/pycodegen.pyRs RcBs)eZeiZdZeiZdZRS(cCs||_|||_|i||||ii|ii|ii|ii|i||i dd|i d|i o$|i d|i |i dndS(NRRARBRRh( RRt_ClassCodeGenerator__super_initRRRRRRRRR(R:RRR((s(/usr/lib/python2.6/compiler/pycodegen.pyR;s     N( RARBRmR;RR.RRR(((s(/usr/lib/python2.6/compiler/pycodegen.pyRs  cCsg}g}d}xtt|D]}||}t|to|i|q%t|to>|it|d||iti ||d}q%t d|q%W|||fS(s&Generate an arg list marking TupleArgsiiisunexpect argument type:( RRRitstrtappendRJRtextendRtflattenR2(targlistRtextratcountRR\((s(/usr/lib/python2.6/compiler/pycodegen.pyRs cCs#t}t||dd|iS(s5Find the op (DELETE, LOAD, STORE) in an AssTuple treeRi(tOpFinderRR(R^R((s(/usr/lib/python2.6/compiler/pycodegen.pyR[s RcBs&eZdZdZeZeZRS(cCs d|_dS(N(R.R(R:((s(/usr/lib/python2.6/compiler/pycodegen.pyR;scCsD|idjo|i|_n!|i|ijo tdndS(Nsmixed ops in stmt(RR.R6R2(R:R^((s(/usr/lib/python2.6/compiler/pycodegen.pyRgs(RARBR;RgRYR|(((s(/usr/lib/python2.6/compiler/pycodegen.pyRs  t DelegatorcBs eZdZdZdZRS(sBase 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. cCs ||_dS(N(tobj(R:R((s(/usr/lib/python2.6/compiler/pycodegen.pyR;scCst|i|S(N(RR(R:tattr((s(/usr/lib/python2.6/compiler/pycodegen.pyt __getattr__s(RARBRhR;R(((s(/usr/lib/python2.6/compiler/pycodegen.pyRs  t AugGetattrcBseZRS((RARB(((s(/usr/lib/python2.6/compiler/pycodegen.pyRstAugNamecBseZRS((RARB(((s(/usr/lib/python2.6/compiler/pycodegen.pyRstAugSlicecBseZRS((RARB(((s(/usr/lib/python2.6/compiler/pycodegen.pyRst AugSubscriptcBseZRS((RARB(((s(/usr/lib/python2.6/compiler/pycodegen.pyRscCst|i|S(N(twrapperRv(R^((s(/usr/lib/python2.6/compiler/pycodegen.pyRcst__main__(LRQRJRIRMtsyst cStringIORtcompilerRRRRRRRRtcompiler.constsR R R R R RRRRRRRRtcompiler.pyassemRt version_infoRBtAttributeErrorRRRRRR*R.R"R9R1R0R!RSRlRmRRERCRDRRRRRRR[RRRRRRtGetattrtNametSlicet SubscriptRRcRAtargvtfile(((s(/usr/lib/python2.6/compiler/pycodegen.pyts     """@       + =>