Annotation of rpl/modules/sets/ltos.rplc, revision 1.1

1.1     ! bertrand    1: #include "src/rplexternals.h"
        !             2: #include "sets.h"
        !             3: 
        !             4: declareExternalFunction(ltos)
        !             5:    declareDaisyChain(current);
        !             6:    declareObject(object);
        !             7:    declareObject(subObject);
        !             8:    declareObject(result);
        !             9: 
        !            10:    integer8    i;
        !            11:    integer8    target(vector);
        !            12:    integer8    sizeOfList;
        !            13: 
        !            14:    HEADER
        !            15:        declareHelpString("List to set");
        !            16:        numberOfArguments(1);
        !            17:    FUNCTION
        !            18:        pullFromStack(object, list);
        !            19:        returnOnError(freeObject(object));
        !            20: 
        !            21:        listLength(object, sizeOfList);
        !            22:        getDaisyChainFromList(object, current);
        !            23:        vector = allocate(sizeOfList * size(integer8));
        !            24: 
        !            25:        i = 0;
        !            26: 
        !            27:        repeatWhile(not nullified(current))
        !            28:            subObject = fetchElementFromDaisyChain(current);
        !            29:            getInteger(subObject, vector[i]);
        !            30:            returnOnError(freeObject(object); deallocate(vector));
        !            31:            postIncr(i);
        !            32:            nextElementOfDaisyChain(current);
        !            33:        endWhile
        !            34: 
        !            35:        freeObject(object);
        !            36: 
        !            37:        createExternalObject(result, ISET);
        !            38:        objectContainer(set_t, result)->values = vector;
        !            39:        objectContainer(set_t, result)->size = sizeOfList;
        !            40: 
        !            41:        pushOnStack(result);
        !            42:    END
        !            43: endExternalFunction
        !            44: 
        !            45: // vim: ts=4

CVSweb interface <joel.bertrand@systella.fr>