a XC?h* ã@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 Cs4|j}|sJ‚|d}|d}| d¡}|rN|j|jjkrN|jdjdvrNdS|rt|j|jjkrt|jdjdkrtdS|j}| ¡}|jtj |j fvrº|j|j ks²|jdjtj krºt |ƒ}d|_| ¡}d|_|durä| ¡}d|_t tjd ¡|g}|du�r&| tƒt tj d¡|g¡d |d_t|||d �S) NÚfuncÚargsÚkwdsé>Ú*ú**réþÿÿÿÚr ú )Úprefix)ÚsymsÚgetÚtypeZargumentZchildrenÚvaluerZclonerÚNAMEZatomZpowerÚ DOUBLESTARrrZLeafÚSTARÚextendrr) ÚselfZnodeZresultsrr r r rZ l_newargs©rús