B ˆ f* ã@sRdZddlmZddlmZddlmZddlmZmZm 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@seZdZdZdZdd„ZdS)ÚFixApplyTa. power< 'apply' trailer< '(' arglist< (not argument ')' > > c Cs,|j}|d}|d}| d¡}|rF|j|jjkrF|jdjdkrFdS|rl|j|jjkrl|jdjdkrldS|j}| ¡}|jtj |j fkr²|j|j ksª|jdjtj kr²t |ƒ}d|_| ¡}d|_|dk rÜ| ¡}d|_t tjd ¡|g}|dk �r| tƒt tj d¡|g¡d |d_t|||d �S) NÚfuncÚargsÚkwdsé>ú**Ú*z**éþÿÿÿÚrú )Úprefix)ÚsymsÚgetÚtypeZargumentZchildrenÚvaluerZclonerÚNAMEZatomZpowerÚ DOUBLESTARrrZLeafÚSTARÚextendrr) ÚselfZnodeZresultsrr r r rZ l_newargs©rús