Код эскизный, неуклюжие шаблонные вызовы скоро заменю на более элегантные variadic-функции.
appendValueToList_generic (commandLstPrint, type_lookup_by_id(TYPE_NAME), funPrintName, strlen(funPrintName)+1); appendValueToList_generic (commandLstPrint, type_lookup_by_id(TYPE_INTEGER), &i, 0); appendValueToList_generic (commandLstPrint, type_lookup_by_id(TYPE_INTEGER), &j, 0); appendValueToList_generic (commandLstPrint, type_lookup_by_id(TYPE_INTEGER), &k, 0); appendValueToList_generic (commandLstCount, type_lookup_by_id(TYPE_NAME), funAddName, strlen(funAddName)+1); appendValueToList_generic (commandLstCount, type_lookup_by_id(TYPE_INTEGER), &i, 0); appendValueToList_generic (commandLstCount, type_lookup_by_id(TYPE_INTEGER), &j, 0); appendValueToList_generic (commandLstCount, type_lookup_by_id(TYPE_NAME), funQuoteName, strlen(funQuoteName)+1); appendValueToList_generic (commandLstCount, type_lookup_by_id(TYPE_INTEGER), &k, 0); appendValueToList_generic (commandLstCount, type_lookup_by_id(TYPE_NAME), funQuoteName, strlen(funQuoteName)+1); appendValueToList_generic (commandLstPrint, type_lookup_by_id(TYPE_LIST), commandLstCount, 0); cmdval = create_typed_value (type_lookup_by_id(TYPE_LIST), commandLstPrint, 0); printf ("Evaluating:\r\n"); printf ("===========\r\n"); retval = evaluate (cmdval, 1); printf ("===========\r\n");