gwenhywfar  5.10.1
Macros | Functions
tm_builder.c File Reference
#include "tm_builder_p.h"
#include "tm_member.h"
#include <gwenhywfar/debug.h>
#include <gwenhywfar/misc.h>
#include <assert.h>
#include <errno.h>
#include <string.h>
#include <ctype.h>
Include dependency graph for tm_builder.c:

Go to the source code of this file.

Macros

#define INVOKE_FN(macro_var1)
 

Functions

static void addMemberInfoToCallDb (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, GWEN_DB_NODE *db, int withTypePrefix)
 
void addMemberInfoToCallDb (GWEN_UNUSED TYPEMAKER2_BUILDER *tb, GWEN_UNUSED TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, GWEN_DB_NODE *db, int withTypePrefix)
 
 INVOKE_FN (Construct)
 
 INVOKE_FN (Destruct)
 
 INVOKE_FN (Assign)
 
 INVOKE_FN (Dup)
 
 INVOKE_FN (Compare)
 
 INVOKE_FN (ToDb)
 
 INVOKE_FN (FromDb)
 
 INVOKE_FN (ToXml)
 
 INVOKE_FN (FromXml)
 
 INVOKE_FN (ToObject)
 
 INVOKE_FN (FromObject)
 
 INVOKE_FN (ToHashString)
 
static void setCharValueWithTypePrefix (GWEN_DB_NODE *db, const char *prefix, const char *varName, const char *value)
 
