15 #include "tm_type_p.h"
18 #include <gwenhywfar/debug.h>
19 #include <gwenhywfar/misc.h>
39 ty->headers=Typemaker2_Header_List_new();
40 ty->enums=Typemaker2_Enum_List_new();
41 ty->defines=Typemaker2_Define_List_new();
42 ty->codeDefs=Typemaker2_Code_List_new();
43 ty->inlines=Typemaker2_Inline_List_new();
44 ty->virtualFns=Typemaker2_VirtualFn_List_new();
45 ty->signals=Typemaker2_Signal_List_new();
46 ty->slots=Typemaker2_Slot_List_new();
54 ty->members=Typemaker2_Member_List_new();
56 ty->groupTree=Typemaker2_Group_Tree_new();
67 if (ty->refCount==1) {
76 free(ty->defaultValue);
77 free(ty->presetValue);
80 free(ty->baseFileName);
86 Typemaker2_Header_List_free(ty->headers);
87 Typemaker2_Enum_List_free(ty->enums);
88 Typemaker2_Define_List_free(ty->defines);
89 Typemaker2_Code_List_free(ty->codeDefs);
90 Typemaker2_Inline_List_free(ty->inlines);
91 Typemaker2_VirtualFn_List_free(ty->virtualFns);
92 Typemaker2_Signal_List_free(ty->signals);
93 Typemaker2_Slot_List_free(ty->slots);
101 Typemaker2_Member_List_free(ty->members);
102 Typemaker2_Group_Tree_free(ty->groupTree);
104 free(ty->fieldCountId);
118 assert(ty->refCount);
126 assert(ty->refCount);
134 assert(ty->refCount);
136 if (s && *s) ty->name=strdup(s);
144 assert(ty->refCount);
152 assert(ty->refCount);
154 if (s && *s) ty->descr=strdup(s);
162 assert(ty->refCount);
176 assert(ty->refCount);
184 assert(ty->refCount);
186 if (ty->aqdb_type==
NULL && ty->extendsPtr)
189 return ty->aqdb_type;
196 assert(ty->refCount);
198 if (s && *s) ty->aqdb_type=strdup(s);
199 else ty->aqdb_type=
NULL;
206 assert(ty->refCount);
208 return ty->baseFileName;
215 assert(ty->refCount);
216 free(ty->baseFileName);
217 if (s && *s) ty->baseFileName=strdup(s);
218 else ty->baseFileName=
NULL;
225 assert(ty->refCount);
234 assert(ty->refCount);
236 if (s && *s) ty->freeHook=strdup(s);
237 else ty->freeHook=
NULL;
244 assert(ty->refCount);
252 assert(ty->refCount);
254 if (s && *s) ty->extends=strdup(s);
255 else ty->extends=
NULL;
262 assert(ty->refCount);
264 if (ty->baseType==
NULL && ty->extendsPtr)
274 assert(ty->refCount);
276 if (s && *s) ty->baseType=strdup(s);
277 else ty->baseType=
NULL;
284 assert(ty->refCount);
286 if (ty->inherits==
NULL && ty->extendsPtr)
296 assert(ty->refCount);
298 if (s && *s) ty->inherits=strdup(s);
299 else ty->inherits=
NULL;
306 assert(ty->refCount);
308 if (ty->flags==0 && ty->extendsPtr)
318 assert(ty->refCount);
326 assert(ty->refCount);
328 if (ty->setFlags==0 && ty->extendsPtr)
338 assert(ty->refCount);
346 assert(ty->refCount);
348 if (ty->getFlags==0 && ty->extendsPtr)
358 assert(ty->refCount);
366 assert(ty->refCount);
368 if (ty->dupFlags==0 && ty->extendsPtr)
378 assert(ty->refCount);
386 assert(ty->refCount);
388 if (ty->copyFlags==0 && ty->extendsPtr)
391 return ty->copyFlags;
398 assert(ty->refCount);
406 assert(ty->refCount);
418 assert(ty->refCount);
426 assert(ty->refCount);
427 return ty->usePrivateConstructor;
434 assert(ty->refCount);
435 ty->usePrivateConstructor=i;
442 assert(ty->refCount);
444 if (ty->defaultValue==
NULL && ty->extendsPtr)
447 return ty->defaultValue;
454 assert(ty->refCount);
455 free(ty->defaultValue);
456 if (s && *s) ty->defaultValue=strdup(s);
457 else ty->defaultValue=
NULL;
464 assert(ty->refCount);
466 if (ty->presetValue==
NULL && ty->extendsPtr)
469 return ty->presetValue;
476 assert(ty->refCount);
477 free(ty->presetValue);
478 if (s && *s) ty->presetValue=strdup(s);
479 else ty->presetValue=
NULL;
486 assert(ty->refCount);
487 return ty->identifier;
494 assert(ty->refCount);
495 free(ty->identifier);
496 if (s && *s) ty->identifier=strdup(s);
497 else ty->identifier=
NULL;
504 assert(ty->refCount);
512 assert(ty->refCount);
514 if (s && *s) ty->prefix=strdup(s);
515 else ty->prefix=
NULL;
522 assert(ty->refCount);
523 return ty->extendsPtr;
530 assert(ty->refCount);
538 assert(ty->refCount);
539 return ty->inheritsPtr;
546 assert(ty->refCount);
554 assert(ty->refCount);
555 return ty->baseTypePtr;
562 assert(ty->refCount);
570 assert(ty->refCount);
578 assert(ty->refCount);
586 assert(ty->refCount);
594 assert(ty->refCount);
602 assert(ty->refCount);
610 assert(ty->refCount);
618 assert(ty->refCount);
619 return ty->virtualFns;
626 assert(ty->refCount);
634 assert(ty->refCount);
642 assert(ty->refCount);
643 return ty->groupTree;
650 assert(ty->refCount);
651 return ty->nonVolatileMemberCount;
658 assert(ty->refCount);
659 ty->nonVolatileMemberCount=i;
666 assert(ty->refCount);
667 return ty->fieldCountId;
674 assert(ty->refCount);
675 free(ty->fieldCountId);
676 if (s) ty->fieldCountId=strdup(s);
677 else ty->fieldCountId=
NULL;
684 const char *wantedLang) {
695 if (strcasecmp(s,
"member")==0) {
709 Typemaker2_Member_List_Add(tm, ty->members);
711 else if (strcasecmp(s,
"group")==0) {
723 Typemaker2_Group_Tree_AddChild(parentGroup, group);
751 if (strcasecmp(s,
"opaque")==0)
753 else if (strcasecmp(s,
"pointer")==0)
755 else if (strcasecmp(s,
"array")==0)
816 Typemaker2_Header_List_Add(th, ty->headers);
839 Typemaker2_Group_Tree_Clear(ty->groupTree);
844 Typemaker2_Group_Tree_Add(ty->groupTree, rootGroup);
880 Typemaker2_Code_List_Add(tc, ty->codeDefs);
895 Typemaker2_Inline_List_Add(ti, ty->inlines);
922 Typemaker2_Enum_List_Add(te, ty->enums);
949 Typemaker2_Define_List_Add(td, ty->defines);
971 Typemaker2_VirtualFn_List_Add(vf, ty->virtualFns);
1011 while(nnnn && i<3) {
1023 Typemaker2_Signal_List_Add(sig, ty->signals);
1065 while(nnnn && i<3) {
1077 Typemaker2_Slot_List_Add(slot, ty->slots);
1142 const char *s1, *s2;
1144 for (i=0; i<indent; i++) fprintf(f,
" ");
1145 fprintf(f,
"Type\n");
1147 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1148 fprintf(f,
"Name : %s\n", (ty->name)?(ty->name):
"<null>");
1150 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1151 fprintf(f,
"Identifier: %s\n", (ty->identifier)?(ty->identifier):
"<null>");
1153 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1154 fprintf(f,
"AEDB Type : %s\n", (ty->aqdb_type)?(ty->aqdb_type):
"<null>");
1156 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1157 fprintf(f,
"Extends : %s\n", (ty->extends)?(ty->extends):
"<null>");
1159 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1162 fprintf(f,
"Inherits : %s [%s]\n", s1?s1:
"<null>", s2?s2:
"<null>");
1164 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1165 fprintf(f,
"BaseType : %s\n", (ty->baseType)?(ty->baseType):
"<null>");
1167 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1168 fprintf(f,
"Prefix : %s\n", (ty->prefix)?(ty->prefix):
"<null>");
1170 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1173 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1176 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1179 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1182 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1185 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1188 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1189 s1=ty->defaultValue;
1191 fprintf(f,
"Default : %s [%s]\n", s1?s1:
"<null>", s2?s2:
"<null>");
1193 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1196 fprintf(f,
"Preset : %s [%s]\n", s1?s1:
"<null>", s2?s2:
"<null>");
1198 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1199 fprintf(f,
"Members\n");
1200 tm=Typemaker2_Member_List_First(ty->members);
1202 for (i=0; i<indent+4; i++) fprintf(f,
" ");
1203 fprintf(f,
"none\n");
1208 tm=Typemaker2_Member_List_Next(tm);
1211 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1212 fprintf(f,
"Field Count Id: %s\n", (ty->fieldCountId)?(ty->fieldCountId):
"<null>");
1214 for (i=0; i<indent+2; i++) fprintf(f,
" ");
1215 fprintf(f,
"Descript. : %s\n", (ty->descr)?(ty->descr):
"<null>");
1226 te=Typemaker2_Enum_List_First(ty->enums);
1231 if (n && strcasecmp(s, n)==0)
1233 te=Typemaker2_Enum_List_Next(te);
1257 if (s && strcasecmp(s,
id)==0) {
1261 tc=Typemaker2_Code_List_Next(tc);
1266 tc=Typemaker2_Code_List_First(ty->codeDefs);
1271 if (s && strcasecmp(s,
id)==0) {
1275 tc=Typemaker2_Code_List_Next(tc);
int Typemaker2_Type_GetAccess(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetExtends(TYPEMAKER2_TYPE *ty, const char *s)
void Typemaker2_Type_SetFreeHook(TYPEMAKER2_TYPE *ty, const char *s)
TYPEMAKER2_VIRTUALFN_LIST * Typemaker2_Type_GetVirtualFns(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetIdentifier(TYPEMAKER2_TYPE *ty, const char *s)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
void Typemaker2_Type_SetCopyFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
void Typemaker2_Signal_SetParamType1(TYPEMAKER2_SIGNAL *p_struct, const char *p_src)
void Typemaker2_Type_Dump(TYPEMAKER2_TYPE *ty, FILE *f, int indent)
uint32_t Typemaker2_Member_GetFlags(const TYPEMAKER2_MEMBER *tm)
void Typemaker2_Code_SetMemberFlagsMaskInt(TYPEMAKER2_CODE *p_struct, uint32_t p_src)
const char * Typemaker2_Type_GetDescription(const TYPEMAKER2_TYPE *ty)
struct TYPEMAKER2_SIGNAL TYPEMAKER2_SIGNAL
void Typemaker2_Type_SetNonVolatileMemberCount(TYPEMAKER2_TYPE *ty, int i)
TYPEMAKER2_ITEM_LIST * Typemaker2_Enum_GetItems(const TYPEMAKER2_ENUM *p_struct)
void Typemaker2_Type_SetGetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
TYPEMAKER2_ENUM * Typemaker2_Enum_fromXml(GWEN_XMLNODE *p_db)
void Typemaker2_Type_SetBaseFileName(TYPEMAKER2_TYPE *ty, const char *s)
GWENHYWFAR_API int GWEN_XMLNode_toBuffer(const GWEN_XMLNODE *n, GWEN_BUFFER *buf, uint32_t flags)
int Typemaker2_Type_readXml(TYPEMAKER2_TYPE *ty, GWEN_XMLNODE *node, const char *wantedLang)
#define GWEN_ERROR_INVALID
void Typemaker2_Type_free(TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Type_GetExtends(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetAccess(TYPEMAKER2_TYPE *ty, int i)
#define GWEN_XML_FLAGS_SIMPLE
TYPEMAKER2_SLOT_LIST * Typemaker2_Type_GetSlots(const TYPEMAKER2_TYPE *ty)
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
int Typemaker2_Type_readMembersAndGroupsXml(TYPEMAKER2_TYPE *ty, GWEN_XMLNODE *node, TYPEMAKER2_GROUP *parentGroup, const char *wantedLang)
TYPEMAKER2_HEADER_LIST * Typemaker2_Type_GetHeaders(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Type_GetAqDbType(const TYPEMAKER2_TYPE *ty)
TYPEMAKER2_TYPE * Typemaker2_Type_GetExtendsPtr(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetBaseTypePtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
GWEN_XMLNODE * GWEN_XMLNode_FindNextTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
void Typemaker2_Type_SetPresetValue(TYPEMAKER2_TYPE *ty, const char *s)
const char * Typemaker2_Code_GetMemberFlagsMask(const TYPEMAKER2_CODE *p_struct)
TYPEMAKER2_MEMBER * Typemaker2_Member_new()
TYPEMAKER2_SLOT * Typemaker2_Slot_new(void)
void Typemaker2_Type_SetInheritsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
TYPEMAKER2_SIGNAL * Typemaker2_Signal_new(void)
#define GWEN_FREE_OBJECT(varname)
struct TYPEMAKER2_SLOT TYPEMAKER2_SLOT
#define TYPEMAKER2_SLOT_FLAGS_USE_PARAM3
#define TYPEMAKER2_SIGNAL_FLAGS_USE_PARAM4
void Typemaker2_Member_free(TYPEMAKER2_MEMBER *tm)
TYPEMAKER2_TYPE * Typemaker2_Type_GetBaseTypePtr(const TYPEMAKER2_TYPE *ty)
struct TYPEMAKER2_GROUP TYPEMAKER2_GROUP
uint32_t Typemaker2_Type_GetSetFlags(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Code_GetMemberFlagsValue(const TYPEMAKER2_CODE *p_struct)
void Typemaker2_Type_SetInherits(TYPEMAKER2_TYPE *ty, const char *s)
struct TYPEMAKER2_DEFINE TYPEMAKER2_DEFINE
void Typemaker2_Signal_SetName(TYPEMAKER2_SIGNAL *p_struct, const char *p_src)
struct TYPEMAKER2_ENUM TYPEMAKER2_ENUM
uint32_t Typemaker2_Type_GetCopyFlags(const TYPEMAKER2_TYPE *ty)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
TYPEMAKER2_SIGNAL_LIST * Typemaker2_Type_GetSignals(const TYPEMAKER2_TYPE *ty)
struct TYPEMAKER2_ITEM TYPEMAKER2_ITEM
void Typemaker2_Member_Dump(TYPEMAKER2_MEMBER *tm, FILE *f, int indent)
const char * Typemaker2_Type_GetPresetValue(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetPrefix(TYPEMAKER2_TYPE *ty, const char *s)
struct TYPEMAKER2_INLINE TYPEMAKER2_INLINE
struct TYPEMAKER2_VIRTUALFN TYPEMAKER2_VIRTUALFN
#define GWEN_ERROR_BAD_DATA
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
GWEN_XMLNODE * GWEN_XMLNode_FindFirstTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
const char * Typemaker2_Enum_GetId(const TYPEMAKER2_ENUM *p_struct)
TYPEMAKER2_TYPE * Typemaker2_Type_new()
void Typemaker2_Type_SetUsePrivateConstructor(TYPEMAKER2_TYPE *ty, int i)
TYPEMAKER2_INLINE_LIST * Typemaker2_Type_GetInlines(const TYPEMAKER2_TYPE *ty)
#define GWEN_NEW_OBJECT(typ, varname)
void Typemaker2_VirtualFn_free(TYPEMAKER2_VIRTUALFN *vf)
int GWEN_XMLNode_GetIntProperty(const GWEN_XMLNODE *n, const char *name, int defaultValue)
void Typemaker2_Member_SetGroupPtr(TYPEMAKER2_MEMBER *tm, TYPEMAKER2_GROUP *gr)
const char * GWEN_XMLNode_GetCharValue(const GWEN_XMLNODE *n, const char *name, const char *defValue)
GWEN_XMLNODE * GWEN_XMLNode_GetNextTag(const GWEN_XMLNODE *n)
void Typemaker2_Type_SetBaseType(TYPEMAKER2_TYPE *ty, const char *s)
TYPEMAKER2_ITEM * Typemaker2_Item_fromXml(GWEN_XMLNODE *p_db)
void Typemaker2_Type_SetSetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
const char * Typemaker2_Type_GetIdentifier(const TYPEMAKER2_TYPE *ty)
uint32_t Typemaker2_FlagsFromString(const char *t)
int Typemaker2_AccessFromString(const char *s)
uint32_t Typemaker2_Code_GetMemberFlagsMaskInt(const TYPEMAKER2_CODE *p_struct)
const char * Typemaker2_Type_GetFreeHook(const TYPEMAKER2_TYPE *ty)
TYPEMAKER2_CODE_LIST * Typemaker2_Member_GetCodeDefs(const TYPEMAKER2_MEMBER *tm)
int Typemaker2_VirtualFn_readXml(TYPEMAKER2_VIRTUALFN *vf, GWEN_XMLNODE *node)
uint32_t Typemaker2_Type_GetDupFlags(const TYPEMAKER2_TYPE *ty)
TYPEMAKER2_CODE * Typemaker2_Code_fromXml(GWEN_XMLNODE *p_db)
TYPEMAKER2_GROUP * Typemaker2_Group_new()
const char * Typemaker2_Type_GetInherits(const TYPEMAKER2_TYPE *ty)
TYPEMAKER2_ITEM_LIST * Typemaker2_Define_GetItems(const TYPEMAKER2_DEFINE *p_struct)
int Typemaker2_Type_GetNonVolatileMemberCount(const TYPEMAKER2_TYPE *ty)
int Typemaker2_Member_readXml(TYPEMAKER2_MEMBER *tm, GWEN_XMLNODE *node, const char *wantedLang)
TYPEMAKER2_MEMBER_LIST * Typemaker2_Type_GetMembers(const TYPEMAKER2_TYPE *ty)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
int Typemaker2_Group_readXml(TYPEMAKER2_GROUP *gr, GWEN_XMLNODE *node, const char *wantedLang)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
GWEN_LIST2_FUNCTIONS(TYPEMAKER2_TYPE, Typemaker2_Type)
const char * Typemaker2_Type_GetName(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetFieldCountId(TYPEMAKER2_TYPE *ty, const char *s)
#define GWEN_XML_FLAGS_HANDLE_COMMENTS
TYPEMAKER2_INLINE * Typemaker2_Inline_fromXml(GWEN_XMLNODE *node)
#define DBG_ERROR(dbg_logger, format, args...)
GWEN_XMLNODE * GWEN_XMLNode_GetFirstTag(const GWEN_XMLNODE *n)
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
#define TYPEMAKER2_SLOT_FLAGS_USE_PARAM4
const char * GWEN_XMLNode_GetData(const GWEN_XMLNODE *n)
void Typemaker2_Slot_SetParamType2(TYPEMAKER2_SLOT *p_struct, const char *p_src)
uint32_t Typemaker2_Type_GetGetFlags(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Signal_SetParamType2(TYPEMAKER2_SIGNAL *p_struct, const char *p_src)
uint32_t Typemaker2_TypeFlagsFromString(const char *t)
const char * Typemaker2_Type_GetBaseType(const TYPEMAKER2_TYPE *ty)
#define TYPEMAKER2_SIGNAL_FLAGS_USE_PARAM3
void Typemaker2_Type_SetType(TYPEMAKER2_TYPE *ty, int i)
void Typemaker2_Code_SetMemberFlagsValueInt(TYPEMAKER2_CODE *p_struct, uint32_t p_src)
TYPEMAKER2_DEFINE * Typemaker2_Define_fromXml(GWEN_XMLNODE *p_db)
void Typemaker2_Group_SetDescription(TYPEMAKER2_GROUP *gr, const char *s)
TYPEMAKER2_VIRTUALFN * Typemaker2_VirtualFn_new()
TYPEMAKER2_ENUM_LIST * Typemaker2_Type_GetEnums(const TYPEMAKER2_TYPE *ty)
#define DBG_INFO(dbg_logger, format, args...)
const char * Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Group_free(TYPEMAKER2_GROUP *gr)
void Typemaker2_Signal_AddFlags(TYPEMAKER2_SIGNAL *p_struct, uint32_t p_src)
TYPEMAKER2_TYPE * Typemaker2_Type_GetInheritsPtr(const TYPEMAKER2_TYPE *ty)
#define GWEN_LIST_INIT(t, element)
int Typemaker2_Type_GetType(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetName(TYPEMAKER2_TYPE *ty, const char *s)
TYPEMAKER2_CODE_LIST * Typemaker2_Type_GetCodeDefs(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
int Typemaker2_Type_GetUsePrivateConstructor(const TYPEMAKER2_TYPE *ty)
GWEN_LIST_FUNCTIONS(TYPEMAKER2_TYPE, Typemaker2_Type)
struct TYPEMAKER2_MEMBER TYPEMAKER2_MEMBER
struct TYPEMAKER2_CODE TYPEMAKER2_CODE
void Typemaker2_Type_Attach(TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetExtendsPtr(TYPEMAKER2_TYPE *ty, TYPEMAKER2_TYPE *p)
void Typemaker2_Group_SetTitle(TYPEMAKER2_GROUP *gr, const char *s)
void Typemaker2_Type_SetDupFlags(TYPEMAKER2_TYPE *ty, uint32_t i)
TYPEMAKER2_GROUP_TREE * Typemaker2_Type_GetGroupTree(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Slot_SetParamType1(TYPEMAKER2_SLOT *p_struct, const char *p_src)
void Typemaker2_Type_SetAqDbType(TYPEMAKER2_TYPE *ty, const char *s)
GWEN_STRINGLIST * GWEN_StringList_new(void)
uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Type_GetDefaultValue(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Slot_AddFlags(TYPEMAKER2_SLOT *p_struct, uint32_t p_src)
void Typemaker2_Type_SetDefaultValue(TYPEMAKER2_TYPE *ty, const char *s)
#define GWEN_LIST_FINI(t, element)
TYPEMAKER2_ENUM * Typemaker2_Type_FindEnum(TYPEMAKER2_TYPE *ty, const char *s)
struct GWEN__XMLNODE GWEN_XMLNODE
TYPEMAKER2_CODE * Typemaker2_Type_FindCodeForMember(const TYPEMAKER2_TYPE *ty, const TYPEMAKER2_MEMBER *tm, const char *id)
TYPEMAKER2_DEFINE_LIST * Typemaker2_Type_GetDefines(const TYPEMAKER2_TYPE *ty)
const char * Typemaker2_Type_GetFieldCountId(const TYPEMAKER2_TYPE *ty)
uint32_t Typemaker2_Code_GetMemberFlagsValueInt(const TYPEMAKER2_CODE *p_struct)
void Typemaker2_Slot_SetName(TYPEMAKER2_SLOT *p_struct, const char *p_src)
const char * Typemaker2_Code_GetId(const TYPEMAKER2_CODE *p_struct)
const char * Typemaker2_Type_GetBaseFileName(const TYPEMAKER2_TYPE *ty)
void Typemaker2_Type_SetDescription(TYPEMAKER2_TYPE *ty, const char *s)