+
+ case PSI_T_FUNCTION:
+ ntoken = psi_token_copy(exp->token);
+ list = psi_plist_add(list, &ntoken);
+ ntoken = psi_token_init(PSI_T_LPAREN, "(", 1, ntoken->col+ntoken->text->len, ntoken->line, ntoken->file);
+ list = psi_plist_add(list, &ntoken);
+ for (i = 0; i < psi_plist_count(exp->data.call->args); ++i) {
+ struct psi_num_exp *tmp_exp;
+
+ if (i) {
+ ntoken = psi_token_init(PSI_T_COMMA, ",", 1, ntoken->col+ntoken->text->len, ntoken->line, ntoken->file);
+ list = psi_plist_add(list, &ntoken);
+ }
+ if (psi_plist_get(exp->data.call->args, i, &tmp_exp)) {
+ struct psi_plist *tmp = psi_num_exp_tokens(tmp_exp, NULL);
+ list = psi_plist_add_r(list, psi_plist_count(tmp), psi_plist_eles(tmp));
+ psi_plist_top(list, &ntoken);
+ free(tmp);
+ }
+ }
+ ntoken = psi_token_init(PSI_T_RPAREN, ")", 1, ntoken->col+ntoken->text->len, ntoken->line, ntoken->file);
+ list = psi_plist_add(list, &ntoken);