gwenhywfar 5.14.1
tm2c_macros.c
Go to the documentation of this file.
1/***************************************************************************
2 begin : Thu Jul 02 2009
3 copyright : (C) 2018 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 "tm2c_macros.h"
16#include "tm2c_misc.h"
17
18#include <gwenhywfar/debug.h>
19
20#include <ctype.h>
21
22
23
25{
26 GWEN_BUFFER *tbuf;
27 uint32_t flags;
28 const char *sTypeId;
29 const char *sTypePrefix;
30
32 sTypePrefix=Typemaker2_Type_GetPrefix(ty);
33
34 tbuf=GWEN_Buffer_new(0, 256, 0, 1);
35
36 GWEN_Buffer_AppendString(tbuf, "/* macro functions */\n");
37
40 GWEN_Buffer_AppendArgs(tbuf, "GWEN_LIST_FUNCTIONS(%s, %s)\n", sTypeId, sTypePrefix);
41
43 GWEN_Buffer_AppendArgs(tbuf, "GWEN_LIST2_FUNCTIONS(%s, %s)\n", sTypeId, sTypePrefix);
44
46 GWEN_Buffer_AppendArgs(tbuf, "GWEN_CONSTLIST2_FUNCTIONS(%s, %s)\n", sTypeId, sTypePrefix);
47
49 GWEN_Buffer_AppendArgs(tbuf, "GWEN_TREE_FUNCTIONS(%s, %s)\n", sTypeId, sTypePrefix);
50
52 GWEN_Buffer_AppendArgs(tbuf, "GWEN_TREE2_FUNCTIONS(%s, %s)\n", sTypeId, sTypePrefix);
53
55 GWEN_Buffer_AppendArgs(tbuf, "GWEN_INHERIT_FUNCTIONS(%s)\n", sTypeId);
56
58 GWEN_Buffer_AppendArgs(tbuf, "GWEN_IDMAP_FUNCTIONS(%s, %s)\n", sTypeId, sTypePrefix);
59
60 GWEN_Buffer_AppendString(tbuf, "\n");
61
63 GWEN_Buffer_free(tbuf);
64
65 return 0;
66}
67
68
69
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
Definition buffer.c:42
int GWEN_Buffer_AppendArgs(GWEN_BUFFER *bf, const char *fmt,...)
Definition buffer.c:1087
void GWEN_Buffer_free(GWEN_BUFFER *bf)
Definition buffer.c:89
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
Definition buffer.c:992
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
Definition buffer.c:235
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition buffer.h:38
int TM2C_BuildMacroFunctions(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
Definition tm2c_macros.c:24
void Typemaker2_Builder_AddCode(TYPEMAKER2_BUILDER *tb, const char *s)
Definition tm_builder.c:204
struct TYPEMAKER2_BUILDER TYPEMAKER2_BUILDER
Definition tm_builder.h:26
const char * Typemaker2_Type_GetIdentifier(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:585
uint32_t Typemaker2_Type_GetFlags(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:361
const char * Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:607
#define TYPEMAKER2_TYPEFLAGS_WITH_IDMAP
Definition tm_type.h:59
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
Definition tm_type.h:21
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST1
Definition tm_type.h:56
#define TYPEMAKER2_TYPEFLAGS_WITH_INHERIT
Definition tm_type.h:58
#define TYPEMAKER2_TYPEFLAGS_WITH_LIST2
Definition tm_type.h:57
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE
Definition tm_type.h:60
#define TYPEMAKER2_TYPEFLAGS_WITH_CONSTLIST2
Definition tm_type.h:70
#define TYPEMAKER2_TYPEFLAGS_WITH_TREE2
Definition tm_type.h:71