gwenhywfar 5.10.1
tm_util.c
Go to the documentation of this file.
1/***************************************************************************
2 begin : Thu Jul 02 2009
3 copyright : (C) 2009 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * Please see toplevel file COPYING for license details *
8 ***************************************************************************/
9
10#ifdef HAVE_CONFIG_H
11# include <config.h>
12#endif
13
14
15#include "tm_util.h"
16#include "tm_type.h"
17
18#include <gwenhywfar/stringlist.h>
19#include <gwenhywfar/debug.h>
20
21
22
23uint32_t Typemaker2_FlagsFromString(const char *t)
24{
26 uint32_t flags=0;
27
28 assert(t && *t);
29
30 sl=GWEN_StringList_fromString(t, " ,:/", 1);
31 if (sl) {
33
35 while (se) {
36 const char *s;
37
39 assert(s);
40
41 if (strcasecmp(s, "own")==0)
43 else if (strcasecmp(s, "volatile")==0)
45 else if (strcasecmp(s, "const")==0)
47 else if (strcasecmp(s, "static")==0)
49 else if (strcasecmp(s, "dup")==0)
51 else if (strcasecmp(s, "nodup")==0)
53 else if (strcasecmp(s, "copy")==0)
55 else if (strcasecmp(s, "nocopy")==0)
57 else if (strcasecmp(s, "attribute")==0)
59 else if (strcasecmp(s, "enum")==0)
61 else if (strcasecmp(s, "define")==0)
63 else if (strcasecmp(s, "with_getbymember")==0)
65 else if (strcasecmp(s, "with_hash")==0)
67 else if (strcasecmp(s, "with_hashnum")==0)
69 else if (strcasecmp(s, "with_flags")==0)
71 else if (strcasecmp(s, "assign")==0)
73 else if (strcasecmp(s, "omit")==0)
75 else if (strcasecmp(s, "sortByMember")==0)
77 else if (strcasecmp(s, "noConstObject")==0)
79 else if (strcasecmp(s, "none")==0)
81 else if (strcasecmp(s, "gwen_cb")==0)
83
85 }
86
88 }
89
90 return flags;
91}
92
93
94
95uint32_t Typemaker2_TypeFlagsFromString(const char *t)
96{
98 uint32_t flags=0;
99
100 assert(t && *t);
101
102 sl=GWEN_StringList_fromString(t, " ,:/", 1);
103 if (sl) {
105
107 while (se) {
108 const char *s;
109
111 assert(s);
112
113 if (strcasecmp(s, "with_db")==0)
115 else if (strcasecmp(s, "with_xml")==0)
117 else if (strcasecmp(s, "with_object")==0)
119 else if (strcasecmp(s, "with_list1")==0)
121 else if (strcasecmp(s, "with_list2")==0)
123 else if (strcasecmp(s, "with_inherit")==0)
125 else if (strcasecmp(s, "with_idmap")==0)
127 else if (strcasecmp(s, "with_tree")==0)
129 else if (strcasecmp(s, "with_hash")==0)
131 else if (strcasecmp(s, "with_refcount")==0)
133 else if (strcasecmp(s, "with_signals")==0)
135 else if (strcasecmp(s, "with_slots")==0)
137 else if (strcasecmp(s, "with_cachefns")==0)
139 else if (strcasecmp(s, "dup")==0)
141 else if (strcasecmp(s, "nodup")==0)
143 else if (strcasecmp(s, "copy")==0)
145 else if (strcasecmp(s, "nocopy")==0)
147 else if (strcasecmp(s, "with_constlist2")==0)
149 else if (strcasecmp(s, "with_tree2")==0)
151
153 }
154
156 }
157
158 return flags;
159}
160
161
162
164{
165 assert(s);
166 if (strcasecmp(s, "pub")==0 ||
167 strcasecmp(s, "public")==0)
169 else if (strcasecmp(s, "library")==0 ||
170 strcasecmp(s, "lib")==0)
172 else if (strcasecmp(s, "protected")==0 ||
173 strcasecmp(s, "prot")==0)
175 else if (strcasecmp(s, "private")==0 ||
176 strcasecmp(s, "priv")==0)
178
180}
181
182
183
184
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
Definition: stringlist.c:62
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
Definition: stringlist.c:406
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
Definition: stringlist.c:398
GWEN_STRINGLIST * GWEN_StringList_fromString(const char *str, const char *delimiters, int checkDouble)
Definition: stringlist.c:746
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
Definition: stringlist.c:390
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
Definition: stringlist.h:53
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
Definition: stringlist.h:56
#define TYPEMAKER2_TYPEFLAGS_DUP
Definition: tm_type.h:65
#define TYPEMAKER2_TYPEFLAGS_WITH_REFCOUNT
Definition: tm_type.h:61
#define TYPEMAKER2_FLAGS_DUP
Definition: tm_type.h:35
#define TYPEMAKER2_TYPEFLAGS_WITH_IDMAP
Definition: tm_type.h:59
#define TYPEMAKER2_FLAGS_NONE
Definition: tm_type.h:30
#define TYPEMAKER2_TYPEFLAGS_WITH_SIGNALS
Definition: tm_type.h:62
#define TYPEMAKER2_FLAGS_ATTRIBUTE
Definition: tm_type.h:37
#define TYPEMAKER2_TYPEFLAGS_WITH_CACHEFNS
Definition: tm_type.h:64
#define TYPEMAKER2_FLAGS_NOCONSTOBJECT
Definition: tm_type.h:45
#define TYPEMAKER2_TYPEFLAGS_WITH_XML
Definition: tm_type.h:54
#define TYPEMAKER2_TYPEFLAGS_NODUP
Definition: tm_type.h:66
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST1
Definition: tm_type.h:56
#define TYPEMAKER2_FLAGS_CONST
Definition: tm_type.h:33
#define TYPEMAKER2_TYPEFLAGS_WITH_DB
Definition: tm_type.h:53
#define TYPEMAKER2_TYPEFLAGS_COPY
Definition: tm_type.h:67
#define TYPEMAKER2_FLAGS_WITH_HASH
Definition: tm_type.h:47
#define TYPEMAKER2_FLAGS_COPY
Definition: tm_type.h:42
#define TYPEMAKER2_FLAGS_WITH_GETBYMEMBER
Definition: tm_type.h:46
#define TYPEMAKER2_FLAGS_ENUM
Definition: tm_type.h:38
#define TYPEMAKER2_FLAGS_WITH_HASHNUM
Definition: tm_type.h:48
#define TYPEMAKER2_FLAGS_DEFINE
Definition: tm_type.h:39
#define TYPEMAKER2_FLAGS_VOLATILE
Definition: tm_type.h:32
#define TYPEMAKER2_TYPEFLAGS_WITH_HASH
Definition: tm_type.h:69
#define TYPEMAKER2_FLAGS_OMIT
Definition: tm_type.h:41
#define TYPEMAKER2_TYPEFLAGS_WITH_INHERIT
Definition: tm_type.h:58
#define TYPEMAKER2_FLAGS_WITH_FLAGS
Definition: tm_type.h:49
#define TYPEMAKER2_FLAGS_OWN
Definition: tm_type.h:31
@ TypeMaker2_Access_Private
Definition: tm_type.h:89
@ TypeMaker2_Access_Library
Definition: tm_type.h:88
@ TypeMaker2_Access_Protected
Definition: tm_type.h:87
@ TypeMaker2_Access_Unknown
Definition: tm_type.h:85
@ TypeMaker2_Access_Public
Definition: tm_type.h:86
#define TYPEMAKER2_FLAGS_SORTBYMEMBER
Definition: tm_type.h:44
#define TYPEMAKER2_FLAGS_ASSIGN
Definition: tm_type.h:40
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST2
Definition: tm_type.h:57
#define TYPEMAKER2_FLAGS_STATIC
Definition: tm_type.h:34
#define TYPEMAKER2_FLAGS_GWEN_CB
Definition: tm_type.h:50
#define TYPEMAKER2_TYPEFLAGS_WITH_OBJECT
Definition: tm_type.h:55
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE
Definition: tm_type.h:60
#define TYPEMAKER2_TYPEFLAGS_WITH_SLOTS
Definition: tm_type.h:63
#define TYPEMAKER2_TYPEFLAGS_WITH_CONSTLIST2
Definition: tm_type.h:70
#define TYPEMAKER2_TYPEFLAGS_NOCOPY
Definition: tm_type.h:68
#define TYPEMAKER2_FLAGS_NODUP
Definition: tm_type.h:36
#define TYPEMAKER2_FLAGS_NOCOPY
Definition: tm_type.h:43
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE2
Definition: tm_type.h:71
int Typemaker2_AccessFromString(const char *s)
Definition: tm_util.c:163
uint32_t Typemaker2_FlagsFromString(const char *t)
Definition: tm_util.c:23
uint32_t Typemaker2_TypeFlagsFromString(const char *t)
Definition: tm_util.c:95