gwenhywfar  4.99.25rc9
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 
83  }
84 
86  }
87 
88  return flags;
89 }
90 
91 
92 
93 uint32_t Typemaker2_TypeFlagsFromString(const char *t)
94 {
95  GWEN_STRINGLIST *sl;
96  uint32_t flags=0;
97 
98  assert(t && *t);
99 
100  sl=GWEN_StringList_fromString(t, " ,:/", 1);
101  if (sl) {
103 
105  while (se) {
106  const char *s;
107 
109  assert(s);
110 
111  if (strcasecmp(s, "with_db")==0)
113  else if (strcasecmp(s, "with_xml")==0)
115  else if (strcasecmp(s, "with_object")==0)
117  else if (strcasecmp(s, "with_list1")==0)
119  else if (strcasecmp(s, "with_list2")==0)
121  else if (strcasecmp(s, "with_inherit")==0)
123  else if (strcasecmp(s, "with_idmap")==0)
125  else if (strcasecmp(s, "with_tree")==0)
127  else if (strcasecmp(s, "with_hash")==0)
129  else if (strcasecmp(s, "with_refcount")==0)
131  else if (strcasecmp(s, "with_signals")==0)
133  else if (strcasecmp(s, "with_slots")==0)
135  else if (strcasecmp(s, "with_cachefns")==0)
137  else if (strcasecmp(s, "dup")==0)
139  else if (strcasecmp(s, "nodup")==0)
141  else if (strcasecmp(s, "copy")==0)
143  else if (strcasecmp(s, "nocopy")==0)
145  else if (strcasecmp(s, "with_constlist2")==0)
147  else if (strcasecmp(s, "with_tree2")==0)
149 
151  }
152 
154  }
155 
156  return flags;
157 }
158 
159 
160 
161 int Typemaker2_AccessFromString(const char *s)
162 {
163  assert(s);
164  if (strcasecmp(s, "pub")==0 ||
165  strcasecmp(s, "public")==0)
167  else if (strcasecmp(s, "library")==0 ||
168  strcasecmp(s, "lib")==0)
170  else if (strcasecmp(s, "protected")==0 ||
171  strcasecmp(s, "prot")==0)
173  else if (strcasecmp(s, "private")==0 ||
174  strcasecmp(s, "priv")==0)
176 
178 }
179 
180 
181 
182 
#define TYPEMAKER2_TYPEFLAGS_WITH_CONSTLIST2
Definition: tm_type.h:69
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE2
Definition: tm_type.h:70
#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:366
#define TYPEMAKER2_FLAGS_OMIT
Definition: tm_type.h:41
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
Definition: stringlist.c:382
#define TYPEMAKER2_FLAGS_ASSIGN
Definition: tm_type.h:40
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
Definition: stringlist.c:58
#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:161
#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:722
#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:93
#define TYPEMAKER2_TYPEFLAGS_WITH_IDMAP
Definition: tm_type.h:58
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
Definition: stringlist.c:374
#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