Mc @sdZddklZddklZlZddkZeio+eddddgZei d Z n%edddgZei d Z y)ddk Z ei e ddk Z Wn9ej o-dZ dd klZdd klZnXd dZe oede ifdYZde ifdYZde ifdYZdefdYZnrdefdYZdefdYZdefdYZdefdYZdeifdYZdS(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(tvisitortexeccKsyRtoti|d|St|to|idd}nt||SWnAtj o5}ti d|i i ||dd!f|nXdS(sParse an expression into ASTs tasciitbackslashreplaces (%s) %s (%r)ii2N( t_astt _ast_utilR t isinstancetunicodetencodetcompiler_parset ExceptionRtSyntaxExceptiont __class__t__name__(tcodetmodetexception_kwargste((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR +s tFindIdentifierscBseZdZdZdZdZeio dZndZ dZ dZ dZ d Z d Zd ZRS( cKs1t|_t|_h|_||_||_dS(N(Rt in_functiontin_assign_targetstlocal_ident_stacktlistenerR(tselfR R((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt__init__Bs     cCs%|ip|iii|ndS(N(RR tdeclared_identifierstadd(R!tname((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt _add_declaredIs cCs|i|idS(N(R&R%(R!tnode((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisit_ClassDefMscCsP|i|i|i}t|_x|iD]}|i|q,W||_dS(N(tvisittvalueRRttargets(R!R'tin_atn((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visit_AssignPs   cCsv|idj o|i|in|idj o|iii|iinx|iD]}|i |q[WdS(N( R%RR&ttypeR tundeclared_identifiersR$RtbodyR)(R!R't statement((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisit_ExceptHandlerbs cGs|i|tdS(N(t_visit_functionR(R!R'targs((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visit_LambdajscCs$|i|i|i|tdS(N(R&R%R4R(R!R'((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisit_FunctionDefmscCsh}|i}t|_xQ|iiD]C}t||ijot|t| import , , ...' instead.(RERFRR&R%RtCompileExceptionR(R!R'R%((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisit_ImportFroms (Rt __module__R"R&R(R.Rtpy3kR3R6R7R4R?RCRHRK(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR@s          t FindTuplecBseZdZdZRS(cKs||_||_||_dS(N(R Rt code_factory(R!R ROR((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR"s  cCsx|iD]}|i||i}|iii||iiit|i|ii i |i |i_ |ii i |i |i_ q WdS(N( teltsRORR tcodeargstappendR5tExpressionGeneratorR*R#tunionR0(R!R'R-tp((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visit_Tuples   (RRLR"RV(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRNs t ParseFunccBseZdZdZRS(cKs||_||_dS(N(R R(R!R R((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR"s cCs|i|i_g}|iiD]}|t|q ~}|iio|i|iin|iio|i|iin||i_|ii |i_ |ii|i_ |ii|i_ dS(N( R%R tfuncnameR5R8tvarargRRtkwargtargnamestdefaultstvarargstkwargs(R!R't_[1]RR[((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR7s-   (RRLR"R7(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRWs RScBseZdZdZRS(cCs&tid|_|ii|dS(Nt is (RtSourceGeneratort generatorR)(R!tastnode((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR"scCsdi|iiS(Nt(tjoinRbtresult(R!((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR*s(RRLR"R*(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRSs cBs}eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d ZRS( cKs(t|_h|_||_||_dS(N(RRRR R(R!R R((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR"s   cCs%|ip|iii|ndS(N(RR R#R$(R!R%((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR&s cGs|i|idS(N(R&R%(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitClassscGs|i|idS(N(R&R%(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitAssNamescGs;|i|i|x!|iD]}|i||qWdS(N(R)texprtnodes(R!R'R5R-((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitAssigns cGs|i||dS(N(R4(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitLambdascGs$|i|i|i||dS(N(R&R%R4(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitFunctionscCsh}|i}t|_x<|iD]1}||ijot|| import , , ...' instead.(RERR&RRJR(R!R'R5RsRt((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitFrom2s   cCsti||dS(N(R twalk(R!Ri((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR)?s(RRLR"R&RgRhRkRlRmR4RqRrRuRvR)(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRs           cBs#eZdZdZdZRS(cKs||_||_||_dS(N(R RRO(R!R ROR((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR"Es  cGsx|iD]}|i||i}|iii||iiit|i|ii i |i |i_ |ii i |i |i_ q WdS(N( RjRORR RQRRR5RSR*R#RTR0(R!R'R5R-RU((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitTupleJs cCsti||dS(N(R Rw(R!Ri((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR)Ts(RRLR"RxR)(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRNCs  cBs#eZdZdZdZRS(cKs||_||_dS(N(R R(R!R R((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR"Zs cGsO|i|i_|i|i_|i|i_|i|i_|i|i_dS(N(R%R RXR[R\R]R^(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRm^s cCsti||dS(N(R Rw(R!Ri((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR)es(RRLR"RmR)(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRWXs  cBs%eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!RS( sMgiven an AST node, generates an equivalent literal Python expression.cCs t|_ti||dS(N(RtbufR Rw(R!Rc((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR"ns cCs |iiS(N(Rytgetvalue(R!((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyR*rscGs^|iid|i|i||iid||i|i||iiddS(Nt(s %s t)(RytwriteR)tlefttright(R!topR'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytoperatorus cGsX|i|idx=|idD].}|iid|d|i||q"WdS(NiiR`(R)RjRyR}(R!RR'R5R-((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt booleanop|s cGs|iit|idS(N(RyR}treprR*(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitConstscGs|ii|idS(N(RyR}R%(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRhscGs|ii|idS(N(RyR}R%(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRrscGs|id||dS(NRI(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitMulscGs|id||dS(Ntand(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitAndscGs|id||dS(Ntor(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitOrscGs|id||dS(Nt&(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitBitandscGs|id||dS(Nt|(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitBitorscGs|id||dS(Nt^(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitBitxorscGs|id||dS(Nt+(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitAddscGs.|i|i||iid|idS(Ns.%s(R)RiRyR}tattrname(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitGetattrscGs|id||dS(Nt-(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitSubscGs$|iid|i|idS(Nsnot (RyR}R)Ri(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitNotscGs|id||dS(Nt/(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitDivscGs|id||dS(Ns//(R(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitFloorDivscGs_|i|i|iidg}|iD]}||i|q.~|iiddS(Nt[t](R)RiRyR}tsubs(R!R'R5R_tx((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitSubscripts+cGs$|iid|i|idS(NR(RyR}R)Ri(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitUnarySubscGs$|iid|i|idS(NR(RyR}R)Ri(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitUnaryAddscGs|i|i|iid|idj o|i|in|iid|idj o|i|in|iiddS(NRt:R(R)RiRyR}tlowerRtupper(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitSlicescCs|iid|i}xtdt|dD]g}|i|||iid|i||d|t|djo|iidq5q5W|iiddS(Nt{iis: is, t}(RyR}t getChildrentrangetlenR)(R!R'tcti((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitDicts cCs|iid|i}xYtdt|D]B}|i|||t|djo|iidq2q2W|iiddS(NR{iis, R|(RyR}RRRR)(R!R'RR((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRxs cCs|iid|i}xYtdt|D]B}|i|||t|djo|iidq2q2W|iiddS(NRiis, R(RyR}RRRR)(R!R'RR((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitLists cCse|iid|i|i|iidx|iD]}|i|q:W|iiddS(NRR`R(RyR}R)Ritquals(R!R'R-((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitListComps cCse|iid|i|i|iid|i|ix|iD]}|i|qJWdS(Ns for s in (RyR}R)RpRotifs(R!R'R-((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitListCompFors cCs$|iid|i|idS(Ns if (RyR}R)ttest(R!R'((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pytvisitListCompIfscCsM|i|ix6|iD]+}|ii|d|i|dqWdS(Nii(R)RitopsRyR}(R!R'ttup((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitCompares  cGs|i|i|iidt|ioM|i|idx6|idD]#}|iid|i|qRWn|iiddS(NR{iis, R|(R)R'RyR}RR5(R!R'R5ta((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt visitCallFuncs("RRLt__doc__R"R*RRRRhRrRRRRRRRRRRRRRRRRRRxRRRRRR(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRSis@                          twalkercBseZdZRS(cGs%dGt|GHtii|||S(NsNode:(tstrR t ASTVisitortdispatch(R!R'R5((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRs(RRLR(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyRs(RRtmakoRRRRMtsetRBt attrgetterR8Rt restore__astRt ImportErrorRtcompilerR RR t NodeVisitorRRNRWtobjectRSRR(((s3/usr/lib/python2.6/vendor-packages/mako/pyparser.pyt s6     s `