o ?OgFm@s dZddlZddlmZdZiaddZGdddeZGd d d eZ Gd d d eZ d dZ GdddeZ Gddde Z Gddde ZGddde ZGddde ZddZdS)z#Guido van Rossum N)StringIOicCsDtsddlm}|jD]\}}t|tkr|t|<q t||S)N)python_symbols) _type_reprsZpygramr__dict__itemstypeint setdefault)Ztype_numrnamevalr 5/opt/alt/python310/lib64/python3.10/lib2to3/pytree.py type_reprs   rc@seZdZ dZdZdZdZdZddZddZ dZ dd Z d d Z d d Z ddZddZddZddZddZeddZeddZddZddZd d!Zejd"kr\d#d$ZdSdS)%BaseNr FcO t|SNobject__new__clsargskwdsr r rr1 z Base.__new__cCs |j|jur tS||Sr) __class__NotImplemented_eqselfotherr r r__eq__6s  z Base.__eq__cC trNotImplementedErrorrr r rrBszBase._eqcCr"rr#rr r rcloneMz Base.clonecCr"rr#r%r r r post_orderUr'zBase.post_ordercCr"rr#r%r r r pre_order]r'zBase.pre_ordercCs t|ts |g}g}d}|jjD]}||ur#|dur ||d}q||q|j||j_|D]}|j|_q4d|_dSNFT) isinstancelistparentchildrenextendappendchanged)rnewZ l_childrenfoundchxr r rreplacees        z Base.replacecCs4 |}t|ts|js dS|jd}t|tr|jSNr)r+Leafr.linenornoder r r get_lineno|s   zBase.get_linenocCs|jr|jd|_dSNT)r-r1 was_changedr%r r rr1s  z Base.changedcCsP |jr$t|jjD]\}}||ur#|j|jj|=d|_|Sq dSdSr)r- enumerater.r1)rir;r r rremoves  z Base.removec Cs` |jdurdSt|jjD]\}}||ur-z |jj|dWSty,YdSwqdS)Nr)r-r?r. IndexErrorrr@childr r r next_siblings  zBase.next_siblingcCsT |jdurdSt|jjD]\}}||ur'|dkrdS|jj|dSqdSNrr)r-r?r.rCr r r prev_siblings zBase.prev_siblingccs |jD] }|EdHqdSr)r.leavesrrDr r rrHs z Base.leavescCs|jdurdSd|jSrF)r-depthr%r r rrJs z Base.depthcCs |j}|dur dS|jSN)rEprefix)rZnext_sibr r r get_suffixs zBase.get_suffixrcCst|dS)Nascii)strencoder%r r r__str__sz Base.__str__)__name__ __module__ __qualname__rr-r.r>Z was_checkedrr!__hash__rr&r(r)r6r<r1rApropertyrErGrHrJrNsys version_inforTr r r rrs8       rc@seZdZ   dddZddZddZejdkreZd d Z d d Z d dZ ddZ e ddZejddZddZddZddZdS)NodeNcCsR ||_t||_|jD]}||_q |dur||_|r$|dd|_dSd|_dSr)rr,r.r-rMfixers_applied)rrr.contextrMr]r4r r r__init__s   z Node.__init__cCs d|jjt|j|jfS)Nz %s(%s, %r))rrUrrr.r%r r r__repr__s z Node.__repr__cCs dtt|jSrK)joinmaprRr.r%r r r __unicode__szNode.__unicode__rOcC |j|jf|j|jfkSr)rr.rr r rrzNode._eqcCs t|jdd|jD|jdS)NcSsg|]}|qSr )r&).0r4r r r szNode.clone..r])r\rr.r]r%r r rr&sz Node.cloneccs( |jD] }|EdHq|VdSr)r.r(rIr r rr(s   zNode.post_orderccs( |V|jD] }|EdHqdSr)r.r)rIr r rr) s  zNode.pre_ordercCs |jsdS|jdjS)NrLrr.rMr%r r rrMs z Node.prefixcCs|jr ||jd_dSdSr7rirrMr r rrMscCs* ||_d|j|_||j|<|dSr)r-r.r1rCr r r set_child s    zNode.set_childcCs" ||_|j|||dSr)r-r.insertr1rCr r r insert_child*s zNode.insert_childcCs ||_|j||dSr)r-r.r0r1rIr r r append_child3s  zNode.append_childNNN)rUrVrWr_r`rcrZr[rTrr&r(r)rYrMsetterrkrmrnr r r rr\s*     r\c@seZdZ dZdZdZddgfddZddZdd Ze j d kr"eZ d d Z d dZ ddZddZddZeddZejddZdS)r8rLrNcCsH |dur|\|_\|_|_||_||_|dur||_|dd|_dSr)_prefixr9columnrvaluer])rrrsr^rMr]r r rr_Fsz Leaf.__init__cCs d|jj|j|jfS)Nz %s(%r, %r))rrUrrsr%r r rr`Ys z Leaf.__repr__cCs |jt|jSr)rMrRrsr%r r rrc_szLeaf.__unicode__rOcCrdr)rrsrr r rrjrezLeaf._eqcCs& t|j|j|j|j|jff|jdS)Nrh)r8rrsrMr9rrr]r%r r rr&ns  z Leaf.cloneccs |VdSrr r%r r rrHts z Leaf.leavescc |VdSrr r%r r rr(w zLeaf.post_orderccrtrr r%r r rr){ruzLeaf.pre_ordercCs |jSr)rqr%r r rrMsz Leaf.prefixcCs|||_dSr)r1rqrjr r rrMs )rUrVrWrqr9rrr_r`rcrZr[rTrr&rHr(r)rYrMrpr r r rr8=s,   r8cCsL |\}}}}|s||jvrt|dkr|dSt|||dSt|||dS)Nrr)r^)Z number2symbollenr\r8)ZgrZraw_noderrsr^r.r r rconverts  rwc@sNeZdZ dZdZdZddZddZddZddd Z dd d Z d d Z dS) BasePatternNcOrrrrr r rrrzBasePattern.__new__cCsVt|j|j|jg}|r|ddur|d=|r|ddusd|jjdtt|fS)Nz%s(%s)z, ) rrcontentr rrUrarbrepr)rrr r rr`s zBasePattern.__repr__cCs |Srr r%r r roptimizer'zBasePattern.optimizecCsp |jdur|j|jkrdS|jdur*d}|duri}|||s#dS|r*|||dur6|jr6|||j<dSr*)rrz _submatchupdater )rr;resultsrr r rmatchs     zBasePattern.matchcCs" t|dkr dS||d|S)NrFr)rvr)rnodesrr r r match_seqs zBasePattern.match_seqccs2 i}|r||d|rd|fVdSdSdSrF)r)rrrr r rgenerate_matchess zBasePattern.generate_matchesr) rUrVrWrrzr rr`r|rrrr r r rrxs   rxc@s*eZdZdddZd ddZd ddZdS) LeafPatternNcCs( |dur|dur ||_||_||_dSr)rrzr )rrrzr r r rr_s   zLeafPattern.__init__cCs t|tsdSt|||SNF)r+r8rxrrr;rr r rr s zLeafPattern.matchcCs |j|jkSr)rzrsrr r rr}s zLeafPattern._submatchror)rUrVrWr_rr}r r r rrs  rc@s$eZdZdZdddZdddZdS) NodePatternFNcCsR |dur|durt|}t|D] \}}t|trd|_q||_||_||_dSr=)r,r?r+WildcardPattern wildcardsrrzr )rrrzr r@itemr r rr_$s  zNodePattern.__init__cCs |jr%t|j|jD]\}}|t|jkr"|dur||dSq dSt|jt|jkr1dSt|j|jD] \}}|||sEdSq8dSNTF)rrrzr.rvr~zipr)rr;rcr subpatternrDr r rr}As    zNodePattern._submatchror)rUrVrWrr_r}r r r rr s rc@s\eZdZ ddedfddZddZdddZdd d Zd d Zd dZ ddZ ddZ dS)rNrcCs> |durttt|}|D]}q||_||_||_||_dSr)tuplerbrzminmaxr )rrzrrr altr r rr_ks  zWildcardPattern.__init__cCs d}|jdurt|jdkrt|jddkr|jdd}|jdkrB|jdkrB|jdur4t|jdS|durB|j|jkrB|S|jdkrht|trh|jdkrh|j|jkrht|j|j|j|j|j|jS|S)Nrr)r ) rzrvrrrr r|r+r)rrr r rr|s$      zWildcardPattern.optimizecCs ||g|Sr)rrr r rrszWildcardPattern.matchcCsR ||D] \}}|t|kr&|dur#|||jr#t|||j<dSqdSr)rrvr~r r,)rrrrrr r rrs  zWildcardPattern.match_seqc cs@ |jdur-t|jdtt||jD]}i}|jr%|d|||j<||fVqdS|jdkr:||VdSttdrFtj }t t_ zPz| |dD]\}}|jr^|d|||j<||fVqNWn$t y| |D]\}}|jr|d|||j<||fVqqYnwWttdr|t_ dSdSttdr|t_ w)NrZ bare_name getrefcountr)rzrangerrvrr _bare_name_matcheshasattrrZstderrr_recursive_matches RuntimeError_iterative_matches)rrcountrZ save_stderrr r rrs@         z WildcardPattern.generate_matchesc cs t|}d|jkrdifVg}|jD]}t||D]\}}||fV|||fqq|r|g}|D]A\}} ||kru||jkru|jD]0}t|||dD]$\} } | dkrsi}|| || || |fV||| |fqOqDq4|}|s0dSdSr7)rvrrzrr0rr~) rrZnodelenrrrrZ new_resultsc0r0c1r1r r rrs8         z"WildcardPattern._iterative_matchescCs| d}i}d}t|}|s1||kr1d}|jD]}|d|||r*|d7}d}nq|s1||ks|d|||j<||fS)NrFTr)rvrzrr )rrrrZdonerZleafr r rrs    z"WildcardPattern._bare_name_matchesc cs ||jkr difV||jkrE|jD]2}t||D](\}}|||d|dD]\}}i}|||||||fVq+qqdSdSrF)rrrzrrr~) rrrrrrrrrr r rr s        z"WildcardPattern._recursive_matchesr) rUrVrWHUGEr_r|rrrrrrr r r rr]s #   - rc@s.eZdZd ddZddZddZdd ZdS) NegatedPatternNcCs |dur||_dSr)rz)rrzr r rr_s zNegatedPattern.__init__cCsdSrr r:r r rr(szNegatedPattern.matchcCs t|dkSr7)rv)rrr r rr,s zNegatedPattern.match_seqccsR|jdurt|dkrdifVdSdS|j|D]\}}dSdifVdSr7)rzrvr)rrrrr r rr0s  zNegatedPattern.generate_matchesr)rUrVrWr_rrrr r r rrs    rc cs |s difVdS|d|dd}}||D]-\}}|s'||fVqt|||dD]\}}i}|||||||fVq0qdSrF)rr~) patternsrprestrrrrrr r rr<s    r) __author__rZiorrrrrrr\r8rwrxrrrrrr r r rs&   1nNV,== #