Ñò 2/oHc @sHddkTddkTddkTddkTddkTddklZddklZdddgZ e ƒdd„Z d„Z ee edƒfƒd „Zee e fƒd „Zd efd „ƒYZd „Zd„Zeedeƒd„Zee eeƒfƒee eeƒfƒd„Zee efƒd„ZdS(iÿÿÿÿ(t*(tNAME(tbuildtBindtmatch_predicatetmatch_sequencecCs%|djo|fStdƒ‚dS(NsCan't compile Bind expression(tNonet TypeError(tnametcode((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyR s cCstt|ƒtd|ƒƒS(sDReturn predicate matching pattern to expr, updating binds w/bindingss==(tTestt Comparisont Inequality(tpatterntexprtbinds((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyRscCstt|ƒt|ƒƒS(N(R tIdentitytIsObject(R RR((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyt match_nonescCs…|idjoq|i|igƒ}||joK|i|ƒx;|dd!D](}ttt|d|ffƒƒtƒSWqntS(Nt_iþÿÿÿiÿÿÿÿs==(Rt setdefaulttappendR tTruthtComparetTrue(R RRtvalstold((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyt match_binds  .t SyntaxBuildercBseZd„ZRS(cCsWx$t|ƒdjo|\}}qW|dtjot|dƒStdƒ‚dS(Niiis1backquotes may only be used around an indentifier(tlenRRt SyntaxError(tselfR((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyt Backquote$s (t__name__t __module__R (((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyR#scCstdƒ‚dS(sïMatch `expr` against inline pattern `pattern` This function can only be called inside a rule string; the second argument is treated as a syntactic match pattern, which can include backquoted locals to be used as bind patterns.s?Use match_predicate() to match compiled patterns outside a ruleN(tNotImplementedError(RR ((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pytmatch*scCs4|i}t|_zt||ƒSWd||_XdS(N(t __class__RR(tbuildertnodeR((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyt build_pattern4s   R cCsfh}t|||ƒ}|itg}|iƒD]#\}}||t|ƒdfq2~ƒƒ|S(Ni(Rtbindtdicttitemstlist(t __builder__RR Rtpredt_[1]tktv((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyt compile_match=sJc Cs~tttttƒ|fƒƒtt|ƒƒƒ}xDt|ƒD]6\}}t|t|t |t|ƒƒ|ƒƒ}q@W|S(N( R R tCalltConstRtValuet enumeratet intersectRtGetitem(R RRR.tpostitem((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyRUs 3 +c Cswtt|ƒtt|ƒƒƒ}xOt|ƒD]A\}}|o.t|t|t|t|ƒƒ|ƒƒ}q.q.W|S(N( R t IsInstancetistypettypeR6R7RR8R4(R RRR.R9R:((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyt match_node^s! /N(tpeak.util.assemblertcodegentcriteriat predicatestcorettokenRt ast_builderRt__all__tnodetypeRRRtwhenR=RRt ExprBuilderRR$R(t meta_functionR2R<R,ttupleRtNodeR>(((s5/usr/lib/python2.6/site-packages/peak/rules/syntax.pyts0