gwenhywfar  4.99.8beta
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 
23 uint32_t Typemaker2_FlagsFromString(const char *t) {
24  GWEN_STRINGLIST *sl;
25  uint32_t flags=0;
26 
27  assert(t && *t);
28 
29  sl=GWEN_StringList_fromString(t, " ,:/", 1);
30  if (sl) {
32 
34  while(se) {
35  const char *s;
36 
38  assert(s);
39 
40  if (strcasecmp(s, "own")==0)
41  flags|=TYPEMAKER2_FLAGS_OWN;
42  else if (strcasecmp(s, "volatile")==0)
44  else if (strcasecmp(s, "const")==0)
46  else if (strcasecmp(s, "static")==0)
48  else if (strcasecmp(s, "dup")==0)
49  flags|=TYPEMAKER2_FLAGS_DUP;
50  else if (strcasecmp(s, "nodup")==0)
52  else if (strcasecmp(s, "copy")==0)
53  flags|=TYPEMAKER2_FLAGS_COPY;
54  else if (strcasecmp(s, "nocopy")==0)
56  else if (strcasecmp(s, "attribute")==0)
58  else if (strcasecmp(s, "enum")==0)
59  flags|=TYPEMAKER2_FLAGS_ENUM;
60  else if (strcasecmp(s, "define")==0)
62  else if (strcasecmp(s, "with_getbymember")==0)
64  else if (strcasecmp(s, "with_hash")==0)
66  else if (strcasecmp(s, "with_hashnum")==0)
68  else if (strcasecmp(s, "with_flags")==0)
70  else if (strcasecmp(s, "assign")==0)
72  else if (strcasecmp(s, "omit")==0)
73  flags|=TYPEMAKER2_FLAGS_OMIT;
74  else if (strcasecmp(s, "sortByMember")==0)
76  else if (strcasecmp(s, "noConstObject")==0)
78  else if (strcasecmp(s, "none")==0)
79  flags|=TYPEMAKER2_FLAGS_NONE;
80 
82  }
83 
85  }
86 
87  return flags;
88 }
89 
90 
91 
92 uint32_t Typemaker2_TypeFlagsFromString(const char *t) {
93  GWEN_STRINGLIST *sl;
94  uint32_t flags=0;
95 
96  assert(t && *t);
97 
98  sl=GWEN_StringList_fromString(t, " ,:/", 1);
99  if (sl) {
101 
103  while(se) {
104  const char *s;
105 
107  assert(s);
108 
109  if (strcasecmp(s, "with_db")==0)
111  else if (strcasecmp(s, "with_xml")==0)
113  else if (strcasecmp(s, "with_object")==0)
115  else if (strcasecmp(s, "with_list1")==0)
117  else if (strcasecmp(s, "with_list2")==0)
119  else if (strcasecmp(s, "with_inherit")==0)
121  else if (strcasecmp(s, "with_idmap")==0)
123  else if (strcasecmp(s, "with_tree")==0)
125  else if (strcasecmp(s, "with_hash")==0)
127  else if (strcasecmp(s, "with_refcount")==0)
129  else if (strcasecmp(s, "with_signals")==0)
131  else if (strcasecmp(s, "with_slots")==0)
133  else if (strcasecmp(s, "with_cachefns")==0)
135  else if (strcasecmp(s, "dup")==0)
137  else if (strcasecmp(s, "nodup")==0)
139  else if (strcasecmp(s, "copy")==0)
141  else if (strcasecmp(s, "nocopy")==0)
143  else if (strcasecmp(s, "with_constlist2")==0)
145 
147  }
148 
150  }
151 
152  return flags;
153 }
154 
155 
156 
157 int Typemaker2_AccessFromString(const char *s) {
158  assert(s);
159  if (strcasecmp(s, "pub")==0 ||
160  strcasecmp(s, "public")==0)
162  else if (strcasecmp(s, "library")==0 ||
163  strcasecmp(s, "lib")==0)
165  else if (strcasecmp(s, "protected")==0 ||
166  strcasecmp(s, "prot")==0)
168  else if (strcasecmp(s, "private")==0 ||
169  strcasecmp(s, "priv")==0)
171 
173 }
174 
175 
176 
177 
#define TYPEMAKER2_TYPEFLAGS_WITH_CONSTLIST2
Definition: tm_type.h:69
#define TYPEMAKER2_TYPEFLAGS_COPY
Definition: tm_type.h:66
#define TYPEMAKER2_FLAGS_WITH_FLAGS
Definition: tm_type.h:49
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
Definition: stringlist.h:51
#define TYPEMAKER2_FLAGS_STATIC
Definition: tm_type.h:34
#define TYPEMAKER2_TYPEFLAGS_WITH_HASH
Definition: tm_type.h:68
#define TYPEMAKER2_TYPEFLAGS_NODUP
Definition: tm_type.h:65
#define TYPEMAKER2_TYPEFLAGS_DUP
Definition: tm_type.h:64
#define TYPEMAKER2_TYPEFLAGS_NOCOPY
Definition: tm_type.h:67
#define TYPEMAKER2_TYPEFLAGS_WITH_XML
Definition: tm_type.h:53
#define TYPEMAKER2_FLAGS_DUP
Definition: tm_type.h:35
#define TYPEMAKER2_FLAGS_WITH_GETBYMEMBER
Definition: tm_type.h:46
#define TYPEMAKER2_TYPEFLAGS_WITH_SLOTS
Definition: tm_type.h:62
#define TYPEMAKER2_FLAGS_SORTBYMEMBER
Definition: tm_type.h:44
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
Definition: stringlist.c:352
#define TYPEMAKER2_FLAGS_OMIT
Definition: tm_type.h:41
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
Definition: stringlist.c:366
#define TYPEMAKER2_FLAGS_ASSIGN
Definition: tm_type.h:40
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
Definition: stringlist.c:57
#define TYPEMAKER2_FLAGS_WITH_HASHNUM
Definition: tm_type.h:48
#define TYPEMAKER2_FLAGS_NOCOPY
Definition: tm_type.h:43
#define TYPEMAKER2_TYPEFLAGS_WITH_SIGNALS
Definition: tm_type.h:61
#define TYPEMAKER2_FLAGS_DEFINE
Definition: tm_type.h:39
#define TYPEMAKER2_FLAGS_NOCONSTOBJECT
Definition: tm_type.h:45
#define TYPEMAKER2_FLAGS_WITH_HASH
Definition: tm_type.h:47
uint32_t Typemaker2_FlagsFromString(const char *t)
Definition: tm_util.c:23
#define TYPEMAKER2_TYPEFLAGS_WITH_CACHEFNS
Definition: tm_type.h:63
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
Definition: stringlist.h:54
int Typemaker2_AccessFromString(const char *s)
Definition: tm_util.c:157
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE
Definition: tm_type.h:59
GWEN_STRINGLIST * GWEN_StringList_fromString(const char *str, const char *delimiters, int checkDouble)
Definition: stringlist.c:686
#define TYPEMAKER2_FLAGS_CONST
Definition: tm_type.h:33
#define TYPEMAKER2_FLAGS_ATTRIBUTE
Definition: tm_type.h:37
#define TYPEMAKER2_FLAGS_OWN
Definition: tm_type.h:31
#define TYPEMAKER2_FLAGS_ENUM
Definition: tm_type.h:38
uint32_t Typemaker2_TypeFlagsFromString(const char *t)
Definition: tm_util.c:92
#define TYPEMAKER2_TYPEFLAGS_WITH_IDMAP
Definition: tm_type.h:58
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
Definition: stringlist.c:359
#define TYPEMAKER2_TYPEFLAGS_WITH_REFCOUNT
Definition: tm_type.h:60
#define TYPEMAKER2_FLAGS_COPY
Definition: tm_type.h:42
#define TYPEMAKER2_FLAGS_NODUP
Definition: tm_type.h:36
#define TYPEMAKER2_TYPEFLAGS_WITH_INHERIT
Definition: tm_type.h:57
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST2
Definition: tm_type.h:56
#define TYPEMAKER2_FLAGS_VOLATILE
Definition: tm_type.h:32
#define TYPEMAKER2_TYPEFLAGS_WITH_OBJECT
Definition: tm_type.h:54
#define TYPEMAKER2_FLAGS_NONE
Definition: tm_type.h:30
#define TYPEMAKER2_TYPEFLAGS_WITH_DB
Definition: tm_type.h:52
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST1
Definition: tm_type.h:55