grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \”mã@sÄdZddlZddlZddlmZdZiadd„ZGdd„deƒZ Gd d „d e ƒZ Gd d „d e ƒZ d d„Z Gdd„deƒZ Gdd„de ƒZGdd„de ƒZGdd„de ƒZGdd„de ƒZdd„ZdS)z#Guido van Rossum éN)ÚStringIOiÿÿÿcCsHtst|jjƒD].\}}||kr|jjƒ|jj|=d|_|SqWdS)N)r"Ú enumerater#r&)rÚir.r r rÚremove‹s  z Base.removec CsZ|jdkrdSxFt|jjƒD]6\}}||kry|jj|dStk rPdSXqWdS)Nr)r"r1r#Ú IndexError)rr2Úchildr r rÚ next_sibling˜s zBase.next_siblingcCsP|jdkrdSxszNode.clone..)rJ)rIrr#rJ)rr r rrsz Node.cloneccs(x|jD]}|jƒEdHqW|VdS)N)r#r)rr5r r rrs zNode.post_orderccs(|Vx|jD]}|jƒEdHqWdS)N)r#r)rr5r r rr s zNode.pre_ordercCs|js dS|jdjS)Nr:r)r#r;)rr r rÚ_prefix_getterszNode._prefix_gettercCs|jr||jd_dS)Nr)r#r;)rr;r r rÚ_prefix_setterszNode._prefix_settercCs(||_d|j|_||j|<|jƒdS)N)r"r#r&)rr2r5r r rÚ set_child!s  zNode.set_childcCs ||_|jj||ƒ|jƒdS)N)r"r#Úinsertr&)rr2r5r r rÚ insert_child+szNode.insert_childcCs||_|jj|ƒ|jƒdS)N)r"r#r%r&)rr5r r rÚ append_child4s zNode.append_child)NNN)r=r)rBrCrDrLrMrPrGrHrArrrrrSrTrFr;rUrWrXr r r rrIÐs"     rIc@sˆeZdZdZdZdZddgfdd„Zdd„Zdd „Ze j dkrBeZ d d „Z d d„Z dd„Zdd„Zdd„Zdd„Zdd„ZeeeƒZdS)r,r:rNcCsF|dk r|\|_\|_|_||_||_|dk r4||_|dd…|_dS)N)Ú_prefixr-ÚcolumnrÚvaluerJ)rrr[rKr;rJr r rrLGs z Leaf.__init__cCsd|jj|j|jfS)Nz %s(%r, %r))rrBrr[)rr r rrMZsz Leaf.__repr__cCs|jt|jƒS)N)r;r?r[)rr r rrP`szLeaf.__unicode__r=cCs|j|jf|j|jfkS)N)rr[)rrr r rrkszLeaf._eqcCs$t|j|j|j|j|jff|jd�S)N)rJ)r,rr[r;r-rZrJ)rr r rros z Leaf.cloneccs |VdS)Nr )rr r rr8usz Leaf.leavesccs |VdS)Nr )rr r rrxszLeaf.post_orderccs |VdS)Nr )rr r rr|szLeaf.pre_ordercCs|jS)N)rY)rr r rrS€szLeaf._prefix_gettercCs|jƒ||_dS)N)r&rY)rr;r r rrT†szLeaf._prefix_setter)r=r)rBrCrDrYr-rZrLrMrPrGrHrArrr8rrrSrTrFr;r r r rr,>s$  r,cCsN|\}}}}|s||jkrt|ƒ}x$t|ƒD]\}}t|tƒr"d|_q"W||_||_||_dS)NT)r!r1r ÚWildcardPatternÚ wildcardsrr`r )rrr`r r2Úitemr r rrL%s  zNodePattern.__init__cCs’|jrJx>t|j|jƒD],\}}|t|jƒkr|dk r>|j|ƒdSqWdSt|jƒt|jƒkrbdSx*t|j|jƒD]\}}|j||ƒsrdSqrWdS)NTF)rnrjr`r#r\rdÚziprg)rr.reÚcrfÚ subpatternr5r r rrcBs   zNodePattern._submatch)NNN)N)rBrCrDrnrLrcr r r rrl!s rlc@sZeZdZddedfdd„Zdd„Zddd„Zdd d „Zd d „Zd d„Z dd„Z dd„Z dS)rmNrcCs@|dk r$ttt|ƒƒ}x |D]}qW||_||_||_||_dS)N)ÚtuplerOr`ÚminÚmaxr )rr`rtrur Úaltr r rrLls zWildcardPattern.__init__cCsÒd}|jdk r\}}|t|ƒkr |dk rF|j|ƒ|jrFt|ƒ||j<dSq WdS)NTF)rjr\rdr r!)rrhrerqrfr r rri¦s  zWildcardPattern.match_seqccs:|jdkrXxJt|jdtt|ƒ|jƒƒD]*}i}|jrH|d|…||j<||fVq(WnÞ|jdkrp|j|ƒVnÆttdƒrˆtj }t ƒt_ z˜y@x:|j |dƒD]*\}}|jrº|d|…||j<||fVqšWWnRt k �rx:|j |ƒD],\}}|j�r |d|…||j<||fVqèWYnXWdttdƒ�r4|t_ XdS)NrZ bare_nameÚ getrefcountr)r`Úrangertr\rur Ú_bare_name_matchesÚhasattrrGÚstderrrÚ_recursive_matchesÚ RuntimeErrorÚ_iterative_matches)rrhÚcountrfZ save_stderrr r rrj±s. "   z WildcardPattern.generate_matchesc cs t|ƒ}d|jkrdifVg}x>|jD]4}x.t||ƒD] \}}||fV|j||fƒq8Wq(Wx¦|�rg}x’|D]Š\}} ||krr||jkrrxn|jD]d}x^t|||d…ƒD]H\} } | dkr¬i}|j| ƒ|j| ƒ|| |fV|j|| |fƒq¬Wq”WqrW|}qbWdS)Nr)r\rtr`rjr%rurd) rrhZnodelenrervrqrfZ new_resultsÚc0Úr0Úc1Úr1r r rr~Þs*       z"WildcardPattern._iterative_matchescCsxd}i}d}t|ƒ}xH| r\||kr\d}x0|jD]&}|dj|||ƒr0|d7}d}Pq0WqW|d|…||j<||fS)NrFTr)r\r`rgr )rrhrrfÚdoneruZleafr r rryûs  z"WildcardPattern._bare_name_matchesc cs–||jkrdifV||jkr’xr|jD]h}xbt||ƒD]T\}}xJ|j||d…|dƒD].\}}i}|j|ƒ|j|ƒ|||fVqXWq6Wq&WdS)Nrr)rtrur`rjr|rd) rrhrrvr€r�r‚rƒrfr r rr| s    "  z"WildcardPattern._recursive_matches)N)N) rBrCrDÚHUGErLrbrgrirjr~ryr|r r r rrm^s#  -rmc@s.eZdZd dd„Zdd„Zdd„Zdd „ZdS) ÚNegatedPatternNcCs|dk r||_dS)N)r`)rr`r r rrLs zNegatedPattern.__init__cCsdS)NFr )rr.r r rrg)szNegatedPattern.matchcCs t|ƒdkS)Nr)r\)rrhr r rri-szNegatedPattern.match_seqccsL|jdkr"t|ƒdkrHdifVn&x|jj|ƒD] \}}dSWdifVdS)Nr)r`r\rj)rrhrqrfr r rrj1s    zNegatedPattern.generate_matches)N)rBrCrDrLrgrirjr r r rr†s r†c cs˜|sdifVn„|d|dd…}}xl|j|ƒD]^\}}|sJ||fVq2xDt|||d…ƒD].\}}i}|j|ƒ|j|ƒ|||fVq^Wq2WdS)Nrr)rjrd) ZpatternsrhÚpÚrestr€r�r‚rƒrfr r rrj=s     rj)Ú __author__rGÚwarningsÚiorr…rrrrrIr,r]r^rkrlrmr†rjr r r rÚ s$  1nNV,==#