î j fmã@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 CsJ|j}|d}|d}|jdƒ}|j}|jƒ}|jtj|jfkr–|j|jks‡|j d jtj kr–t |ƒ}nd|_|jƒ}d|_|dk rØ|jƒ}d|_nt j tjdƒ|g}|dk r7|jtƒt j tj dƒ|gƒd|d _nt||d |ƒS) NÚfuncÚargsÚkwdsrÚÚ*z**ú Úprefixéþÿÿÿr)ÚsymsÚgetrZcloneÚtyperÚNAMEZatomZpowerZchildrenÚ DOUBLESTARrrZLeafÚSTARÚextendrr) ÚselfZnodeZresultsrr r r rZ l_newargs©rús