gwenhywfar 5.14.1
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

void addMemberInfoToCallDb (GWEN_UNUSED TYPEMAKER2_BUILDER *tb, GWEN_UNUSED TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, GWEN_DB_NODE *db, int withTypePrefix)
static void addMemberInfoToCallDb (TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, TYPEMAKER2_MEMBER *tm, GWEN_DB_NODE *db, int withTypePrefix)
 INVOKE_FN (Assign)
 INVOKE_FN (Compare)
 INVOKE_FN (Construct)
 INVOKE_FN (Destruct)
 INVOKE_FN (Dup)
 INVOKE_FN (FromDb)
 INVOKE_FN (FromObject)
 INVOKE_FN (FromXml)
 INVOKE_FN (ToDb)
 INVOKE_FN (ToHashString)
 INVOKE_FN (ToObject)
 INVOKE_FN (ToXml)
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]

◆ addMemberInfoToCallDb() [2/2]

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:

◆ INVOKE_FN() [1/12]

INVOKE_FN ( Assign )

◆ INVOKE_FN() [2/12]

INVOKE_FN ( Compare )

◆ INVOKE_FN() [3/12]

INVOKE_FN ( Construct )

◆ INVOKE_FN() [4/12]

INVOKE_FN ( Destruct )

◆ INVOKE_FN() [5/12]

INVOKE_FN ( Dup )

◆ INVOKE_FN() [6/12]

INVOKE_FN ( FromDb )

◆ INVOKE_FN() [7/12]

INVOKE_FN ( FromObject )

◆ INVOKE_FN() [8/12]

INVOKE_FN ( FromXml )

◆ INVOKE_FN() [9/12]

INVOKE_FN ( ToDb )

◆ INVOKE_FN() [10/12]

INVOKE_FN ( ToHashString )

◆ INVOKE_FN() [11/12]

INVOKE_FN ( ToObject )

◆ INVOKE_FN() [12/12]

INVOKE_FN ( ToXml )

◆ 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()

◆ Typemaker2_Builder_AddDeclaration()

◆ Typemaker2_Builder_AddLibraryDeclaration()

void Typemaker2_Builder_AddLibraryDeclaration ( TYPEMAKER2_BUILDER * tb,
const char * s )

◆ Typemaker2_Builder_AddPrivateDeclaration()

◆ Typemaker2_Builder_AddProtectedDeclaration()

void Typemaker2_Builder_AddProtectedDeclaration ( TYPEMAKER2_BUILDER * tb,
const char * s )

◆ Typemaker2_Builder_AddPublicDeclaration()

◆ 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()

◆ 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_Builder_new()

TYPEMAKER2_BUILDER * Typemaker2_Builder_new ( )

Definition at line 53 of file tm_builder.c.

References GWEN_INHERIT_INIT, GWEN_NEW_OBJECT, GWEN_StringList_new(), and Typemaker2_Builder_new().

Referenced by Typemaker2_Builder_C_new(), and Typemaker2_Builder_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()

◆ Typemaker2_Builder_WriteFiles()

◆ 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, GWEN_UNUSED, 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, GWEN_UNUSED, 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, GWEN_UNUSED, 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, GWEN_UNUSED, 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, GWEN_UNUSED, 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, GWEN_UNUSED, 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: