Ñò -!Lc @sãdZddklZddklZlZddkZeio+eddddgƒZei d ƒZ n%edddgƒZei d ƒZ y)ddk Z ei e ƒddk Z Wn9ej o-dZ dd klZdd klZnXd d„Ze oede ifd„ƒYZde ifd„ƒYZde ifd„ƒYZdefd„ƒYZnrdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdeifd„ƒYZdS(syHandles parsing of Python code. Parsing to AST is done via _ast on Python > 2.5, otherwise the compiler module is used. iÿÿÿÿ(tStringIO(t exceptionstutilNtTruetFalsetNonetprinttargtid(tparse(tvisitortexeccKs¦yRtoti|d|ƒSt|tƒo|iddƒ}nt||ƒSWnMtj oA}ti d|i i t |ƒt |dd!ƒf|‚nXdS(sParse an expression into ASTs tasciitbackslashreplaces (%s) %s (%s)ii2N(t_astt _ast_utilR t isinstancetunicodetencodetcompiler_parset ExceptionRtSyntaxExceptiont __class__t__name__tstrtrepr(tcodetmodetexception_kwargste((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR +stFindIdentifierscBspeZd„Zd„Zd„Zd„Zeio d„Znd„Z d„Z d„Z d„Z d „Z RS( cKs1t|_t|_h|_||_||_dS(N(Rt in_functiontin_assign_targetstlocal_ident_stacktlistenerR(tselfR"R((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt__init__<s     cCs%|ip|iii|ƒndS(N(RR"tdeclared_identifierstadd(R#tname((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt _add_declaredBs cCs|i|iƒdS(N(R(R'(R#tnode((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisit_ClassDefEscCsP|i|iƒ|i}t|_x|iD]}|i|ƒq,W||_dS(N(tvisittvalueR Rttargets(R#R)tin_atn((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visit_AssignGs   cCsv|idj o|i|iƒn|idj o|iii|iiƒnx|iD]}|i |ƒq[WdS(N( R'RR(ttypeR"tundeclared_identifiersR&RtbodyR+(R#R)t statement((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisit_ExceptHandlerTs cCsè|i|iƒh}|i}t|_xQ|iiD]C}t|ƒ|ijot|t|ƒ import , , ...' instead.(RDRERR(R'RtCompileExceptionR(R#R)R'((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisit_ImportFrom‡s (Rt __module__R$R(R*R0Rtpy3kR5R:R>RBRGRJ(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR;s         t FindTuplecBseZd„Zd„ZRS(cKs||_||_||_dS(N(R"Rt code_factory(R#R"RNR((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR$‘s  cCs›x”|iD]‰}|i||i}|iii|ƒ|iiit|ƒiƒƒ|ii i |i ƒ|i_ |ii i |i ƒ|i_ q WdS(N( teltsRNRR"tcodeargstappendR6tExpressionGeneratorR,R%tunionR2(R#R)R/tp((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visit_Tuple•s (RRKR$RU(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRMs t ParseFunccBseZd„Zd„ZRS(cKs||_||_dS(N(R"R(R#R"R((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR$žs cCsÊ|i|i_g}|iiD]}|t|ƒq ~}|iio|i|iiƒn|iio|i|iiƒn||i_|ii |i_ |ii|i_ |ii|i_ dS(N( R'R"tfuncnameR6R7tvarargRQtkwargtargnamestdefaultstvarargstkwargs(R#R)t_[1]RRZ((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR:¢s-   (RRKR$R:(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRVs RRcBseZd„Zd„ZRS(cCs&tidƒ|_|ii|ƒdS(Nt is (RtSourceGeneratort generatorR+(R#tastnode((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR$¯scCsdi|iiƒS(Nt(tjoinRatresult(R#((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR,²s(RRKR$R,(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRR®s cBskeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z RS( cKs(t|_h|_||_||_dS(N(RRR!R"R(R#R"R((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR$¶s   cCs%|ip|iii|ƒndS(N(RR"R%R&(R#R'((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR(»s cGs|i|iƒdS(N(R(R'(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitClass¾scGs|i|iƒdS(N(R(R'(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitAssNameÀscGs;|i|i|Œx!|iD]}|i||ŒqWdS(N(R+texprtnodes(R#R)R6R/((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitAssignÂs cGsÊ|i|iƒh}|i}t|_x<|iD]1}||ijot|| import , , ...' instead.(RDRR(RRIR(R#R)R6RqRr((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitFromês   cCsti||ƒdS(N(R twalk(R#Rh((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR+òs( RRKR$R(RfRgRjRlRoRpRsRtR+(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRµs          cBs#eZd„Zd„Zd„ZRS(cKs||_||_||_dS(N(R"RRN(R#R"RNR((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR$ös  cGs›x”|iD]‰}|i||i}|iii|ƒ|iiit|ƒiƒƒ|ii i |i ƒ|i_ |ii i |i ƒ|i_ q WdS(N( RiRNRR"RPRQR6RRR,R%RSR2(R#R)R6R/RT((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitTupleús cCsti||ƒdS(N(R Ru(R#Rh((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR+s(RRKR$RvR+(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRMõs  cBs#eZd„Zd„Zd„ZRS(cKs||_||_dS(N(R"R(R#R"R((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR$s cGsO|i|i_|i|i_|i|i_|i|i_|i|i_dS(N(R'R"RWRZR[R\R](R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRls cCsti||ƒdS(N(R Ru(R#Rh((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR+s(RRKR$RlR+(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRVs  cBs%eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!RS( sEgiven an AST node, generates an equivalent literal Python expression.cCs tƒ|_ti||ƒdS(N(RtbufR Ru(R#Rb((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR$s cCs |iiƒS(N(Rwtgetvalue(R#((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR,scGs^|iidƒ|i|i|Œ|iid|ƒ|i|i|Œ|iidƒdS(Nt(s %s t)(RwtwriteR+tlefttright(R#topR)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytoperators cGsX|i|idƒx=|idD].}|iid|dƒ|i||Œq"WdS(NiiR_(R+RiRwR{(R#R~R)R6R/((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt booleanops cGs|iit|iƒƒdS(N(RwR{RR,(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitConst#scGs|ii|iƒdS(N(RwR{R'(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRg%scGs|ii|iƒdS(N(RwR{R'(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRp(scGs|id||ŒdS(NRH(R(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitMul*scGs|id||ŒdS(Ntand(R€(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitAnd,scGs|id||ŒdS(Ntor(R€(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitOr.scGs|id||ŒdS(Nt&(R€(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitBitand0scGs|id||ŒdS(Nt|(R€(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitBitor2scGs|id||ŒdS(Nt^(R€(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitBitxor4scGs|id||ŒdS(Nt+(R(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitAdd6scGs.|i|i|Œ|iid|iƒdS(Ns.%s(R+RhRwR{tattrname(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitGetattr8scGs|id||ŒdS(Nt-(R(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitSub;scGs$|iidƒ|i|iƒdS(Nsnot (RwR{R+Rh(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitNot=scGs|id||ŒdS(Nt/(R(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitDiv@scGs|id||ŒdS(Ns//(R(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitFloorDivBscGs_|i|iƒ|iidƒg}|iD]}||i|ƒq.~|iidƒdS(Nt[t](R+RhRwR{tsubs(R#R)R6R^tx((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitSubscriptDs+cGs$|iidƒ|i|iƒdS(NR‘(RwR{R+Rh(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitUnarySubIscGs$|iidƒ|i|iƒdS(NR‘(RwR{R+Rh(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitUnaryAddLscGsŒ|i|iƒ|iidƒ|idj o|i|iƒn|iidƒ|idj o|i|iƒn|iidƒdS(NR—t:R˜(R+RhRwR{tlowerRtupper(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitSliceOscCs´|iidƒ|iƒ}xtdt|ƒdƒD]g}|i||ƒ|iidƒ|i||dƒ|t|ƒdjo|iidƒq5q5W|iidƒdS(Nt{iis: is, t}(RwR{t getChildrentrangetlenR+(R#R)tcti((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitDictXs cCsŒ|iidƒ|iƒ}xYtdt|ƒƒD]B}|i||ƒ|t|ƒdjo|iidƒq2q2W|iidƒdS(NRyiis, Rz(RwR{R¤R¥R¦R+(R#R)R§R¨((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRvbs cCsŒ|iidƒ|iƒ}xYtdt|ƒƒD]B}|i||ƒ|t|ƒdjo|iidƒq2q2W|iidƒdS(NR—iis, R˜(RwR{R¤R¥R¦R+(R#R)R§R¨((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitListjs cCse|iidƒ|i|iƒ|iidƒx|iD]}|i|ƒq:W|iidƒdS(NR—R_R˜(RwR{R+Rhtquals(R#R)R/((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitListComprs cCse|iidƒ|i|iƒ|iidƒ|i|iƒx|iD]}|i|ƒqJWdS(Ns for s in (RwR{R+RnRmtifs(R#R)R/((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitListCompForys cCs$|iidƒ|i|iƒdS(Ns if (RwR{R+ttest(R#R)((s1/usr/lib/python2.6/site-packages/mako/pyparser.pytvisitListCompIf€scCsM|i|iƒx6|iD]+}|ii|dƒ|i|dƒqWdS(Nii(R+RhtopsRwR{(R#R)ttup((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitCompareƒs  cGs‘|i|iƒ|iidƒt|iƒoM|i|idƒx6|idD]#}|iidƒ|i|ƒqRWn|iidƒdS(NRyiis, Rz(R+R)RwR{R¦R6(R#R)R6ta((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt visitCallFuncˆs("RRKt__doc__R$R,RR€RRgRpR‚R„R†RˆRŠRŒRŽRR’R“R•R–R›RœRR¡R©RvRªR¬R®R°R³Rµ(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyRRs@                            twalkercBseZd„ZRS(cGs%dGt|ƒGHtii|||ŒS(NsNode:(RR t ASTVisitortdispatch(R#R)R6((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR¹“s(RRKR¹(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyR·’s(R¶RtmakoRRRRLtsetRAt attrgetterR7Rt restore__astRt ImportErrorRtcompilerR RR t NodeVisitorRRMRVtobjectRRR¸R·(((s1/usr/lib/python2.6/site-packages/mako/pyparser.pyt s6     U @