File:  [local] / rpl / modules / sets / stol.rplc
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Sun Jul 30 21:59:03 2017 UTC (6 years, 9 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_1_35, rpl-4_1_34, rpl-4_1_33, rpl-4_1_32, rpl-4_1_31, rpl-4_1_30, rpl-4_1_29, rpl-4_1_28, rpl-4_1_27, HEAD
Ajout de L->S et de S->L.

    1: #include "src/rplexternals.h"
    2: #include "sets.h"
    3: 
    4: declareExternalFunction(stol)
    5:     declareObject(object);
    6:     declareObject(result);
    7:     declareObject(subObject);
    8: 
    9:     integer8    i;
   10: 
   11:     HEADER
   12:         declareHelpString("Set to list");
   13:         numberOfArguments(1);
   14:     FUNCTION
   15:         pullFromStack(object, external);
   16:         returnOnError(freeObject(object));
   17: 
   18:         if (objectSubtype(object) ne ISET) then
   19:             executionError("Type not allowed");
   20:             freeObject(object);
   21:         endIf
   22: 
   23:         createListObject(result);
   24: 
   25:         loop(i = objectContainer(set_t, object)->size - 1, 
   26:                 i ge 0, postDecr(i))
   27:             createIntegerObject(subObject);
   28:             setInteger(subObject, objectContainer(set_t, object)->values[i]);
   29:             insertObjectIntoList(result, subObject);
   30:         endLoop
   31: 
   32:         freeObject(object);
   33:         pushOnStack(result);
   34:     END
   35: endExternalFunction
   36: 
   37: // vim: ts=4

CVSweb interface <joel.bertrand@systella.fr>