Ñò ÆÅXHc @s–ddklZlZlZlZlZlZddklZddk l Z ddkZddkZddk Z ddk Z ddgZ d„Zd„Zhee6ee6ee6Zhd ei6d ei6d ei6d ei6d ei6dei6dei6dei6Zd„Zd„Zd„ZeedƒZZeedƒZe i djoeZ!d„ZneedƒZ"d„Z#d„Z$eedƒZ%eedƒZ&eedƒZ'eZ(Z)Z*hdei6dei6d ei+6Z,d!„Z-d"„Z.d#„Z/d$„Z0d%„Z1d&„Z2d'„Z3d(„Z4d)„Z5x?ei6ƒD]1\Z7Z8e8e9ƒjoe9ƒe8ee7 scCs|it|dƒƒS(i(tConstteval(R R ((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyR st LeftShiftt RightShifttAddtSubtMultDivtModtFloorDivcCs*t|t|ddƒ|d |dƒS(Niþÿÿÿiiÿÿÿÿ(tgetattrtops(R R ((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyt left_assoc scGs-x&|D]}t||t|ƒƒ}qW|S(N(Rttype(tftargstarg((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pytcurry*scCsJg}tdt|ƒdƒD]}|||q~}t||ƒ|ƒS(s=Compile 'NODE (OP NODE)*' into (type, [ node1, ..., nodeN ]).ii(trangetlenR(topnameR R t_[1]tititems((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyt com_binary0s7tTupletOrs2.5cCs|i|d|d|dƒS(Niii(tIfElse(R R ((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyttest@stAndcCs|i|dƒS(Ni(tNot(R R ((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pytnot_testHsc Cs;t|ƒdjo\|ioR|ig}tdt|ƒddƒD] }||d |||d!qD~ƒSg}x¯tdt|ƒdƒD]•}||d}|d}|dtijoB|d}t|ƒdjo!|djo d}qþd}q n |d}|i|||fƒqŽW|i|d|ƒS( Niiiiitnotsnot insis not(R!tsimplify_comparisonsR+R ttokenRtappendtCompare(R R R#R$tresultstnltnR((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyt comparisonTs"L     tBitortBitxortBitandt UnaryPlust UnaryMinustInvertcCs#t|t|ddƒ|dƒS(Niii(Rt unary_ops(R R ((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pytfactorˆscCs?|ddtijo|i|d |dƒS|d}|d }|dd}|tijot|||dƒS|tijo|i||ddƒS|tijo{|d}x"t|ƒdjo|d}q¾W|dti jo'|d}|i |t i |dfƒS|i ||ƒStd|ƒ‚dS(Niþÿÿÿiiÿÿÿÿiis Unknown power(R0t DOUBLESTARtPowertLPARtcom_call_functiontDOTtGetattrtLSQBR!tCOLONt Subscripttsymbolt subscripttNonetAssertionError(R R tnodetttitemtlineno((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pytpower§s*    c Cs²|dd}|tijo8|ddtijo|idƒSt||dƒS|tijo8|ddtijo|idƒSt||dƒS|ti jo|ddti jo d }nP|d}g}t dt |ƒdƒD]}|||||dfq÷~}|i |ƒS|tijo|i|dƒS|tijo@|itdig}|dD]}||dq}~ƒƒƒStd|ƒ‚dS( Niiiit s Unknown atom((((R0RAtRPARR'R REtRSQBtListt listmakertLBRACEtRBRACER R!tDictt BACKQUOTEt BackquoteRRRtjoinRK( R R RMR%tdmR#R$t_[2]R5((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pytatomÔs(  E@cCs·|dtijo|i|ddddƒSg}g}t|ƒ}x•td|dƒD]w}||}|dtijp|dtijoPnt||ƒ\}} |o|i | ƒqY|i | ƒqYW|d}||jo&||dti jo|d}nd} } x€||jor||} ||d} |d}| dtijo | } q| dtijo | } qt d| f‚qW|i|||| | ƒS(Niiiisunknown node type: %s((( R0RRtCallFuncRJR!R tSTARR?t com_argumentR1tCOMMARK(R t primaryNodeR Rtkwt len_nodelistR$RLtiskwtresultt star_nodet dstar_nodettoktch((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyRBùs:  ( %      cCs1t|ƒdjo#|o td‚nd|dfS|ddtijo2t|ƒdjodti|d|dffSt|ƒdjo t‚n|d}x6t|ƒdjo"|dtijo|d}qªW|dtijotd|f‚ndti|d |df|dffS(Nis!non-keyword arg after keyword argiiiis#keyword can't be an expression (%r)( R!t SyntaxErrorR0RRHt testlist_gexpRKRR(R RdR5((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyRa#s +  'cCs—g}xtdt|ƒƒD]j}||dtijot|i|d||ƒS||dtijoqn|i||ƒqW|i |ƒS(Nii( R R!RHtlist_fort com_iteratortListCompR0RbR1RT(R R tvaluesR$((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyRU8scCsŽg}|d}xn|ofx+t|ƒdjo|\}|d}qW|d\}}}|i||dfƒ|d}qW|||ƒS(Niii(R!R1(tmethodtvalueR tclausesRjtvaltline((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyRoQs  cCsM|ddtijot||ƒS|d\}}t|i||ƒSdS(Niii(R0RbttestlistRotGenExpr(R R Rs((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyRmbsc Csì|ddtijo|itƒS|}t|ƒ}x&t|dƒtjo|d}q;W|d}|do|ddtij}|o;d}}}t|dƒdjo|dd}qßnd}d}}|djo|d|d}}n½|djoT|ddti jo|d}qÁ|o|d}qÁ|d|d}}n\|djo?|ddti jo|p|d}q®qÁ|d}nt d|ƒ‚|o|i |||ƒS|i ||ƒS( NiiiÿÿÿÿiiiisUnrecognized subscript(R0RCRtEllipsisR!RttupleRHtsliceopRJRFRKtSlice3tSlice2( R R RNR4ROt have_stridetstarttstoptstride((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyRIus@  "    cCs:x"t|ƒdjo|d}qWt|d||ƒS(Niii(R!t production(R R ((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyR  scCs#t|ti|ƒidƒdƒS(Ni(R tparsertexprttotuple(R„R ((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pyR¦s(<R0RRRRRRRHRtnewRRƒtsyst__all__t_namet_constR‚t LEFTSHIFTt RIGHTSHIFTtPLUStMINUSR`tSLASHtPERCENTt DOUBLESLASHRRRR&Rwt subscriptlistR*tversiontor_testtand_testR-R6R„txor_exprtand_exprt shift_exprt arith_exprttermtTILDER=R>RPR^RBRaRURoRmRIR%tsymtnametglobalsR R(((s:/usr/lib/python2.6/site-packages/peak/rules/ast_builder.pytsf.0                !  - % *     &