й¼] ã@s‡ddlmZddlmZddlmZddlmZmZmZm Z m Z m Z dd„Z Gdd„dej ƒZd S) é)Úpytree)Útoken)Ú fixer_base)ÚAssignÚAttrÚNameÚis_tupleÚis_listÚsymsccs\xUt|ƒD]G\}}|jtjkr |jdjdkr |||dfVq WdS)NéÚexceptr)Ú enumerateÚtyper Ú except_clauseÚchildrenÚvalue)ZnodesÚiÚn©rú//opt/alt/python35/lib64/python3.5/fix_except.pyÚ find_exceptssrc@s(eZdZdZdZdd„ZdS)Ú FixExceptTa1 try_stmt< 'try' ':' (simple_stmt | suite) cleanup=(except_clause ':' (simple_stmt | suite))+ tail=(['except' ':' (simple_stmt | suite)] ['else' ':' (simple_stmt | suite)] ['finally' ':' (simple_stmt | suite)]) > cCs|j}dd„|dDƒ}dd„|dDƒ}x™t|ƒD]‹\}}t|jƒdkrD|jdd…\}} } | jtdd d ƒƒ| jtjkr·t|j ƒd d ƒ} | j ƒ} d | _ | j| ƒ| j ƒ} |j} x-t | ƒD]\}}t |tjƒrPqWt| ƒsCt| ƒrdt| t| td ƒƒƒ}nt| | ƒ}x.t| d|…ƒD]}|jd |ƒqŠW|j||ƒqD| j d krDd | _ qDWdd„|jdd…Dƒ||}tj|j|ƒS)NcSsg|]}|jƒ‘qSr)Úclone)Ú.0rrrrú 2s z'FixExcept.transform..ÚtailcSsg|]}|jƒ‘qSr)r)rZchrrrr4s ÚcleanupééÚasÚprefixú ÚÚargsr cSsg|]}|jƒ‘qSr)r)rÚcrrrr\s é)r rÚlenrÚreplacerrrÚNAMEÚnew_namerr r Ú isinstancerZNoderr rrÚreversedZ insert_child)ÚselfZnodeÚresultsr rZ try_cleanuprZe_suiteÚEZcommaÚNZnew_NÚtargetZ suite_stmtsrZstmtZassignZchildrrrrÚ transform/s6      ! (zFixExcept.transformN)Ú__name__Ú __module__Ú __qualname__Z BM_compatibleZPATTERNr1rrrrr$s rN)r"rZpgen2rrZ fixer_utilrrrrr r rZBaseFixrrrrrÚs .