KŠMa~ ã@sodZddlmZddlmZddlmZddlmZmZm Z Gdd„dej ƒZ dS) zIFixer for apply(). This converts apply(func, v, k) into (func)(*v, **k).é)Úpytree)Útoken)Ú fixer_base)ÚCallÚCommaÚ parenthesizec@s(eZdZdZdZdd„ZdS)ÚFixApplyTa. power< 'apply' trailer< '(' arglist< (not argument ')' > > c CsÄ|j}|d}|d}|jdƒ}|rz|j|jjkrKdS|j|jjkrz|jdjdkrzdS|r¯|j|jjkr¯|jdjdkr¯dS|j}|jƒ}|jt j |j fkr|j|j ks |jd jt j krt|ƒ}d|_|jƒ}d|_|dk rU|jƒ}d|_tjt jdƒ|g}|dk r±|jtƒtjt j dƒ|gƒd |d _t||d |ƒS) NÚfuncÚargsÚkwdséz**rÚÚ*ú Úprefixéþÿÿÿr)ÚsymsÚgetÚtypeZ star_exprZargumentZchildrenÚvaluerZclonerÚNAMEZatomZpowerÚ DOUBLESTARrrZLeafÚSTARÚextendrr) ÚselfZnodeZresultsrr r r rZ l_newargs©rús