#include "src/rplexternals.h" #include "sets.h" declareExternalFunction(ltos) declareDaisyChain(current); declareObject(object); declareObject(subObject); declareObject(result); integer8 i; integer8 target(vector); integer8 sizeOfList; HEADER declareHelpString("List to set"); numberOfArguments(1); FUNCTION pullFromStack(object, list); returnOnError(freeObject(object)); listLength(object, sizeOfList); getDaisyChainFromList(object, current); vector = allocate(sizeOfList * size(integer8)); i = 0; repeatWhile(not nullified(current)) subObject = fetchElementFromDaisyChain(current); getInteger(subObject, vector[i]); returnOnError(freeObject(object); deallocate(vector)); postIncr(i); nextElementOfDaisyChain(current); endWhile freeObject(object); createExternalObject(result, ISET); objectContainer(set_t, result)->values = vector; objectContainer(set_t, result)->size = sizeOfList; pushOnStack(result); END endExternalFunction // vim: ts=4