223 lines
8.0 KiB
C
223 lines
8.0 KiB
C
// vim:fileencoding=utf-8:foldmethod=marker
|
|
|
|
#ifndef CCGEN_DBL_LIST_H
|
|
#define CCGEN_DBL_LIST_H
|
|
|
|
#include "wapp_core.h"
|
|
#include "type_enums.h"
|
|
|
|
#ifdef WAPP_PLATFORM_CPP
|
|
BEGIN_C_LINKAGE
|
|
#endif // !WAPP_PLATFORM_CPP
|
|
|
|
#ifdef WAPP_PLATFORM_CPP
|
|
#define wapp_cenumval_list_node(ITEM_PTR) CEnumValNode{ITEM_PTR, nullptr, nullptr}
|
|
#define wapp_carg_list_node(ITEM_PTR) CArgNode{ITEM_PTR, nullptr, nullptr}
|
|
#define wapp_cqualifier_list_node(ITEM_PTR) CQualifierNode{ITEM_PTR, nullptr, nullptr}
|
|
#define wapp_cinclude_list_node(ITEM_PTR) CIncludeNode{ITEM_PTR, nullptr, nullptr}
|
|
#define wapp_cusertype_list_node(ITEM_PTR) CUserTypeNode{ITEM_PTR, nullptr, nullptr}
|
|
#define wapp_cfunc_list_node(ITEM_PTR) CFuncNode{ITEM_PTR, nullptr, nullptr}
|
|
#define wapp_cstruct_list_node(ITEM_PTR) CStructNode{ITEM_PTR, nullptr, nullptr}
|
|
#define wapp_cmacro_list_node(ITEM_PTR) CMacroNode{ITEM_PTR, nullptr, nullptr}
|
|
#else
|
|
#define wapp_cenumval_list_node(ITEM_PTR) ((CEnumValNode){.item = ITEM_PTR})
|
|
#define wapp_carg_list_node(ITEM_PTR) ((CArgNode){.item = ITEM_PTR})
|
|
#define wapp_cqualifier_list_node(ITEM_PTR) ((CQualifierNode){.item = ITEM_PTR})
|
|
#define wapp_cinclude_list_node(ITEM_PTR) ((CIncludeNode){.item = ITEM_PTR})
|
|
#define wapp_cusertype_list_node(ITEM_PTR) ((CUserTypeNode){.item = ITEM_PTR})
|
|
#define wapp_cfunc_list_node(ITEM_PTR) ((CFuncNode){.item = ITEM_PTR})
|
|
#define wapp_cstruct_list_node(ITEM_PTR) ((CStructNode){.item = ITEM_PTR})
|
|
#define wapp_cmacro_list_node(ITEM_PTR) ((CMacroNode){.item = ITEM_PTR})
|
|
#endif // !WAPP_PLATFORM_CPP
|
|
|
|
typedef struct cenumval CEnumVal;
|
|
typedef struct carg CArg;
|
|
typedef struct cinclude CInclude;
|
|
typedef struct cusertype CUserType;
|
|
typedef struct cfunc CFunc;
|
|
typedef struct cstruct CStruct;
|
|
typedef struct cmacro CMacro;
|
|
|
|
typedef struct CEnumValNode CEnumValNode;
|
|
struct CEnumValNode {
|
|
CEnumVal *item;
|
|
CEnumValNode *prev;
|
|
CEnumValNode *next;
|
|
};
|
|
|
|
typedef struct CEnumValList CEnumValList;
|
|
struct CEnumValList {
|
|
CEnumValNode *first;
|
|
CEnumValNode *last;
|
|
u64 node_count;
|
|
};
|
|
|
|
typedef struct CArgNode CArgNode;
|
|
struct CArgNode {
|
|
CArg *item;
|
|
CArgNode *prev;
|
|
CArgNode *next;
|
|
};
|
|
|
|
typedef struct CArgList CArgList;
|
|
struct CArgList {
|
|
CArgNode *first;
|
|
CArgNode *last;
|
|
u64 node_count;
|
|
};
|
|
|
|
typedef struct CQualifierNode CQualifierNode;
|
|
struct CQualifierNode {
|
|
CQualifier *item;
|
|
CQualifierNode *prev;
|
|
CQualifierNode *next;
|
|
};
|
|
|
|
typedef struct CQualifierList CQualifierList;
|
|
struct CQualifierList {
|
|
CQualifierNode *first;
|
|
CQualifierNode *last;
|
|
u64 node_count;
|
|
};
|
|
|
|
typedef struct CIncludeNode CIncludeNode;
|
|
struct CIncludeNode {
|
|
CInclude *item;
|
|
CIncludeNode *prev;
|
|
CIncludeNode *next;
|
|
};
|
|
|
|
typedef struct CIncludeList CIncludeList;
|
|
struct CIncludeList {
|
|
CIncludeNode *first;
|
|
CIncludeNode *last;
|
|
u64 node_count;
|
|
};
|
|
|
|
typedef struct CUserTypeNode CUserTypeNode;
|
|
struct CUserTypeNode {
|
|
CUserType *item;
|
|
CUserTypeNode *prev;
|
|
CUserTypeNode *next;
|
|
};
|
|
|
|
typedef struct CUserTypeList CUserTypeList;
|
|
struct CUserTypeList {
|
|
CUserTypeNode *first;
|
|
CUserTypeNode *last;
|
|
u64 node_count;
|
|
};
|
|
|
|
typedef struct CFuncNode CFuncNode;
|
|
struct CFuncNode {
|
|
CFunc *item;
|
|
CFuncNode *prev;
|
|
CFuncNode *next;
|
|
};
|
|
|
|
typedef struct CFuncList CFuncList;
|
|
struct CFuncList {
|
|
CFuncNode *first;
|
|
CFuncNode *last;
|
|
u64 node_count;
|
|
};
|
|
|
|
typedef struct CStructNode CStructNode;
|
|
struct CStructNode {
|
|
CStruct *item;
|
|
CStructNode *prev;
|
|
CStructNode *next;
|
|
};
|
|
|
|
typedef struct CStructList CStructList;
|
|
struct CStructList {
|
|
CStructNode *first;
|
|
CStructNode *last;
|
|
u64 node_count;
|
|
};
|
|
|
|
typedef struct CMacroNode CMacroNode;
|
|
struct CMacroNode {
|
|
CMacro *item;
|
|
CMacroNode *prev;
|
|
CMacroNode *next;
|
|
};
|
|
|
|
typedef struct CMacroList CMacroList;
|
|
struct CMacroList {
|
|
CMacroNode *first;
|
|
CMacroNode *last;
|
|
u64 node_count;
|
|
};
|
|
|
|
CEnumValNode *wapp_cenumval_list_get(const CEnumValList *list, u64 index);
|
|
void wapp_cenumval_list_push_front(CEnumValList *list, CEnumValNode *node);
|
|
void wapp_cenumval_list_push_back(CEnumValList *list, CEnumValNode *node);
|
|
void wapp_cenumval_list_insert(CEnumValList *list, CEnumValNode *node, u64 index);
|
|
CEnumValNode *wapp_cenumval_list_pop_front(CEnumValList *list);
|
|
CEnumValNode *wapp_cenumval_list_pop_back(CEnumValList *list);
|
|
CEnumValNode *wapp_cenumval_list_remove(CEnumValList *list, u64 index);
|
|
void wapp_cenumval_list_empty(CEnumValList *list);
|
|
CArgNode *wapp_carg_list_get(const CArgList *list, u64 index);
|
|
void wapp_carg_list_push_front(CArgList *list, CArgNode *node);
|
|
void wapp_carg_list_push_back(CArgList *list, CArgNode *node);
|
|
void wapp_carg_list_insert(CArgList *list, CArgNode *node, u64 index);
|
|
CArgNode *wapp_carg_list_pop_front(CArgList *list);
|
|
CArgNode *wapp_carg_list_pop_back(CArgList *list);
|
|
CArgNode *wapp_carg_list_remove(CArgList *list, u64 index);
|
|
void wapp_carg_list_empty(CArgList *list);
|
|
CQualifierNode *wapp_cqualifier_list_get(const CQualifierList *list, u64 index);
|
|
void wapp_cqualifier_list_push_front(CQualifierList *list, CQualifierNode *node);
|
|
void wapp_cqualifier_list_push_back(CQualifierList *list, CQualifierNode *node);
|
|
void wapp_cqualifier_list_insert(CQualifierList *list, CQualifierNode *node, u64 index);
|
|
CQualifierNode *wapp_cqualifier_list_pop_front(CQualifierList *list);
|
|
CQualifierNode *wapp_cqualifier_list_pop_back(CQualifierList *list);
|
|
CQualifierNode *wapp_cqualifier_list_remove(CQualifierList *list, u64 index);
|
|
void wapp_cqualifier_list_empty(CQualifierList *list);
|
|
CIncludeNode *wapp_cinclude_list_get(const CIncludeList *list, u64 index);
|
|
void wapp_cinclude_list_push_front(CIncludeList *list, CIncludeNode *node);
|
|
void wapp_cinclude_list_push_back(CIncludeList *list, CIncludeNode *node);
|
|
void wapp_cinclude_list_insert(CIncludeList *list, CIncludeNode *node, u64 index);
|
|
CIncludeNode *wapp_cinclude_list_pop_front(CIncludeList *list);
|
|
CIncludeNode *wapp_cinclude_list_pop_back(CIncludeList *list);
|
|
CIncludeNode *wapp_cinclude_list_remove(CIncludeList *list, u64 index);
|
|
void wapp_cinclude_list_empty(CIncludeList *list);
|
|
CUserTypeNode *wapp_cusertype_list_get(const CUserTypeList *list, u64 index);
|
|
void wapp_cusertype_list_push_front(CUserTypeList *list, CUserTypeNode *node);
|
|
void wapp_cusertype_list_push_back(CUserTypeList *list, CUserTypeNode *node);
|
|
void wapp_cusertype_list_insert(CUserTypeList *list, CUserTypeNode *node, u64 index);
|
|
CUserTypeNode *wapp_cusertype_list_pop_front(CUserTypeList *list);
|
|
CUserTypeNode *wapp_cusertype_list_pop_back(CUserTypeList *list);
|
|
CUserTypeNode *wapp_cusertype_list_remove(CUserTypeList *list, u64 index);
|
|
void wapp_cusertype_list_empty(CUserTypeList *list);
|
|
CFuncNode *wapp_cfunc_list_get(const CFuncList *list, u64 index);
|
|
void wapp_cfunc_list_push_front(CFuncList *list, CFuncNode *node);
|
|
void wapp_cfunc_list_push_back(CFuncList *list, CFuncNode *node);
|
|
void wapp_cfunc_list_insert(CFuncList *list, CFuncNode *node, u64 index);
|
|
CFuncNode *wapp_cfunc_list_pop_front(CFuncList *list);
|
|
CFuncNode *wapp_cfunc_list_pop_back(CFuncList *list);
|
|
CFuncNode *wapp_cfunc_list_remove(CFuncList *list, u64 index);
|
|
void wapp_cfunc_list_empty(CFuncList *list);
|
|
CStructNode *wapp_cstruct_list_get(const CStructList *list, u64 index);
|
|
void wapp_cstruct_list_push_front(CStructList *list, CStructNode *node);
|
|
void wapp_cstruct_list_push_back(CStructList *list, CStructNode *node);
|
|
void wapp_cstruct_list_insert(CStructList *list, CStructNode *node, u64 index);
|
|
CStructNode *wapp_cstruct_list_pop_front(CStructList *list);
|
|
CStructNode *wapp_cstruct_list_pop_back(CStructList *list);
|
|
CStructNode *wapp_cstruct_list_remove(CStructList *list, u64 index);
|
|
void wapp_cstruct_list_empty(CStructList *list);
|
|
CMacroNode *wapp_cmacro_list_get(const CMacroList *list, u64 index);
|
|
void wapp_cmacro_list_push_front(CMacroList *list, CMacroNode *node);
|
|
void wapp_cmacro_list_push_back(CMacroList *list, CMacroNode *node);
|
|
void wapp_cmacro_list_insert(CMacroList *list, CMacroNode *node, u64 index);
|
|
CMacroNode *wapp_cmacro_list_pop_front(CMacroList *list);
|
|
CMacroNode *wapp_cmacro_list_pop_back(CMacroList *list);
|
|
CMacroNode *wapp_cmacro_list_remove(CMacroList *list, u64 index);
|
|
void wapp_cmacro_list_empty(CMacroList *list);
|
|
|
|
#ifdef WAPP_PLATFORM_CPP
|
|
END_C_LINKAGE
|
|
#endif // !WAPP_PLATFORM_CPP
|
|
|
|
#endif // !DBL_LIST_H
|