Hc#@sddklZddkTddklZlZddklZddklZddk l Z l Z ddk Z dd d d d d ddddddddddddddddddd d!d"d#gZ hZxaed$D]SZeeZeid%oqneid&oeeed' Z5e*e+d?Z6e*e+d@Z7e*e+dAZ8e*e+dBZ9e*e1e+dCZ:e*e+e+dDZ;e*e+dEZ<e*e+dFZ=e*e1e+dGZ>e*dHfe+e+fe+dIZ?dJZ@e*e+dKZAheBeC6eDeE6ZFeGgZHeID]Z%eHe%e%fq[HZJe*e+dLZKe*e+dMZLdNZMde&fdOYZNde&fdPYZOxTeID]LZePeOee o1edQZQeReOeeeMeQeenqCWhZSx.eTeUD] \ZVZeVeSeVs  cCs ||j S(N((R-R3((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyt__ne__FscCs|i|idS(N(t LOAD_CONSTR&(R-R((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyt__call__Is(svalueshashshashable( t__name__t __module__t__doc__t __slots__R.R0R1R4R5R7(((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR *s    cBseZdZgZRS(sBase class for AST nodes(R8R9R:R;(((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRSscsfd}t|S(Nc sfd}d}fd}ddk}|id}td|d|did id |d gd |} xLt|d D]:\} } t| tot| d d| | ss( tinspectt getargspectdictR:R9t enumeratet isinstancetstrtpropertytupdateR2R( tframetnameRBt old_localsR=R0R7RJR?tdRHta(tmixinsR@(RBs7/usr/lib/python2.6/site-packages/peak/util/assembler.pytcallbackYs    " (R(RWR@RX((R@RWs7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRWscCs&|djo|fS|i|dS(N(tNonet LOAD_GLOBAL(RSR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR }s cCsp|djo|fS||ijp||ijo|i|S|it@o|i|S|i|SdS(N(RYt co_cellvarst co_freevarst LOAD_DEREFtco_flagst CO_OPTIMIZEDt LOAD_FASTt LOAD_NAME(RSR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR s  cCs%|djo|fS||tiS(N(RYRt RETURN_VALUE(R&R((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR s t_PasscBseZddZdZRS(cCsdS(N((R-R((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR7scCstS(N(R+(R-((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyt __nonzero__sN(R8R9RYR7Rd(((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRcs cCsuyt|}Wn)tj ottt||gSX|djott||S|||i|dS(N( RRR R tgetattrRYRRt LOAD_ATTR(tobRSR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs  c CsA|djok|t|t||pd|pd|f}|o*|p|p|p|ott|S|Sn|||x!|D]\}} ||| qWt|} t|} |oC|o||||i| | S|||i| | Sn3|o|||i| | S|i| | SdS(N((( RYR<RR REtCALL_FUNCTION_VAR_KWtCALL_FUNCTION_VARtCALL_FUNCTION_KWt CALL_FUNCTION( RBR?tkwargststartdstartfoldRtdatatktvtargctkwargc((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR s* 2#       c Cs |djo|t||fSt}t}||i||ix|D]\}}t}ttid|fg|||iti ti ti ti ||i dj o||i n||ti qPW|ti |i ||||dS(Nsexception match(RYR<Rt SETUP_EXCEPTt POP_BLOCKRRtDUP_TOPt JUMP_IF_FALSEtPOP_TOPt stack_sizet JUMP_FORWARDt END_FINALLYt stack_unknown( tbodythandlerstelse_Rtokaytdonettypthandlert next_test((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs,         cCs5|djo|ot|fStS||dS(N(RYR<R(R~R((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs  cCs;|djo ||fS|ti|ti|tidS(N(RYRt SETUP_FINALLYRvR|(R~RR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs  cCsp|djo|fS||ijp||ijo|i|S|it@o|i|S|i|SdS(N(RYR[R\t STORE_DEREFR^R_t STORE_FASTt STORE_NAME(RSR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs  cCs8|djot|fS|it|||S(N(RYR<tUNPACK_SEQUENCERE(tnodesR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs c CsV|djo|||fStt}}||ti||i|||i|S(N(RYRRtGET_ITERtFOR_ITERt JUMP_ABSOLUTE(titerabletassignR~RtL1tL2((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR s  cCsH|djo|fS||ti}ttdo|in|S(Ni(RYRt YIELD_VALUEt stack_effectsRy(R&RRF((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR s  cCs|djo|fS|id7_zod|i}|id|itidjo|idn|i|||}|i|Wd|id8_X|S(Nis_[%r]is2.4tappend( RYt _tmp_levelt BUILD_LISTRwtsystversionRfRt DELETE_FAST(R~RttempRF((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR"!s      cCsn|djo|fS|id|i||}tidjo|id|in |i|S(Ns_[%r]s2.4i(RYR`RRRRkRyt LIST_APPEND(R&RRF((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR#4s    cCs|djo|||fSt}t}|||iti||idj o|i|n||ti||dS(N(RYRRxRRyRzR{(tcondtthenRRt else_clausetend_if((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRJs   sc Cs:|djo#||t|||t|fS|i||||}|||idj o|in|i|}|o||n|iox|i}x|D]}|i|qWt i djo|i t |n|i ||it |t |S|i ||it |SdS(Ns2.5(RYtntupleR<tnestedRztreturn_RR\t LOAD_CLOSURERRt BUILD_TUPLERER6t MAKE_CLOSUREt MAKE_FUNCTION( R~RSR?tvarR@tdefaultsRtctfrees((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR!Us( #     cCs(t|to|Sttt|S(N(RNt basestringR<tmapR(tseq((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRkscCs7|djott|t|St|djo+|d\}}||||i|St}t}||xZ|d D]N\}}|||i|i|i||i ||i qW|d\}}|||i||i ||||i |i ||S(Niii( RYRRR<REt COMPARE_OPRRwt ROT_THREERxRyR{tROT_TWO(texprtopsRtoptargtfailtfinish((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRss2                 cCs|djottt|St}xc|d D]W}yt|ow5nWn)tj o|||iti q5X|||Sq5W||d|dS(Ni( RYRRR<RRRRxRRy(tvaluesRtendR&((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs     cCs|djottt|St}xc|d D]W}yt|pw5nWn)tj o|||iti q5X|||Sq5W||d|dS(Ni( RYRRR<RRRt JUMP_IF_TRUERRy(RRRR&((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs     cCsPy||_|SWn8ttfj o&t|i|i||i|iSXdS(N(R8R)tAttributeErrorRt func_codet func_globalst func_defaultst func_closure(tfRS((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyt with_names  cBseZdZd ZdZdZdZdZdZxTe e D]HZ e e e jo.e dZeee e e e e d-Z?d.Z@d/ZAd0ZBhd1ZCd5d2ZDRS(8isscCsatd|_dg|_g|_g|_td|_|ii|_g|_ g|_ dS(NtB( RRRYt co_conststco_namest co_varnamest co_lnotabRtemitRt stack_history(R-((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR.s    cCsv|i}|djo2|t||d?d@||d?d@n||||d@||d?d@dS(Niiiii(Rt EXTENDED_ARG(R-RRR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytemit_args    cCsd|i}tittg}tig}|D]+\}}}||jo|||q/q/~S(N(RRLtfromkeysRR(R-tvnthlt_[1]tofsRR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytlocals_writtens cCs |ip||_|_dS|ii}||i}t|i|i}|pdSx0|djo"|d|d|d8}q]Wx6|djo(|||d|d8}d}qW|p|o||||n||_t|i|_dS(Nii(tco_firstlinenot _last_lineRRRERt _last_lineofs(R-tlnoRt incr_linet incr_addr((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyt set_linenos0             cCs-|itt|itO_|itS(N(t stackchangeRRR^t CO_GENERATORR(R-((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR5sc Cs|idd}t}yt|Wntj o t}nXxy&|ii||}|i|}Wn3tj o't|i}|ii |Pn4Xt |t |jo|p ||joPn|d}qFqF|i t |S(Nii(ii( RR,R'R)R+Rtindext ValueErrorRERR2RR6(R-tconsttposR(Rtit((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR6?s(  - cCsN|id|d||df|i}||||||dS(Nii(RR(R-RsRtRtextraR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRkVs #  cCs|i||tddS(Ni(RkRi(R-RsRt((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRi[scCs|i||tddS(Ni(RkRj(R-RsRt((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRj^scCs|i||tddS(Ni(RkRh(R-RsRt((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRhascCs'|i|df|it|dS(Ni(RRR(R-tcount((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRdscCs'|i|df|it|dS(Ni(RRR(R-R((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRhscCs'|id|f|it|dS(Ni(RRR(R-R((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRlscCs(|id|it|idS(Nii(ii(RRRbR}(R-((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRbps  cCs'|i|df|it|dS(Ni(RRt BUILD_SLICE(R-R((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRuscCs+|i||df|it|dS(Ni(RRtDUP_TOPX(R-R((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRzscCs'|i|df|it|dS(Ni(RRt RAISE_VARARGS(R-Rs((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR~scCs+|id|df|it|dS(Ni(RRR(R-t ndefaults((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRscCsItidjo d}n|id||df|it|dS(Ns2.5i(RRRRR(R-Rtfreevars((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs cCs t|iS(N(RER(R-((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytherescCs|djotdn||ijo ||_nt|it|id}|djo|ii|ig|n||_dS(NisStack underflowi(Rt co_stacksizeRERRtextendt_ss(R-tsizetbytes((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytset_stack_sizes    cCs|iS(N(R(R-((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytget_stack_sizescCsN|\}}|idjotdn|i|8_|i|7_dS(Ns#Unknown stack size at this location(RRYRRz(R-t.1tinputstoutputs((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs  cCs d|_dS(N(RYR(R-((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR}scCs|t|ijom|t|ijotd|t|in|i}|djo||_}||i|Rt copy_linenoR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyt from_functionYscCsaddk}|i|i|i|}|o |i|i|i|_n|i|_|S(Ni(RJt from_spectco_nametgetargsRRt co_filenameR\(R>RRRJR-((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR_s  cs||_t|_ii||o#ii|itO_n|o#ii|itO_nfdxbt |D]T\}}t |t p8dt |}|i|<i ||qqWS(NcsSit|x9|D]1}t|tp|qi|qWdS(N(RRERNRR(R?R(R-t tuple_arg(s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR!us t.(RREt co_argcountRRRR^t CO_VARARGStCO_VARKEYWORDSRMRNRROR`(R>RSR?RR@tnargRt dummy_name((R-R!s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRis&     cCs|i}|dj|djjotd||n|d@||d<|d?d@||d<|djo6|dL}|d@||d<|d?d@||dR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs    ccsd}d}|i}t|}x||jo||}|tjol||d||dd|}d}|tjo|d}|d7}q$n|||fV|d7}q$||dfV|d7}q$WdS(Niiiiii(RREt HAVE_ARGUMENTRRY(R-tit extended_argRtnRtoparg((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyt__iter__s$     "   cCsrti|i}g}|D]}||jo ||qq~}|o#|it|7_|indS(N(RLRR\R<t_locals_to_cells(R-tnamestnowfreeRR-tnewfree((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytmakefrees 2c Csti|i|i}g}|D]}||jo ||q$q$~}|o|it@ptdnt|i}t|}|it|7_|ioV|i t tg}t t|iD]}||||||fq~n|i ndS(Ns'Can't use cellvars in unoptimized scope( RLRR[R\R^R_RRER<t_patchtderef_to_dereftrangeR0( R-R1tnowcellsRR-tnewcellstcctnct_[2]((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyt makecellss2  Mc Cstg}t|i|iD]\}}|||fq~}tg}t|iD].\}}||jo||||fqZqZ~}|ocxL|D]D\}}} |tjo(| |jotd|i| qqW|it|ndS(Ns*Can't delete local %r used in nested scope( RLRMR[R\RRRR5t fast_to_deref( R-RRHR-tfreemapR<targmapRRR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR0s@ .cCs|i}xr|D]j\}}}||joN||jo|i||||n|dj oqn||||cCs|it|y|ii|}Wn2tj o&t|i}|ii|nX|i|||tt t fjo|i t M_ ndS(N( RRRRRRERRRaRt DELETE_NAMER^R_(R-RSRR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytdo_namescCs|it@ptdn|it|y|ii|}Wn2tj o&t|i}|ii |nX|i ||dS(Ns5co_flags must include CO_OPTIMIZED to use fast locals( R^R_RRRRRRRERR(R-RJRR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytdo_local-s cCs!|it||i||S(N(RRR (R-taddressR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR=scCsY|idxE|iD]7\}}|i||||i|iqWdS(Ni(t BUILD_MAPtitemsRwRt STORE_SUBSCR(RRgRqRr((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytgen_mapTs     cCs|||it|S(N(RRE(RRg((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyt gen_tuple\s cCs|||it|S(N(RRE(RRg((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytgen_list`s cBseZdZRS(s4The supplied value is not a constant expression tree(R8R9R:(((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyR}scCst|}|tjo |i}nc|tjo,ttt|}||jo|S|Sti|ti jot |n|S(sReturn the constant value -- if any -- of an expression tree Raises NotAConstant if the value or any child of the value are not constants. ( R2R R&R<RRRtgetRR6R(R&tt((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs     cGsy=x6|D].}|tj o|dj ot|q q WWntj o|SXt}|||f|itt|iSdS(s.Return a folded ``Const`` or an argument tupleN( RRYRRRRbR tevalR(RR?RR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs  t_secBseZdZdZZdZdZd Zd Zd Z Z Z Z Z ZZZd ZZZZZZZZZZZZZZZd Z Z!Z"Z#Z$Z%Z&Z'Z(Z)Z*Z+Z,ddddf\Z-Z.Z/Z0ddddf\Z1Z2Z3Z4ddddf\Z5Z6Z7Z8dZ9dZ:Z;dZ<Z=dZ>Z?Z@ZAdZBZCZDZEZFdZGZHd ZIZJZKZLZMZNZOZPZQd!ZRZSd"ZTZURS(#s5Quick way of defining static stack effects of opcodesiiiii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(ii(VR8R9R:RyR|RRtROT_FOURRwtUNARY_POSITIVEtUNARY_NEGATIVEt UNARY_NOTt UNARY_CONVERTt UNARY_INVERTRRft IMPORT_FROMt BINARY_POWERtBINARY_MULTIPLYt BINARY_DIVIDEtBINARY_FLOOR_DIVIDEtBINARY_TRUE_DIVIDEt BINARY_MODULOt BINARY_ADDtBINARY_SUBTRACTt BINARY_SUBSCRt BINARY_LSHIFTt BINARY_RSHIFTt BINARY_ANDt BINARY_XORt BINARY_ORRt INPLACE_POWERtINPLACE_MULTIPLYtINPLACE_DIVIDEtINPLACE_FLOOR_DIVIDEtINPLACE_TRUE_DIVIDEtINPLACE_MODULOt INPLACE_ADDtINPLACE_SUBTRACTtINPLACE_LSHIFTtINPLACE_RSHIFTt INPLACE_ANDt INPLACE_XORt INPLACE_ORtSLICE_0tSLICE_1tSLICE_2tSLICE_3t STORE_SLICE_0t STORE_SLICE_1t STORE_SLICE_2t STORE_SLICE_3tDELETE_SLICE_0tDELETE_SLICE_1tDELETE_SLICE_2tDELETE_SLICE_3RRt DELETE_SUBSCRt STORE_ATTRt DELETE_ATTRRt PRINT_EXPRt PRINT_ITEMtPRINT_NEWLINE_TOt IMPORT_STARRbRRt STORE_GLOBALRt PRINT_ITEM_TORt LOAD_LOCALSR6RaRZR`RR]t IMPORT_NAMERPt EXEC_STMTt BUILD_CLASSRRx(((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRYs* ">6   & s2.5it+t_cCs!|i||i||dS(N(RR(R-RRtse((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pytdo_ops cCs|i||i|dS(N(RR(R-RR((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyRs (xRtdistnewRRttypesRtpeak.util.symbolsRtpeak.util.decoratorsRRRt__all__topcodeR7RRRSt startswithtendswithtglobalsRQR_RFR$R%t CO_NESTEDRRBtCO_GENERATOR_ALLOWEDtCO_FUTURE_DIVISIONtCO_FUTURE_ABSOLUTE_IMPORTtCO_FUTURE_WITH_STATEMENTRRtkeysRqtobjectR R<RRRYR R R RcR8RRR,R RRRRRRR R"R#RR!RRR]R`RRR>RLR<thasfreeR6RRRRRthasattrRKtsetattrR RMtcmp_opR&thasnameRMthaslocalRNRRRRSRTRUR6tinttlongtboolROtunicodetcomplextfloatR2RHRt ExceptionRRRRYRRRtreplaceReR*R(((s7/usr/lib/python2.6/site-packages/peak/util/assembler.pyts$     E) %   (            -   ) )   )  ) )              )