gwenhywfar 5.12.0
tm2c_virtualfn.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_virtualfn.h"
16#include "tm2c_misc.h"
17
18#include <gwenhywfar/debug.h>
19
20#include <ctype.h>
21
22
23
25{
26 TYPEMAKER2_VIRTUALFN_LIST *fns;
27
29
30 assert(fns);
31 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
32 GWEN_BUFFER *tbuf;
33 const char *s;
35
36 tbuf=GWEN_Buffer_new(0, 256, 0, 1);
37
38 if (loc && *loc)
39 GWEN_Buffer_AppendArgs(tbuf, "/* definitions for virtual functions (%s) */\n", loc);
40 else
41 GWEN_Buffer_AppendString(tbuf, "/* definitions for virtual functions */\n");
42
43 vf=Typemaker2_VirtualFn_List_First(fns);
44 while (vf) {
46 if (!(s && *s))
47 s="pre";
48 if (s && loc && strcasecmp(s, loc)==0) {
49 int access=Typemaker2_VirtualFn_GetAccess(vf);
50 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
51 int i;
52
53 GWEN_Buffer_AppendString(tbuf, "typedef ");
55 if (!(s && *s)) {
56 GWEN_Buffer_free(tbuf);
58 }
60
62 GWEN_Buffer_AppendString(tbuf, " GWENHYWFAR_CB");
63 }
64
66
68 if (!(s && *s)) {
69 GWEN_Buffer_free(tbuf);
71 }
72 while (*s) {
73 GWEN_Buffer_AppendByte(tbuf, toupper(*s));
74 s++;
75 }
76 GWEN_Buffer_AppendString(tbuf, "_FN)(");
77
79 GWEN_Buffer_AppendString(tbuf, "const ");
80
83 /* created structs are always pointers */
84 GWEN_Buffer_AppendString(tbuf, " *p_struct");
85
87 if (plist) {
89
90 i=1;
91 prm=Typemaker2_VirtualFn_Param_List_First(plist);
92 while (prm) {
93 const char *paramName;
94 const char *paramType;
95
96 GWEN_Buffer_AppendString(tbuf, ", ");
97
100
101 GWEN_Buffer_AppendString(tbuf, paramType);
102 GWEN_Buffer_AppendString(tbuf, " ");
103
104 if (paramName)
105 GWEN_Buffer_AppendString(tbuf, paramName);
106 else
107 GWEN_Buffer_AppendArgs(tbuf, "param%d", i);
108
109 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
110 i++;
111 }
112 }
113
114 GWEN_Buffer_AppendString(tbuf, ");\n");
116 GWEN_Buffer_Reset(tbuf);
117 }
118
119 vf=Typemaker2_VirtualFn_List_Next(vf);
120 }
121 GWEN_Buffer_free(tbuf);
122 }
123
124 return 0;
125}
126
127
128
130{
131 TYPEMAKER2_VIRTUALFN_LIST *fns;
133
136
137 assert(fns);
138 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
139 GWEN_BUFFER *tbuf;
140 const char *s;
142
143 tbuf=GWEN_Buffer_new(0, 256, 0, 1);
144
145 GWEN_Buffer_AppendString(tbuf, "/* prototypes for virtual functions */\n");
146 vf=Typemaker2_VirtualFn_List_First(fns);
147 while (vf) {
148 int access=Typemaker2_VirtualFn_GetAccess(vf);
149 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
150 int i;
151
152 /* write APIDOC */
153 GWEN_Buffer_AppendString(tbuf, "/**\n");
155 if (s && *s) {
156 int len;
157
158 GWEN_Buffer_AppendString(tbuf, " * ");
160 len=strlen(s);
161 if (s[len-1]!='\n')
162 GWEN_Buffer_AppendString(tbuf, "\n");
163 }
164
166 if (s && *s) {
167 int len;
168
169 GWEN_Buffer_AppendString(tbuf, " * @return ");
171 len=strlen(s);
172 if (s[len-1]!='\n')
173 GWEN_Buffer_AppendString(tbuf, "\n");
174 }
175
176
177 i=1;
179 if (plist) {
181
182 i=1;
183 prm=Typemaker2_VirtualFn_Param_List_First(plist);
184 while (prm) {
185 const char *paramDescr;
186
188 if (paramDescr && *paramDescr) {
189 const char *paramName;
190 int len;
191
192 GWEN_Buffer_AppendString(tbuf, " * @param ");
194 if (paramName)
195 GWEN_Buffer_AppendString(tbuf, paramName);
196 else {
197 char numbuf[64];
198
199 snprintf(numbuf, sizeof(numbuf)-1, "param%d", i);
200 numbuf[sizeof(numbuf)-1]=0;
201 GWEN_Buffer_AppendString(tbuf, numbuf);
202 }
203
204 GWEN_Buffer_AppendString(tbuf, " ");
205 GWEN_Buffer_AppendString(tbuf, paramDescr);
206 len=strlen(paramDescr);
207 if (paramDescr[len-1]!='\n')
208 GWEN_Buffer_AppendString(tbuf, "\n");
209 }
210
211 i++;
212 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
213 }
214 }
215 GWEN_Buffer_AppendString(tbuf, " */\n");
216
217
219 if (s && *s) {
221 GWEN_Buffer_AppendString(tbuf, " ");
222 }
223
225 if (!(s && *s)) {
226 GWEN_Buffer_free(tbuf);
227 return GWEN_ERROR_BAD_DATA;
228 }
230 GWEN_Buffer_AppendString(tbuf, " ");
231
234 GWEN_Buffer_AppendString(tbuf, "_");
236 if (!(s && *s)) {
237 GWEN_Buffer_free(tbuf);
238 return GWEN_ERROR_BAD_DATA;
239 }
240 GWEN_Buffer_AppendByte(tbuf, toupper(*s));
241 GWEN_Buffer_AppendString(tbuf, s+1);
242 GWEN_Buffer_AppendString(tbuf, "(");
243
245 GWEN_Buffer_AppendString(tbuf, "const ");
246
249 /* created structs are always pointers */
250 GWEN_Buffer_AppendString(tbuf, " *p_struct");
251
252
253 i=1;
255 if (plist) {
257
258 i=1;
259 prm=Typemaker2_VirtualFn_Param_List_First(plist);
260 while (prm) {
261 const char *paramName;
262 const char *paramType;
263
264 GWEN_Buffer_AppendString(tbuf, ", ");
265
268
269 GWEN_Buffer_AppendString(tbuf, paramType);
270 GWEN_Buffer_AppendString(tbuf, " ");
271
272 if (paramName)
273 GWEN_Buffer_AppendString(tbuf, paramName);
274 else {
275 char numbuf[64];
276
277 snprintf(numbuf, sizeof(numbuf)-1, "param%d", i);
278 numbuf[sizeof(numbuf)-1]=0;
279 GWEN_Buffer_AppendString(tbuf, numbuf);
280 }
281
282 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
283 i++;
284 }
285 }
286 GWEN_Buffer_AppendString(tbuf, ");\n");
288 GWEN_Buffer_Reset(tbuf);
289
290 vf=Typemaker2_VirtualFn_List_Next(vf);
291 }
292 GWEN_Buffer_free(tbuf);
293 }
294
295 return 0;
296}
297
298
299
301{
302 TYPEMAKER2_VIRTUALFN_LIST *fns;
303
305
306 assert(fns);
307 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
308 GWEN_BUFFER *tbuf;
309 const char *s;
311
312 tbuf=GWEN_Buffer_new(0, 256, 0, 1);
313
314 GWEN_Buffer_AppendString(tbuf, "/* code for virtual functions */\n");
315 vf=Typemaker2_VirtualFn_List_First(fns);
316 while (vf) {
317 TYPEMAKER2_VIRTUALFN_PARAM_LIST *plist;
318 int i;
319
321 if (!(s && *s)) {
322 GWEN_Buffer_free(tbuf);
323 return GWEN_ERROR_BAD_DATA;
324 }
326 GWEN_Buffer_AppendString(tbuf, " ");
327
330 GWEN_Buffer_AppendString(tbuf, "_");
332 if (!(s && *s)) {
333 GWEN_Buffer_free(tbuf);
334 return GWEN_ERROR_BAD_DATA;
335 }
336 GWEN_Buffer_AppendByte(tbuf, toupper(*s));
337 GWEN_Buffer_AppendString(tbuf, s+1);
338 GWEN_Buffer_AppendString(tbuf, "(");
339
341 GWEN_Buffer_AppendString(tbuf, "const ");
342
345 /* created structs are always pointers */
346 GWEN_Buffer_AppendString(tbuf, " *p_struct");
347
348
349 i=1;
351 if (plist) {
353
354 i=1;
355 prm=Typemaker2_VirtualFn_Param_List_First(plist);
356 while (prm) {
357 const char *paramName;
358 const char *paramType;
359
360 GWEN_Buffer_AppendString(tbuf, ", ");
361
364
365 GWEN_Buffer_AppendString(tbuf, paramType);
366 GWEN_Buffer_AppendString(tbuf, " ");
367
368 if (paramName)
369 GWEN_Buffer_AppendString(tbuf, paramName);
370 else {
371 char numbuf[64];
372
373 snprintf(numbuf, sizeof(numbuf)-1, "param%d", i);
374 numbuf[sizeof(numbuf)-1]=0;
375 GWEN_Buffer_AppendString(tbuf, numbuf);
376 }
377
378 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
379 i++;
380 }
381 }
382 GWEN_Buffer_AppendString(tbuf, ") {\n");
383
384 GWEN_Buffer_AppendString(tbuf, " assert(p_struct);\n");
385 GWEN_Buffer_AppendString(tbuf, " if (p_struct->");
387 if (!(s && *s)) {
388 DBG_ERROR(0, "Virtual functions has no name");
389 GWEN_Buffer_free(tbuf);
390 return GWEN_ERROR_BAD_DATA;
391 }
393 GWEN_Buffer_AppendString(tbuf, "Fn)\n");
394 GWEN_Buffer_AppendString(tbuf, " return p_struct->");
396 GWEN_Buffer_AppendString(tbuf, "Fn(p_struct");
397
398 i=1;
400 if (plist) {
402
403 i=1;
404 prm=Typemaker2_VirtualFn_Param_List_First(plist);
405 while (prm) {
406 const char *paramName;
407
408 GWEN_Buffer_AppendString(tbuf, ", ");
409
411
412 if (paramName)
413 GWEN_Buffer_AppendString(tbuf, paramName);
414 else {
415 char numbuf[64];
416
417 snprintf(numbuf, sizeof(numbuf)-1, "param%d", i);
418 numbuf[sizeof(numbuf)-1]=0;
419 GWEN_Buffer_AppendString(tbuf, numbuf);
420 }
421
422 prm=Typemaker2_VirtualFn_Param_List_Next(prm);
423 i++;
424 }
425 }
426 GWEN_Buffer_AppendString(tbuf, ");\n");
427
428 GWEN_Buffer_AppendString(tbuf, " else\n");
429 GWEN_Buffer_AppendString(tbuf, " return ");
431 if (!(s && *s)) {
432 DBG_ERROR(0, "No default return value");
433 GWEN_Buffer_free(tbuf);
434 return GWEN_ERROR_BAD_DATA;
435 }
437 GWEN_Buffer_AppendString(tbuf, ";\n");
438 GWEN_Buffer_AppendString(tbuf, "}\n");
439
441 GWEN_Buffer_Reset(tbuf);
442
443 vf=Typemaker2_VirtualFn_List_Next(vf);
444 }
445 GWEN_Buffer_free(tbuf);
446 }
447
448 return 0;
449}
450
451
452
454{
455 TYPEMAKER2_VIRTUALFN_LIST *fns;
457
460
461 assert(fns);
462 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
463 GWEN_BUFFER *tbuf;
464 const char *s;
466
467 tbuf=GWEN_Buffer_new(0, 256, 0, 1);
468
469 GWEN_Buffer_AppendString(tbuf, "/* setters for virtual functions */\n");
470 vf=Typemaker2_VirtualFn_List_First(fns);
471 while (vf) {
472 int access=Typemaker2_VirtualFn_GetAccess(vf);
473
475 if (s && *s) {
477 GWEN_Buffer_AppendString(tbuf, " ");
478 }
479
482 GWEN_Buffer_AppendString(tbuf, "_");
484 if (!(s && *s)) {
485 GWEN_Buffer_free(tbuf);
486 return GWEN_ERROR_BAD_DATA;
487 }
488 while (*s)
489 GWEN_Buffer_AppendByte(tbuf, toupper(*(s++)));
490 GWEN_Buffer_AppendString(tbuf, "_FN ");
491
494 GWEN_Buffer_AppendString(tbuf, "_Set");
496 if (!(s && *s)) {
497 GWEN_Buffer_free(tbuf);
498 return GWEN_ERROR_BAD_DATA;
499 }
500 GWEN_Buffer_AppendByte(tbuf, toupper(*s));
501 GWEN_Buffer_AppendString(tbuf, s+1);
502 GWEN_Buffer_AppendString(tbuf, "Fn(");
503
506 /* created structs are always pointers */
507 GWEN_Buffer_AppendString(tbuf, " *p_struct, ");
508
511 GWEN_Buffer_AppendString(tbuf, "_");
513 if (!(s && *s)) {
514 GWEN_Buffer_free(tbuf);
515 return GWEN_ERROR_BAD_DATA;
516 }
517 while (*s)
518 GWEN_Buffer_AppendByte(tbuf, toupper(*(s++)));
519 GWEN_Buffer_AppendString(tbuf, "_FN fn);\n");
520
521 switch (access) {
524 break;
527 break;
530 break;
533 break;
534 default:
535 DBG_ERROR(GWEN_LOGDOMAIN, "Invalid access type");
536 GWEN_Buffer_free(tbuf);
537 return GWEN_ERROR_BAD_DATA;
538 }
539 GWEN_Buffer_Reset(tbuf);
540
541 vf=Typemaker2_VirtualFn_List_Next(vf);
542 }
543 GWEN_Buffer_free(tbuf);
544 }
545
546 return 0;
547}
548
549
550
552{
553 TYPEMAKER2_VIRTUALFN_LIST *fns;
554
556
557 assert(fns);
558 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
559 GWEN_BUFFER *tbuf;
560 const char *s;
562
563 tbuf=GWEN_Buffer_new(0, 256, 0, 1);
564
565 GWEN_Buffer_AppendString(tbuf, "/* setters for virtual functions */\n");
566 vf=Typemaker2_VirtualFn_List_First(fns);
567 while (vf) {
568
571 GWEN_Buffer_AppendString(tbuf, "_");
572
574 if (!(s && *s)) {
575 GWEN_Buffer_free(tbuf);
576 return GWEN_ERROR_BAD_DATA;
577 }
578 while (*s)
579 GWEN_Buffer_AppendByte(tbuf, toupper(*(s++)));
580 GWEN_Buffer_AppendString(tbuf, "_FN ");
581
584 GWEN_Buffer_AppendString(tbuf, "_Set");
586 if (!(s && *s)) {
587 GWEN_Buffer_free(tbuf);
588 return GWEN_ERROR_BAD_DATA;
589 }
590 GWEN_Buffer_AppendByte(tbuf, toupper(*s));
591 GWEN_Buffer_AppendString(tbuf, s+1);
592 GWEN_Buffer_AppendString(tbuf, "Fn(");
593
596 /* created structs are always pointers */
597 GWEN_Buffer_AppendString(tbuf, " *p_struct, ");
598
601 GWEN_Buffer_AppendString(tbuf, "_");
603 if (!(s && *s)) {
604 GWEN_Buffer_free(tbuf);
605 return GWEN_ERROR_BAD_DATA;
606 }
607 while (*s)
608 GWEN_Buffer_AppendByte(tbuf, toupper(*(s++)));
609 GWEN_Buffer_AppendString(tbuf, "_FN fn){\n");
610
611 GWEN_Buffer_AppendString(tbuf, " ");
614 GWEN_Buffer_AppendString(tbuf, "_");
616 if (!(s && *s)) {
617 GWEN_Buffer_free(tbuf);
618 return GWEN_ERROR_BAD_DATA;
619 }
620 while (*s)
621 GWEN_Buffer_AppendByte(tbuf, toupper(*(s++)));
622 GWEN_Buffer_AppendString(tbuf, "_FN oldFn;\n\n");
623
624 GWEN_Buffer_AppendString(tbuf, " assert(p_struct);\n");
625 GWEN_Buffer_AppendString(tbuf, " oldFn=p_struct->");
627 if (!(s && *s)) {
628 GWEN_Buffer_free(tbuf);
629 return GWEN_ERROR_BAD_DATA;
630 }
632 GWEN_Buffer_AppendString(tbuf, "Fn;\n");
633
634 GWEN_Buffer_AppendString(tbuf, " p_struct->");
636 if (!(s && *s)) {
637 GWEN_Buffer_free(tbuf);
638 return GWEN_ERROR_BAD_DATA;
639 }
641 GWEN_Buffer_AppendString(tbuf, "Fn=fn;\n");
642 GWEN_Buffer_AppendString(tbuf, " return oldFn;\n");
643 GWEN_Buffer_AppendString(tbuf, "}\n");
644
646 GWEN_Buffer_Reset(tbuf);
647
648 vf=Typemaker2_VirtualFn_List_Next(vf);
649 }
650 GWEN_Buffer_free(tbuf);
651 }
652
653 return 0;
654}
655
656
657
659{
660 TYPEMAKER2_VIRTUALFN_LIST *fns;
662
665
666 assert(fns);
667 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
668 GWEN_BUFFER *tbuf;
669 const char *s;
671
672 tbuf=GWEN_Buffer_new(0, 256, 0, 1);
673
674 GWEN_Buffer_AppendString(tbuf, "/* getters for virtual functions */\n");
675 vf=Typemaker2_VirtualFn_List_First(fns);
676 while (vf) {
677 int access=Typemaker2_VirtualFn_GetAccess(vf);
678
680 if (s && *s) {
682 GWEN_Buffer_AppendString(tbuf, " ");
683 }
684
687 GWEN_Buffer_AppendString(tbuf, "_");
689 if (!(s && *s)) {
690 GWEN_Buffer_free(tbuf);
691 return GWEN_ERROR_BAD_DATA;
692 }
693 while (*s)
694 GWEN_Buffer_AppendByte(tbuf, toupper(*(s++)));
695 GWEN_Buffer_AppendString(tbuf, "_FN ");
696
699 GWEN_Buffer_AppendString(tbuf, "_Get");
701 if (!(s && *s)) {
702 GWEN_Buffer_free(tbuf);
703 return GWEN_ERROR_BAD_DATA;
704 }
705 GWEN_Buffer_AppendByte(tbuf, toupper(*s));
706 GWEN_Buffer_AppendString(tbuf, s+1);
707 GWEN_Buffer_AppendString(tbuf, "Fn(const ");
708
711 /* created structs are always pointers */
712 GWEN_Buffer_AppendString(tbuf, " *p_struct);\n");
713
715 GWEN_Buffer_Reset(tbuf);
716
717 vf=Typemaker2_VirtualFn_List_Next(vf);
718 }
719 GWEN_Buffer_free(tbuf);
720 }
721
722 return 0;
723}
724
725
726
728{
729 TYPEMAKER2_VIRTUALFN_LIST *fns;
730
732
733 assert(fns);
734 if (Typemaker2_VirtualFn_List_GetCount(fns)) {
735 GWEN_BUFFER *tbuf;
736 const char *s;
738
739 tbuf=GWEN_Buffer_new(0, 256, 0, 1);
740
741 GWEN_Buffer_AppendString(tbuf, "/* getters for virtual functions */\n");
742 vf=Typemaker2_VirtualFn_List_First(fns);
743 while (vf) {
744
747 GWEN_Buffer_AppendString(tbuf, "_");
748
750 if (!(s && *s)) {
751 GWEN_Buffer_free(tbuf);
752 return GWEN_ERROR_BAD_DATA;
753 }
754 while (*s)
755 GWEN_Buffer_AppendByte(tbuf, toupper(*(s++)));
756 GWEN_Buffer_AppendString(tbuf, "_FN ");
757
760 GWEN_Buffer_AppendString(tbuf, "_Get");
762 if (!(s && *s)) {
763 GWEN_Buffer_free(tbuf);
764 return GWEN_ERROR_BAD_DATA;
765 }
766 GWEN_Buffer_AppendByte(tbuf, toupper(*s));
767 GWEN_Buffer_AppendString(tbuf, s+1);
768 GWEN_Buffer_AppendString(tbuf, "Fn(const ");
769
772 /* created structs are always pointers */
773 GWEN_Buffer_AppendString(tbuf, " *p_struct){\n");
774
775 GWEN_Buffer_AppendString(tbuf, " assert(p_struct);\n");
776 GWEN_Buffer_AppendString(tbuf, " return p_struct->");
778 if (!(s && *s)) {
779 GWEN_Buffer_free(tbuf);
780 return GWEN_ERROR_BAD_DATA;
781 }
783 GWEN_Buffer_AppendString(tbuf, "Fn;\n");
784
785 GWEN_Buffer_AppendString(tbuf, "}\n");
786
788 GWEN_Buffer_Reset(tbuf);
789
790 vf=Typemaker2_VirtualFn_List_Next(vf);
791 }
792 }
793
794 return 0;
795}
796
797
798
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_Reset(GWEN_BUFFER *bf)
Definition buffer.c:653
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
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
Definition buffer.c:393
#define DBG_ERROR(dbg_logger, format,...)
Definition debug.h:97
#define GWEN_ERROR_BAD_DATA
Definition error.h:121
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition buffer.h:38
#define GWEN_LOGDOMAIN
Definition logger.h:35
int TM2C_BuildDefineVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty, const char *loc)
int TM2C_BuildProtoVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int TM2C_BuildProtoSetterVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int TM2C_BuildGetterVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int TM2C_BuildProtoGetterVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int TM2C_BuildSetterVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
int TM2C_BuildCodeVirtualFns(TYPEMAKER2_BUILDER *tb, TYPEMAKER2_TYPE *ty)
void Typemaker2_Builder_AddCode(TYPEMAKER2_BUILDER *tb, const char *s)
Definition tm_builder.c:204
void Typemaker2_Builder_AddPublicDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition tm_builder.c:172
void Typemaker2_Builder_AddLibraryDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition tm_builder.c:180
void Typemaker2_Builder_AddProtectedDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition tm_builder.c:188
void Typemaker2_Builder_AddDeclaration(TYPEMAKER2_BUILDER *tb, int access, const char *s)
Definition tm_builder.c:149
void Typemaker2_Builder_AddPrivateDeclaration(TYPEMAKER2_BUILDER *tb, const char *s)
Definition tm_builder.c:196
TYPEMAKER2_TYPEMANAGER * Typemaker2_Builder_GetTypeManager(const TYPEMAKER2_BUILDER *tb)
Definition tm_builder.c:133
struct TYPEMAKER2_BUILDER TYPEMAKER2_BUILDER
Definition tm_builder.h:26
const char * Typemaker2_Type_GetIdentifier(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:585
TYPEMAKER2_VIRTUALFN_LIST * Typemaker2_Type_GetVirtualFns(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:737
const char * Typemaker2_Type_GetPrefix(const TYPEMAKER2_TYPE *ty)
Definition tm_type.c:607
struct TYPEMAKER2_TYPE TYPEMAKER2_TYPE
Definition tm_type.h:21
#define TYPEMAKER2_FLAGS_CONST
Definition tm_type.h:33
@ TypeMaker2_Access_Private
Definition tm_type.h:89
@ TypeMaker2_Access_Library
Definition tm_type.h:88
@ TypeMaker2_Access_Protected
Definition tm_type.h:87
@ TypeMaker2_Access_Public
Definition tm_type.h:86
#define TYPEMAKER2_FLAGS_GWEN_CB
Definition tm_type.h:50
const char * Typemaker2_TypeManager_GetApiDeclaration(const TYPEMAKER2_TYPEMANAGER *tym)
struct TYPEMAKER2_TYPEMANAGER TYPEMAKER2_TYPEMANAGER
const char * Typemaker2_VirtualFn_GetName(const TYPEMAKER2_VIRTUALFN *vf)
const char * Typemaker2_VirtualFn_GetDescr(const TYPEMAKER2_VIRTUALFN *vf)
const char * Typemaker2_VirtualFn_GetDefaultReturnValue(const TYPEMAKER2_VIRTUALFN *vf)
const char * Typemaker2_VirtualFn_GetReturnTypeDescr(const TYPEMAKER2_VIRTUALFN *vf)
const char * Typemaker2_VirtualFn_GetLocation(const TYPEMAKER2_VIRTUALFN *vf)
const char * Typemaker2_VirtualFn_Param_GetDescr(const TYPEMAKER2_VIRTUALFN_PARAM *prm)
const char * Typemaker2_VirtualFn_Param_GetType(const TYPEMAKER2_VIRTUALFN_PARAM *prm)
const char * Typemaker2_VirtualFn_Param_GetName(const TYPEMAKER2_VIRTUALFN_PARAM *prm)
uint32_t Typemaker2_VirtualFn_GetFlags(const TYPEMAKER2_VIRTUALFN *vf)
int Typemaker2_VirtualFn_GetAccess(const TYPEMAKER2_VIRTUALFN *vf)
TYPEMAKER2_VIRTUALFN_PARAM_LIST * Typemaker2_VirtualFn_GetParamTypeList(const TYPEMAKER2_VIRTUALFN *vf)
const char * Typemaker2_VirtualFn_GetReturnType(const TYPEMAKER2_VIRTUALFN *vf)
struct TYPEMAKER2_VIRTUALFN TYPEMAKER2_VIRTUALFN
struct TYPEMAKER2_VIRTUALFN_PARAM TYPEMAKER2_VIRTUALFN_PARAM