"Fossies" - the Fresh Open Source Software Archive

Member "seed7/src/listutl.h" (18 Jan 2018, 3724 Bytes) of package /linux/misc/seed7_05_20210223.tgz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "listutl.h" see the Fossies "Dox" file reference documentation.

    1 /********************************************************************/
    2 /*                                                                  */
    3 /*  s7   Seed7 interpreter                                          */
    4 /*  Copyright (C) 1990 - 2000  Thomas Mertes                        */
    5 /*                                                                  */
    6 /*  This program is free software; you can redistribute it and/or   */
    7 /*  modify it under the terms of the GNU General Public License as  */
    8 /*  published by the Free Software Foundation; either version 2 of  */
    9 /*  the License, or (at your option) any later version.             */
   10 /*                                                                  */
   11 /*  This program is distributed in the hope that it will be useful, */
   12 /*  but WITHOUT ANY WARRANTY; without even the implied warranty of  */
   13 /*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   */
   14 /*  GNU General Public License for more details.                    */
   15 /*                                                                  */
   16 /*  You should have received a copy of the GNU General Public       */
   17 /*  License along with this program; if not, write to the           */
   18 /*  Free Software Foundation, Inc., 51 Franklin Street,             */
   19 /*  Fifth Floor, Boston, MA  02110-1301, USA.                       */
   20 /*                                                                  */
   21 /*  Module: General                                                 */
   22 /*  File: seed7/src/listutl.h                                       */
   23 /*  Changes: 1990, 1991, 1992, 1993, 1994, 2002  Thomas Mertes      */
   24 /*  Content: Procedures to maintain objects of type listType.       */
   25 /*                                                                  */
   26 /********************************************************************/
   27 
   28 #define append_to_list(insert_place, object, act_param_list) { \
   29     listType help_element;                                     \
   30     if (ALLOC_L_ELEM(help_element)) {                          \
   31       help_element->next = NULL;                               \
   32       help_element->obj = object;                              \
   33       *insert_place = help_element;                            \
   34       insert_place = &help_element->next;                      \
   35     } else if (!fail_flag) {                                   \
   36       raise_with_arguments(SYS_MEM_EXCEPTION, act_param_list); \
   37     } }
   38 
   39 #if WITH_LIST_FREELIST
   40 #define free_list2(list_begin, list_end) { \
   41     list_end->next = flist.list_elems;        \
   42     flist.list_elems = list_begin;            \
   43     }
   44 #else
   45 #define free_list2(list_begin, list_end) free_list(list_begin)
   46 #endif
   47 
   48 
   49 void free_list (listType list);
   50 memSizeType list_length (const_listType list);
   51 listType *append_element_to_list (listType *list_insert_place, objectType object,
   52                                   errInfoType *err_info);
   53 objectType copy_expression (objectType object_from, errInfoType *err_info);
   54 void free_expression (objectType object);
   55 void concat_lists (listType *list1, listType list2);
   56 void incl_list (listType *list, objectType element_object,
   57                 errInfoType *err_info);
   58 void excl_list (listType *list, const_objectType elementobject);
   59 void pop_list (listType *list);
   60 void replace_list_elem (listType list, const_objectType elem1,
   61                         objectType elem2);
   62 listType copy_list (const_listType list_from, errInfoType *err_info);
   63 listType array_to_list (arrayType arr_from, errInfoType *err_info);
   64 listType struct_to_list (structType stru_from, errInfoType *err_info);
   65 listType hash_data_to_list (hashType hash, errInfoType *err_info);
   66 listType hash_keys_to_list (hashType hash, errInfoType *err_info);