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 
23 uint32_t Typemaker2_FlagsFromString(const char *t)
24 {
25  GWEN_STRINGLIST *sl;
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)
42  flags|=TYPEMAKER2_FLAGS_OWN;
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)
50  flags|=TYPEMAKER2_FLAGS_DUP;
51  else if (strcasecmp(s, "nodup")==0)
53  else if (strcasecmp(s, "copy")==0)
54  flags|=TYPEMAKER2_FLAGS_COPY;
55  else if (strcasecmp(s, "nocopy")==0)
57  else if (strcasecmp(s, "attribute")==0)
59  else if (strcasecmp(s, "enum")==0)
60  flags|=TYPEMAKER2_FLAGS_ENUM;
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)
74  flags|=TYPEMAKER2_FLAGS_OMIT;
75  else if (strcasecmp(s, "sortByMember")==0)
77  else if (strcasecmp(s, "noConstObject")==0)
79  else if (strcasecmp(s, "none")==0)
80  flags|=TYPEMAKER2_FLAGS_NONE;
81  else if (strcasecmp(s, "gwen_cb")==0)
83 
85  }
86 
88  }
89 
90  return flags;
91 }
92 
93 
94 
95 uint32_t Typemaker2_TypeFlagsFromString(const char *t)
96 {
97  GWEN_STRINGLIST *sl;
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 
163 int Typemaker2_AccessFromString(const char *s)
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 
#define TYPEMAKER2_TYPEFLAGS_WITH_CONSTLIST2
Definition: tm_type.h:70
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE2
Definition: tm_type.h:71
#define TYPEMAKER2_TYPEFLAGS_COPY
Definition: tm_type.h:67
#define TYPEMAKER2_FLAGS_WITH_FLAGS
Definition: tm_type.h:49
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
Definition: stringlist.h:53
#define TYPEMAKER2_FLAGS_STATIC
Definition: tm_type.h:34
#define TYPEMAKER2_TYPEFLAGS_WITH_HASH
Definition: tm_type.h:69
#define TYPEMAKER2_TYPEFLAGS_NODUP
Definition: tm_type.h:66
#define TYPEMAKER2_TYPEFLAGS_DUP
Definition: tm_type.h:65
#define TYPEMAKER2_TYPEFLAGS_NOCOPY
Definition: tm_type.h:68
#define TYPEMAKER2_TYPEFLAGS_WITH_XML
Definition: tm_type.h:54
#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:63
#define TYPEMAKER2_FLAGS_SORTBYMEMBER
Definition: tm_type.h:44
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
Definition: stringlist.c:390
#define TYPEMAKER2_FLAGS_OMIT
Definition: tm_type.h:41
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
Definition: stringlist.c:406
#define TYPEMAKER2_FLAGS_ASSIGN
Definition: tm_type.h:40
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
Definition: stringlist.c:62
#define TYPEMAKER2_FLAGS_WITH_HASHNUM
Definition: tm_type.h:48
#define TYPEMAKER2_FLAGS_GWEN_CB
Definition: tm_type.h:50
#define TYPEMAKER2_FLAGS_NOCOPY
Definition: tm_type.h:43
#define TYPEMAKER2_TYPEFLAGS_WITH_SIGNALS
Definition: tm_type.h:62
#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:64
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
Definition: stringlist.h:56
int Typemaker2_AccessFromString(const char *s)
Definition: tm_util.c:163
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE
Definition: tm_type.h:60
GWEN_STRINGLIST * GWEN_StringList_fromString(const char *str, const char *delimiters, int checkDouble)
Definition: stringlist.c:746
#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:95
#define TYPEMAKER2_TYPEFLAGS_WITH_IDMAP
Definition: tm_type.h:59
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
Definition: stringlist.c:398
#define TYPEMAKER2_TYPEFLAGS_WITH_REFCOUNT
Definition: tm_type.h:61
#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:58
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST2
Definition: tm_type.h:57
#define TYPEMAKER2_FLAGS_VOLATILE
Definition: tm_type.h:32
#define TYPEMAKER2_TYPEFLAGS_WITH_OBJECT
Definition: tm_type.h:55
#define TYPEMAKER2_FLAGS_NONE
Definition: tm_type.h:30
#define TYPEMAKER2_TYPEFLAGS_WITH_DB
Definition: tm_type.h:53
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST1
Definition: tm_type.h:56