î 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 CsV|j}|st‚|d}|d}|jdƒ}|j}|jƒ}|jtj|jfkr¢|j|j ks“|j d jtj kr¢t |ƒ}nd|_|jƒ}d|_|dk rä|jƒ}d|_nt jtjdƒ|g}|dk rC|jtƒt jtj dƒ|gƒd|d _nt||d |ƒS) NÚfuncÚargsÚkwdsrÚÚ*z**ú Úprefixéþÿÿÿr)ÚsymsÚAssertionErrorÚgetrZcloneÚtyperÚNAMEZatomZpowerZchildrenÚ DOUBLESTARrrZLeafÚSTARÚextendrr) ÚselfZnodeZresultsrr r r rZ l_newargs©rús