void Typemaker2_Builder_AddCode (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_AddDeclaration (TYPEMAKER2_BUILDER *tb, int access, const char *s)
 
void Typemaker2_Builder_AddLibraryDeclaration (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_AddPrivateDeclaration (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_AddProtectedDeclaration (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_AddPublicDeclaration (TYPEMAKER2_BUILDER *tb, const char *s)
 
int Typemaker2_Builder_Build (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
 
GWEN_DB_NODETypemaker2_Builder_CreateDbForCall (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, const char *src, const char *dst)
 
int Typemaker2_Builder_DetermineOutFileNames (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
 
void Typemaker2_Builder_free (TYPEMAKER2_BUILDER *tb)
 
GWEN_STRINGLISTTypemaker2_Builder_GetCode (const TYPEMAKER2_BUILDER *tb)
 
const char * Typemaker2_Builder_GetDestFolderName (const TYPEMAKER2_BUILDER *tb)
 
const char * Typemaker2_Builder_GetFileNameCode (const TYPEMAKER2_BUILDER *tb)
 
const char * Typemaker2_Builder_GetFileNameLibrary (const TYPEMAKER2_BUILDER *tb)
 
const char * Typemaker2_Builder_GetFileNamePrivate (const TYPEMAKER2_BUILDER *tb)
 
const char * Typemaker2_Builder_GetFileNameProtected (const TYPEMAKER2_BUILDER *tb)
 
const char * Typemaker2_Builder_GetFileNamePublic (const TYPEMAKER2_BUILDER *tb)
 
GWEN_STRINGLISTTypemaker2_Builder_GetLibraryDeclarations (const TYPEMAKER2_BUILDER *tb)
 
GWEN_STRINGLISTTypemaker2_Builder_GetPrivateDeclarations (const TYPEMAKER2_BUILDER *tb)
 
GWEN_STRINGLISTTypemaker2_Builder_GetProtectedDeclarations (const TYPEMAKER2_BUILDER *tb)
 
GWEN_STRINGLISTTypemaker2_Builder_GetPublicDeclarations (const TYPEMAKER2_BUILDER *tb)
 
const char * Typemaker2_Builder_GetSourceFileName (const TYPEMAKER2_BUILDER *tb)
 
TYPEMAKER2_TYPEMANAGERTypemaker2_Builder_GetTypeManager (const TYPEMAKER2_BUILDER *tb)
 
TYPEMAKER2_BUILDERTypemaker2_Builder_new ()
 
int Typemaker2_Builder_PrintFileNames (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
 
int Typemaker2_Builder_ReplaceVars (const char *s, GWEN_DB_NODE *db, GWEN_BUFFER *dbuf)
 
void Typemaker2_Builder_SetBuildFn (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_BUILDER_BUILD_FN fn)
 
void Typemaker2_Builder_SetDestFolderName (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_SetFileNameCode (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_SetFileNameLibrary (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_SetFileNamePrivate (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_SetFileNameProtected (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_SetFileNamePublic (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_SetSourceFileName (TYPEMAKER2_BUILDER *tb, const char *s)
 
void Typemaker2_Builder_SetTypeManager (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPEMANAGER *tm)
 
int Typemaker2_Builder_WriteFile (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, const char *fileName, GWEN_STRINGLIST *sl, int acc)
 
int Typemaker2_Builder_WriteFiles (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, uint32_t writeFlags)
 
int Typemaker2_Builder_WriteTypedefFile (GWEN_UNUSED TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, const char *fileName)
 
int Typemaker2_Builder_WriteTypedefFile_IdMap (GWEN_UNUSED TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, const char *fileName)
 
int Typemaker2_Builder_WriteTypedefFile_List1 (GWEN_UNUSED TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, const char *fileName)
 
int Typemaker2_Builder_WriteTypedefFile_List2 (GWEN_UNUSED TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, const char *fileName)
 
int Typemaker2_Builder_WriteTypedefFile_Tree (GWEN_UNUSED TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, const char *fileName)
 
int Typemaker2_Builder_WriteTypedefFile_Tree2 (GWEN_UNUSED TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, const char *fileName)
 

Macro Definition Documentation

◆ INVOKE_FN

#define INVOKE_FN (   macro_var1)

Definition at line 657 of file tm_builder.c.

Function Documentation

◆ addMemberInfoToCallDb() [1/2]

static void addMemberInfoToCallDb ( TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
TYPEMAKER2_MEMBER tm,
GWEN_DB_NODE db,
int  withTypePrefix 
)
static

Referenced by Typemaker2_Builder_CreateDbForCall().

Here is the caller graph for this function:

◆ addMemberInfoToCallDb() [2/2]

void addMemberInfoToCallDb ( GWEN_UNUSED TYPEMAKER2_BUILDER tb,
GWEN_UNUSED TYPEMAKER2_TYPE ty,
TYPEMAKER2_MEMBER tm,
GWEN_DB_NODE db,
int  withTypePrefix 
)

◆ INVOKE_FN() [1/12]

INVOKE_FN ( Construct  )

◆ INVOKE_FN() [2/12]

INVOKE_FN ( Destruct  )

◆ INVOKE_FN() [3/12]

INVOKE_FN ( Assign  )

◆ INVOKE_FN() [4/12]

INVOKE_FN ( Dup  )

◆ INVOKE_FN() [5/12]

INVOKE_FN ( Compare  )

◆ INVOKE_FN() [6/12]

INVOKE_FN ( ToDb  )

◆ INVOKE_FN() [7/12]

INVOKE_FN ( FromDb  )

◆ INVOKE_FN() [8/12]

INVOKE_FN ( ToXml  )

◆ INVOKE_FN() [9/12]

INVOKE_FN ( FromXml  )

◆ INVOKE_FN() [10/12]

INVOKE_FN ( ToObject  )

◆ INVOKE_FN() [11/12]

INVOKE_FN ( FromObject  )

◆ INVOKE_FN() [12/12]

INVOKE_FN ( ToHashString  )

◆ setCharValueWithTypePrefix()

void setCharValueWithTypePrefix ( GWEN_DB_NODE db,
const char *  prefix,
const char *  varName,
const char *  value 
)
static

Definition at line 527 of file tm_builder.c.

References GWEN_Buffer_AppendString(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_new(), GWEN_DB_FLAGS_OVERWRITE_VARS, and GWEN_DB_SetCharValue().

Referenced by addMemberInfoToCallDb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Typemaker2_Builder_AddCode()

void Typemaker2_Builder_AddCode ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

◆ Typemaker2_Builder_AddDeclaration()

void Typemaker2_Builder_AddDeclaration ( TYPEMAKER2_BUILDER tb,
int  access,
const char *  s 
)

◆ Typemaker2_Builder_AddLibraryDeclaration()

void Typemaker2_Builder_AddLibraryDeclaration ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

◆ Typemaker2_Builder_AddPrivateDeclaration()

void Typemaker2_Builder_AddPrivateDeclaration ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

◆ Typemaker2_Builder_AddProtectedDeclaration()

void Typemaker2_Builder_AddProtectedDeclaration ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

◆ Typemaker2_Builder_AddPublicDeclaration()

void Typemaker2_Builder_AddPublicDeclaration ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

◆ Typemaker2_Builder_Build()

int Typemaker2_Builder_Build ( TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty 
)

Definition at line 360 of file tm_builder.c.

References GWEN_ERROR_NOT_SUPPORTED.

Referenced by buildFile2().

Here is the caller graph for this function:

◆ Typemaker2_Builder_CreateDbForCall()

GWEN_DB_NODE* Typemaker2_Builder_CreateDbForCall ( TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
TYPEMAKER2_MEMBER tm,
const char *  src,
const char *  dst 
)

◆ Typemaker2_Builder_DetermineOutFileNames()

int Typemaker2_Builder_DetermineOutFileNames ( TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty 
)

◆ Typemaker2_Builder_free()

void Typemaker2_Builder_free ( TYPEMAKER2_BUILDER tb)

Definition at line 71 of file tm_builder.c.

References GWEN_FREE_OBJECT, GWEN_INHERIT_FINI, and GWEN_StringList_free().

Here is the call graph for this function:

◆ Typemaker2_Builder_GetCode()

GWEN_STRINGLIST* Typemaker2_Builder_GetCode ( const TYPEMAKER2_BUILDER tb)

Definition at line 125 of file tm_builder.c.

◆ Typemaker2_Builder_GetDestFolderName()

const char* Typemaker2_Builder_GetDestFolderName ( const TYPEMAKER2_BUILDER tb)

Definition at line 332 of file tm_builder.c.

◆ Typemaker2_Builder_GetFileNameCode()

const char* Typemaker2_Builder_GetFileNameCode ( const TYPEMAKER2_BUILDER tb)

Definition at line 292 of file tm_builder.c.

◆ Typemaker2_Builder_GetFileNameLibrary()

const char* Typemaker2_Builder_GetFileNameLibrary ( const TYPEMAKER2_BUILDER tb)

Definition at line 232 of file tm_builder.c.

◆ Typemaker2_Builder_GetFileNamePrivate()

const char* Typemaker2_Builder_GetFileNamePrivate ( const TYPEMAKER2_BUILDER tb)

Definition at line 272 of file tm_builder.c.

◆ Typemaker2_Builder_GetFileNameProtected()

const char* Typemaker2_Builder_GetFileNameProtected ( const TYPEMAKER2_BUILDER tb)

Definition at line 252 of file tm_builder.c.

◆ Typemaker2_Builder_GetFileNamePublic()

const char* Typemaker2_Builder_GetFileNamePublic ( const TYPEMAKER2_BUILDER tb)

Definition at line 212 of file tm_builder.c.

◆ Typemaker2_Builder_GetLibraryDeclarations()

GWEN_STRINGLIST* Typemaker2_Builder_GetLibraryDeclarations ( const TYPEMAKER2_BUILDER tb)

Definition at line 101 of file tm_builder.c.

◆ Typemaker2_Builder_GetPrivateDeclarations()

GWEN_STRINGLIST* Typemaker2_Builder_GetPrivateDeclarations ( const TYPEMAKER2_BUILDER tb)

Definition at line 117 of file tm_builder.c.

◆ Typemaker2_Builder_GetProtectedDeclarations()

GWEN_STRINGLIST* Typemaker2_Builder_GetProtectedDeclarations ( const TYPEMAKER2_BUILDER tb)

Definition at line 109 of file tm_builder.c.

◆ Typemaker2_Builder_GetPublicDeclarations()

GWEN_STRINGLIST* Typemaker2_Builder_GetPublicDeclarations ( const TYPEMAKER2_BUILDER tb)

Definition at line 93 of file tm_builder.c.

◆ Typemaker2_Builder_GetSourceFileName()

const char* Typemaker2_Builder_GetSourceFileName ( const TYPEMAKER2_BUILDER tb)

Definition at line 312 of file tm_builder.c.

Referenced by Typemaker2_Builder_WriteFile().

Here is the caller graph for this function:

◆ Typemaker2_Builder_GetTypeManager()

TYPEMAKER2_TYPEMANAGER* Typemaker2_Builder_GetTypeManager ( const TYPEMAKER2_BUILDER tb)

◆ Typemaker2_Builder_new()

TYPEMAKER2_BUILDER* Typemaker2_Builder_new ( )

Definition at line 53 of file tm_builder.c.

References GWEN_INHERIT_INIT, GWEN_NEW_OBJECT, and GWEN_StringList_new().

Referenced by Typemaker2_Builder_C_new().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Typemaker2_Builder_PrintFileNames()

int Typemaker2_Builder_PrintFileNames ( TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty 
)

Definition at line 1613 of file tm_builder.c.

References DBG_INFO, GWEN_LOGDOMAIN, GWEN_StringList_Count(), and Typemaker2_Builder_DetermineOutFileNames().

Here is the call graph for this function:

◆ Typemaker2_Builder_ReplaceVars()

int Typemaker2_Builder_ReplaceVars ( const char *  s,
GWEN_DB_NODE db,
GWEN_BUFFER dbuf 
)

Definition at line 548 of file tm_builder.c.

References DBG_ERROR, GWEN_Buffer_AppendByte(), GWEN_Buffer_AppendString(), GWEN_DB_GetCharValue(), GWEN_ERROR_BAD_DATA, GWEN_LOGDOMAIN, and NULL.

Referenced by _buildGroupApiDoc(), _buildInlines(), and _buildMemberInlines().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Typemaker2_Builder_SetBuildFn()

void Typemaker2_Builder_SetBuildFn ( TYPEMAKER2_BUILDER tb,
TYPEMAKER2_BUILDER_BUILD_FN  fn 
)

Definition at line 352 of file tm_builder.c.

Referenced by Typemaker2_Builder_C_new().

Here is the caller graph for this function:

◆ Typemaker2_Builder_SetDestFolderName()

void Typemaker2_Builder_SetDestFolderName ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

Definition at line 340 of file tm_builder.c.

References NULL.

Referenced by buildFile2(), and doBuildDefs().

Here is the caller graph for this function:

◆ Typemaker2_Builder_SetFileNameCode()

void Typemaker2_Builder_SetFileNameCode ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

Definition at line 300 of file tm_builder.c.

References NULL.

Referenced by buildFile2(), and Typemaker2_Builder_DetermineOutFileNames().

Here is the caller graph for this function:

◆ Typemaker2_Builder_SetFileNameLibrary()

void Typemaker2_Builder_SetFileNameLibrary ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

Definition at line 240 of file tm_builder.c.

References NULL.

Referenced by buildFile2(), and Typemaker2_Builder_DetermineOutFileNames().

Here is the caller graph for this function:

◆ Typemaker2_Builder_SetFileNamePrivate()

void Typemaker2_Builder_SetFileNamePrivate ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

Definition at line 280 of file tm_builder.c.

References NULL.

Referenced by buildFile2(), and Typemaker2_Builder_DetermineOutFileNames().

Here is the caller graph for this function:

◆ Typemaker2_Builder_SetFileNameProtected()

void Typemaker2_Builder_SetFileNameProtected ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

Definition at line 260 of file tm_builder.c.

References NULL.

Referenced by buildFile2(), and Typemaker2_Builder_DetermineOutFileNames().

Here is the caller graph for this function:

◆ Typemaker2_Builder_SetFileNamePublic()

void Typemaker2_Builder_SetFileNamePublic ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

Definition at line 220 of file tm_builder.c.

References NULL.

Referenced by buildFile2(), and Typemaker2_Builder_DetermineOutFileNames().

Here is the caller graph for this function:

◆ Typemaker2_Builder_SetSourceFileName()

void Typemaker2_Builder_SetSourceFileName ( TYPEMAKER2_BUILDER tb,
const char *  s 
)

Definition at line 320 of file tm_builder.c.

References NULL.

Referenced by buildFile2(), and doBuildDefs().

Here is the caller graph for this function:

◆ Typemaker2_Builder_SetTypeManager()

void Typemaker2_Builder_SetTypeManager ( TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPEMANAGER tm 
)

Definition at line 141 of file tm_builder.c.

Referenced by buildFile2(), and doBuildDefs().

Here is the caller graph for this function:

◆ Typemaker2_Builder_WriteFile()

int Typemaker2_Builder_WriteFile ( TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
const char *  fileName,
GWEN_STRINGLIST sl,
int  acc 
)

◆ Typemaker2_Builder_WriteFiles()

int Typemaker2_Builder_WriteFiles ( TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
uint32_t  writeFlags 
)

◆ Typemaker2_Builder_WriteTypedefFile()

int Typemaker2_Builder_WriteTypedefFile ( GWEN_UNUSED TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
const char *  fileName 
)

Definition at line 909 of file tm_builder.c.

References DBG_ERROR, GWEN_ERROR_IO, GWEN_LOGDOMAIN, NULL, Typemaker2_Type_GetName(), and Typemaker2_Type_GetPrefix().

Referenced by Typemaker2_Builder_WriteFiles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Typemaker2_Builder_WriteTypedefFile_IdMap()

int Typemaker2_Builder_WriteTypedefFile_IdMap ( GWEN_UNUSED TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
const char *  fileName 
)

Definition at line 1122 of file tm_builder.c.

References DBG_ERROR, GWEN_ERROR_IO, GWEN_LOGDOMAIN, NULL, Typemaker2_Type_GetName(), and Typemaker2_Type_GetPrefix().

Referenced by Typemaker2_Builder_WriteFiles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Typemaker2_Builder_WriteTypedefFile_List1()

int Typemaker2_Builder_WriteTypedefFile_List1 ( GWEN_UNUSED TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
const char *  fileName 
)

Definition at line 950 of file tm_builder.c.

References DBG_ERROR, GWEN_ERROR_IO, GWEN_LOGDOMAIN, NULL, Typemaker2_Type_GetName(), and Typemaker2_Type_GetPrefix().

Referenced by Typemaker2_Builder_WriteFiles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Typemaker2_Builder_WriteTypedefFile_List2()

int Typemaker2_Builder_WriteTypedefFile_List2 ( GWEN_UNUSED TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
const char *  fileName 
)

Definition at line 993 of file tm_builder.c.

References DBG_ERROR, GWEN_ERROR_IO, GWEN_LOGDOMAIN, NULL, Typemaker2_Type_GetName(), and Typemaker2_Type_GetPrefix().

Referenced by Typemaker2_Builder_WriteFiles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Typemaker2_Builder_WriteTypedefFile_Tree()

int Typemaker2_Builder_WriteTypedefFile_Tree ( GWEN_UNUSED TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
const char *  fileName 
)

Definition at line 1036 of file tm_builder.c.

References DBG_ERROR, GWEN_ERROR_IO, GWEN_LOGDOMAIN, NULL, Typemaker2_Type_GetName(), and Typemaker2_Type_GetPrefix().

Referenced by Typemaker2_Builder_WriteFiles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Typemaker2_Builder_WriteTypedefFile_Tree2()

int Typemaker2_Builder_WriteTypedefFile_Tree2 ( GWEN_UNUSED TYPEMAKER2_BUILDER tb,
TYPEMAKER2_TYPE ty,
const char *  fileName 
)

Definition at line 1079 of file tm_builder.c.

References DBG_ERROR, GWEN_ERROR_IO, GWEN_LOGDOMAIN, NULL, Typemaker2_Type_GetName(), and Typemaker2_Type_GetPrefix().

Referenced by Typemaker2_Builder_WriteFiles().

Here is the call graph for this function:
Here is the caller graph for this function: