compiler/libec: Casts where function pointers are expected
[sdk] / compiler / bootstrap / libec / bootstrap / output.c
1 /* Code generated from eC source file: output.ec */
2 #if defined(_WIN32)
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
6 #else
7 #define __runtimePlatform 2
8 #endif
9 #if defined(__GNUC__)
10 typedef long long int64;
11 typedef unsigned long long uint64;
12 #ifndef _WIN32
13 #define __declspec(x)
14 #endif
15 #elif defined(__TINYC__)
16 #include <stdarg.h>
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
20 #ifdef _WIN32
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
24 #else
25 #define __declspec(x)
26 #endif
27 typedef long long int64;
28 typedef unsigned long long uint64;
29 #else
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
32 #endif
33 #ifdef __BIG_ENDIAN__
34 #define __ENDIAN_PAD(x) (8 - (x))
35 #else
36 #define __ENDIAN_PAD(x) 0
37 #endif
38 #include <stdint.h>
39 #include <sys/types.h>
40 struct __ecereNameSpace__ecere__com__Instance;
41
42 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
43
44 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
45
46 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
47
48 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
49
50 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
51
52 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
53
54 struct __ecereNameSpace__ecere__sys__BTNode;
55
56 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
57
58 struct __ecereNameSpace__ecere__sys__BinaryTree
59 {
60 struct __ecereNameSpace__ecere__sys__BTNode * root;
61 int count;
62 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
63 void (*  FreeKey)(void *  key);
64 } __attribute__ ((gcc_struct));
65
66 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
67
68 struct __ecereNameSpace__ecere__sys__OldList
69 {
70 void *  first;
71 void *  last;
72 int count;
73 unsigned int offset;
74 unsigned int circ;
75 } __attribute__ ((gcc_struct));
76
77 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
78
79 struct __ecereNameSpace__ecere__com__Method
80 {
81 const char *  name;
82 struct __ecereNameSpace__ecere__com__Method * parent;
83 struct __ecereNameSpace__ecere__com__Method * left;
84 struct __ecereNameSpace__ecere__com__Method * right;
85 int depth;
86 int (*  function)();
87 int vid;
88 int type;
89 struct __ecereNameSpace__ecere__com__Class * _class;
90 void *  symbol;
91 const char *  dataTypeString;
92 struct Type * dataType;
93 int memberAccess;
94 } __attribute__ ((gcc_struct));
95
96 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
97
98 struct __ecereNameSpace__ecere__com__Property
99 {
100 struct __ecereNameSpace__ecere__com__Property * prev;
101 struct __ecereNameSpace__ecere__com__Property * next;
102 const char *  name;
103 unsigned int isProperty;
104 int memberAccess;
105 int id;
106 struct __ecereNameSpace__ecere__com__Class * _class;
107 const char *  dataTypeString;
108 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
109 struct Type * dataType;
110 void (*  Set)(void * , int);
111 int (*  Get)(void * );
112 unsigned int (*  IsSet)(void * );
113 void *  data;
114 void *  symbol;
115 int vid;
116 unsigned int conversion;
117 unsigned int watcherOffset;
118 const char *  category;
119 unsigned int compiled;
120 unsigned int selfWatchable;
121 unsigned int isWatchable;
122 } __attribute__ ((gcc_struct));
123
124 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
125
126 struct CodePosition
127 {
128 int line;
129 int charPos;
130 int pos;
131 int included;
132 } __attribute__ ((gcc_struct));
133
134 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
135
136 struct Location
137 {
138 struct CodePosition start;
139 struct CodePosition end;
140 } __attribute__ ((gcc_struct));
141
142 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
143
144 struct Attrib
145 {
146 struct Location loc;
147 int type;
148 struct __ecereNameSpace__ecere__sys__OldList *  attribs;
149 } __attribute__ ((gcc_struct));
150
151 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
152
153 struct ExtDecl
154 {
155 struct Location loc;
156 int type;
157 union
158 {
159 char * s;
160 struct Attrib * attr;
161 } __attribute__ ((gcc_struct)) __anon1;
162 } __attribute__ ((gcc_struct));
163
164 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
165
166 struct ClassDefinition
167 {
168 struct ClassDefinition * prev;
169 struct ClassDefinition * next;
170 struct Location loc;
171 struct Specifier * _class;
172 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
173 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
174 struct Symbol * symbol;
175 struct Location blockStart;
176 struct Location nameLoc;
177 int endid;
178 int declMode;
179 unsigned int deleteWatchable;
180 } __attribute__ ((gcc_struct));
181
182 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
183
184 struct Context;
185
186 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
187
188 struct Instantiation
189 {
190 struct Instantiation * prev;
191 struct Instantiation * next;
192 struct Location loc;
193 struct Specifier * _class;
194 struct Expression * exp;
195 struct __ecereNameSpace__ecere__sys__OldList *  members;
196 struct Symbol * symbol;
197 unsigned int fullSet;
198 unsigned int isConstant;
199 unsigned char *  data;
200 struct Location nameLoc;
201 struct Location insideLoc;
202 unsigned int built;
203 } __attribute__ ((gcc_struct));
204
205 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
206
207 struct Declaration
208 {
209 struct Declaration * prev;
210 struct Declaration * next;
211 struct Location loc;
212 int type;
213 union
214 {
215 struct
216 {
217 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
218 struct __ecereNameSpace__ecere__sys__OldList *  declarators;
219 } __attribute__ ((gcc_struct)) __anon1;
220 struct Instantiation * inst;
221 struct
222 {
223 struct Identifier * id;
224 struct Expression * exp;
225 } __attribute__ ((gcc_struct)) __anon2;
226 } __attribute__ ((gcc_struct)) __anon1;
227 struct Specifier * extStorage;
228 struct Symbol * symbol;
229 int declMode;
230 } __attribute__ ((gcc_struct));
231
232 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
233
234 struct Statement
235 {
236 struct Statement * prev;
237 struct Statement * next;
238 struct Location loc;
239 int type;
240 union
241 {
242 struct __ecereNameSpace__ecere__sys__OldList *  expressions;
243 struct
244 {
245 struct Identifier * id;
246 struct Statement * stmt;
247 } __attribute__ ((gcc_struct)) labeled;
248 struct
249 {
250 struct Expression * exp;
251 struct Statement * stmt;
252 } __attribute__ ((gcc_struct)) caseStmt;
253 struct
254 {
255 struct __ecereNameSpace__ecere__sys__OldList * declarations;
256 struct __ecereNameSpace__ecere__sys__OldList * statements;
257 struct Context * context;
258 unsigned int isSwitch;
259 } __attribute__ ((gcc_struct)) compound;
260 struct
261 {
262 struct __ecereNameSpace__ecere__sys__OldList * exp;
263 struct Statement * stmt;
264 struct Statement * elseStmt;
265 } __attribute__ ((gcc_struct)) ifStmt;
266 struct
267 {
268 struct __ecereNameSpace__ecere__sys__OldList * exp;
269 struct Statement * stmt;
270 } __attribute__ ((gcc_struct)) switchStmt;
271 struct
272 {
273 struct __ecereNameSpace__ecere__sys__OldList * exp;
274 struct Statement * stmt;
275 } __attribute__ ((gcc_struct)) whileStmt;
276 struct
277 {
278 struct __ecereNameSpace__ecere__sys__OldList * exp;
279 struct Statement * stmt;
280 } __attribute__ ((gcc_struct)) doWhile;
281 struct
282 {
283 struct Statement * init;
284 struct Statement * check;
285 struct __ecereNameSpace__ecere__sys__OldList * increment;
286 struct Statement * stmt;
287 } __attribute__ ((gcc_struct)) forStmt;
288 struct
289 {
290 struct Identifier * id;
291 } __attribute__ ((gcc_struct)) gotoStmt;
292 struct
293 {
294 struct Specifier * spec;
295 char * statements;
296 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
297 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
298 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
299 } __attribute__ ((gcc_struct)) asmStmt;
300 struct
301 {
302 struct Expression * watcher;
303 struct Expression * object;
304 struct __ecereNameSpace__ecere__sys__OldList * watches;
305 } __attribute__ ((gcc_struct)) _watch;
306 struct
307 {
308 struct Identifier * id;
309 struct __ecereNameSpace__ecere__sys__OldList * exp;
310 struct __ecereNameSpace__ecere__sys__OldList * filter;
311 struct Statement * stmt;
312 } __attribute__ ((gcc_struct)) forEachStmt;
313 struct Declaration * decl;
314 } __attribute__ ((gcc_struct)) __anon1;
315 } __attribute__ ((gcc_struct));
316
317 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
318
319 struct TypeName
320 {
321 struct TypeName * prev;
322 struct TypeName * next;
323 struct Location loc;
324 struct __ecereNameSpace__ecere__sys__OldList *  qualifiers;
325 struct Declarator * declarator;
326 int classObjectType;
327 struct Expression * bitCount;
328 } __attribute__ ((gcc_struct));
329
330 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
331
332 struct Initializer
333 {
334 struct Initializer * prev;
335 struct Initializer * next;
336 struct Location loc;
337 int type;
338 union
339 {
340 struct Expression * exp;
341 struct __ecereNameSpace__ecere__sys__OldList *  list;
342 } __attribute__ ((gcc_struct)) __anon1;
343 unsigned int isConstant;
344 struct Identifier * id;
345 } __attribute__ ((gcc_struct));
346
347 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
348
349 struct __ecereNameSpace__ecere__com__DataValue
350 {
351 union
352 {
353 char c;
354 unsigned char uc;
355 short s;
356 unsigned short us;
357 int i;
358 unsigned int ui;
359 void *  p;
360 float f;
361 double d;
362 long long i64;
363 uint64 ui64;
364 } __attribute__ ((gcc_struct)) __anon1;
365 } __attribute__ ((gcc_struct));
366
367 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
368
369 struct Expression
370 {
371 struct Expression * prev;
372 struct Expression * next;
373 struct Location loc;
374 int type;
375 union
376 {
377 struct
378 {
379 char *  constant;
380 struct Identifier * identifier;
381 } __attribute__ ((gcc_struct)) __anon1;
382 struct Statement * compound;
383 struct Instantiation * instance;
384 struct
385 {
386 char *  string;
387 unsigned int intlString;
388 } __attribute__ ((gcc_struct)) __anon2;
389 struct __ecereNameSpace__ecere__sys__OldList *  list;
390 struct
391 {
392 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
393 struct Declarator * decl;
394 } __attribute__ ((gcc_struct)) _classExp;
395 struct
396 {
397 struct Identifier * id;
398 } __attribute__ ((gcc_struct)) classData;
399 struct
400 {
401 struct Expression * exp;
402 struct __ecereNameSpace__ecere__sys__OldList * arguments;
403 struct Location argLoc;
404 } __attribute__ ((gcc_struct)) call;
405 struct
406 {
407 struct Expression * exp;
408 struct __ecereNameSpace__ecere__sys__OldList * index;
409 } __attribute__ ((gcc_struct)) index;
410 struct
411 {
412 struct Expression * exp;
413 struct Identifier * member;
414 int memberType;
415 unsigned int thisPtr;
416 } __attribute__ ((gcc_struct)) member;
417 struct
418 {
419 int op;
420 struct Expression * exp1;
421 struct Expression * exp2;
422 } __attribute__ ((gcc_struct)) op;
423 struct TypeName * typeName;
424 struct Specifier * _class;
425 struct
426 {
427 struct TypeName * typeName;
428 struct Expression * exp;
429 } __attribute__ ((gcc_struct)) cast;
430 struct
431 {
432 struct Expression * cond;
433 struct __ecereNameSpace__ecere__sys__OldList * exp;
434 struct Expression * elseExp;
435 } __attribute__ ((gcc_struct)) cond;
436 struct
437 {
438 struct TypeName * typeName;
439 struct Expression * size;
440 } __attribute__ ((gcc_struct)) _new;
441 struct
442 {
443 struct TypeName * typeName;
444 struct Expression * size;
445 struct Expression * exp;
446 } __attribute__ ((gcc_struct)) _renew;
447 struct
448 {
449 char * table;
450 struct Identifier * id;
451 } __attribute__ ((gcc_struct)) db;
452 struct
453 {
454 struct Expression * ds;
455 struct Expression * name;
456 } __attribute__ ((gcc_struct)) dbopen;
457 struct
458 {
459 struct TypeName * typeName;
460 struct Initializer * initializer;
461 } __attribute__ ((gcc_struct)) initializer;
462 struct
463 {
464 struct Expression * exp;
465 struct TypeName * typeName;
466 } __attribute__ ((gcc_struct)) vaArg;
467 } __attribute__ ((gcc_struct)) __anon1;
468 unsigned int debugValue;
469 struct __ecereNameSpace__ecere__com__DataValue val;
470 uint64 address;
471 unsigned int hasAddress;
472 struct Type * expType;
473 struct Type * destType;
474 unsigned int usage;
475 int tempCount;
476 unsigned int byReference;
477 unsigned int isConstant;
478 unsigned int addedThis;
479 unsigned int needCast;
480 unsigned int thisPtr;
481 unsigned int opDestType;
482 unsigned int needTemplateCast;
483 } __attribute__ ((gcc_struct));
484
485 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
486
487 struct TemplateDatatype
488 {
489 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
490 struct Declarator * decl;
491 } __attribute__ ((gcc_struct));
492
493 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
494
495 struct TemplateArgument;
496
497 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
498
499 struct TemplateParameter
500 {
501 struct TemplateParameter * prev;
502 struct TemplateParameter * next;
503 struct Location loc;
504 int type;
505 struct Identifier * identifier;
506 union
507 {
508 struct TemplateDatatype * dataType;
509 int memberType;
510 } __attribute__ ((gcc_struct)) __anon1;
511 struct TemplateArgument * defaultArgument;
512 const char *  dataTypeString;
513 struct Type * baseType;
514 } __attribute__ ((gcc_struct));
515
516 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
517
518 struct Specifier
519 {
520 struct Specifier * prev;
521 struct Specifier * next;
522 struct Location loc;
523 int type;
524 union
525 {
526 int specifier;
527 struct
528 {
529 struct ExtDecl * extDecl;
530 char *  name;
531 struct Symbol * symbol;
532 struct __ecereNameSpace__ecere__sys__OldList *  templateArgs;
533 } __attribute__ ((gcc_struct)) __anon1;
534 struct
535 {
536 struct Identifier * id;
537 struct __ecereNameSpace__ecere__sys__OldList *  list;
538 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
539 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
540 unsigned int addNameSpace;
541 struct Context * ctx;
542 struct ExtDecl * extDeclStruct;
543 } __attribute__ ((gcc_struct)) __anon2;
544 struct Expression * expression;
545 struct Specifier * _class;
546 struct TemplateParameter * templateParameter;
547 } __attribute__ ((gcc_struct)) __anon1;
548 } __attribute__ ((gcc_struct));
549
550 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
551
552 struct Identifier
553 {
554 struct Identifier * prev;
555 struct Identifier * next;
556 struct Location loc;
557 struct Symbol * classSym;
558 struct Specifier * _class;
559 char *  string;
560 struct Identifier * badID;
561 } __attribute__ ((gcc_struct));
562
563 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
564
565 struct Pointer
566 {
567 struct Pointer * prev;
568 struct Pointer * next;
569 struct Location loc;
570 struct __ecereNameSpace__ecere__sys__OldList *  qualifiers;
571 struct Pointer * pointer;
572 } __attribute__ ((gcc_struct));
573
574 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
575
576 struct Declarator
577 {
578 struct Declarator * prev;
579 struct Declarator * next;
580 struct Location loc;
581 int type;
582 struct Symbol * symbol;
583 struct Declarator * declarator;
584 union
585 {
586 struct Identifier * identifier;
587 struct
588 {
589 struct Expression * exp;
590 struct Expression * posExp;
591 struct Attrib * attrib;
592 } __attribute__ ((gcc_struct)) structDecl;
593 struct
594 {
595 struct Expression * exp;
596 struct Specifier * enumClass;
597 } __attribute__ ((gcc_struct)) array;
598 struct
599 {
600 struct __ecereNameSpace__ecere__sys__OldList * parameters;
601 } __attribute__ ((gcc_struct)) function;
602 struct
603 {
604 struct Pointer * pointer;
605 } __attribute__ ((gcc_struct)) pointer;
606 struct
607 {
608 struct ExtDecl * extended;
609 } __attribute__ ((gcc_struct)) extended;
610 } __attribute__ ((gcc_struct)) __anon1;
611 } __attribute__ ((gcc_struct));
612
613 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
614
615 struct FunctionDefinition
616 {
617 struct FunctionDefinition * prev;
618 struct FunctionDefinition * next;
619 struct Location loc;
620 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
621 struct Declarator * declarator;
622 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
623 struct Statement * body;
624 struct __ecereNameSpace__ecere__com__Class * _class;
625 struct __ecereNameSpace__ecere__sys__OldList attached;
626 int declMode;
627 struct Type * type;
628 struct Symbol * propSet;
629 int tempCount;
630 unsigned int propertyNoThis;
631 } __attribute__ ((gcc_struct));
632
633 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
634
635 struct DBTableDef;
636
637 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
638
639 struct External
640 {
641 struct External * prev;
642 struct External * next;
643 struct Location loc;
644 int type;
645 struct Symbol * symbol;
646 union
647 {
648 struct FunctionDefinition * function;
649 struct ClassDefinition * _class;
650 struct Declaration * declaration;
651 char *  importString;
652 struct Identifier * id;
653 struct DBTableDef * table;
654 } __attribute__ ((gcc_struct)) __anon1;
655 int importType;
656 } __attribute__ ((gcc_struct));
657
658 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
659
660 struct ModuleImport;
661
662 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
663
664 struct ClassImport;
665
666 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
667
668 struct Symbol
669 {
670 char *  string;
671 struct Symbol * parent;
672 struct Symbol * left;
673 struct Symbol * right;
674 int depth;
675 struct Type * type;
676 union
677 {
678 struct __ecereNameSpace__ecere__com__Method * method;
679 struct __ecereNameSpace__ecere__com__Property * _property;
680 struct __ecereNameSpace__ecere__com__Class * registered;
681 } __attribute__ ((gcc_struct)) __anon1;
682 int id;
683 int idCode;
684 union
685 {
686 struct
687 {
688 struct External * pointerExternal;
689 struct External * structExternal;
690 } __attribute__ ((gcc_struct)) __anon1;
691 struct
692 {
693 struct External * externalGet;
694 struct External * externalSet;
695 struct External * externalPtr;
696 struct External * externalIsSet;
697 } __attribute__ ((gcc_struct)) __anon2;
698 struct
699 {
700 struct External * methodExternal;
701 struct External * methodCodeExternal;
702 } __attribute__ ((gcc_struct)) __anon3;
703 } __attribute__ ((gcc_struct)) __anon2;
704 unsigned int imported;
705 unsigned int declaredStructSym;
706 struct __ecereNameSpace__ecere__com__Class * _class;
707 unsigned int declaredStruct;
708 unsigned int needConstructor;
709 unsigned int needDestructor;
710 char *  constructorName;
711 char *  structName;
712 char *  className;
713 char *  destructorName;
714 struct ModuleImport * module;
715 struct ClassImport * _import;
716 struct Location nameLoc;
717 unsigned int isParam;
718 unsigned int isRemote;
719 unsigned int isStruct;
720 unsigned int fireWatchersDone;
721 int declaring;
722 unsigned int classData;
723 unsigned int isStatic;
724 char *  shortName;
725 struct __ecereNameSpace__ecere__sys__OldList *  templateParams;
726 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
727 struct Context * ctx;
728 int isIterator;
729 struct Expression * propCategory;
730 } __attribute__ ((gcc_struct));
731
732 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
733
734 struct Type
735 {
736 struct Type * prev;
737 struct Type * next;
738 int refCount;
739 union
740 {
741 struct Symbol * _class;
742 struct
743 {
744 struct __ecereNameSpace__ecere__sys__OldList members;
745 char *  enumName;
746 } __attribute__ ((gcc_struct)) __anon1;
747 struct
748 {
749 struct Type * returnType;
750 struct __ecereNameSpace__ecere__sys__OldList params;
751 struct Symbol * thisClass;
752 unsigned int staticMethod;
753 struct TemplateParameter * thisClassTemplate;
754 } __attribute__ ((gcc_struct)) __anon2;
755 struct
756 {
757 struct __ecereNameSpace__ecere__com__Method * method;
758 struct __ecereNameSpace__ecere__com__Class * methodClass;
759 struct __ecereNameSpace__ecere__com__Class * usedClass;
760 } __attribute__ ((gcc_struct)) __anon3;
761 struct
762 {
763 struct Type * arrayType;
764 int arraySize;
765 struct Expression * arraySizeExp;
766 unsigned int freeExp;
767 struct Symbol * enumClass;
768 } __attribute__ ((gcc_struct)) __anon4;
769 struct Type * type;
770 struct TemplateParameter * templateParameter;
771 } __attribute__ ((gcc_struct)) __anon1;
772 int kind;
773 unsigned int size;
774 char *  name;
775 char *  typeName;
776 int classObjectType;
777 int alignment;
778 unsigned int offset;
779 int bitFieldCount;
780 int count;
781 unsigned int isSigned : 1;
782 unsigned int constant : 1;
783 unsigned int truth : 1;
784 unsigned int byReference : 1;
785 unsigned int extraParam : 1;
786 unsigned int directClassAccess : 1;
787 unsigned int computing : 1;
788 unsigned int keepCast : 1;
789 unsigned int passAsTemplate : 1;
790 unsigned int dllExport : 1;
791 unsigned int attrStdcall : 1;
792 unsigned int declaredWithStruct : 1;
793 unsigned int typedByReference : 1;
794 unsigned int casted : 1;
795 } __attribute__ ((gcc_struct));
796
797 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
798
799 struct __ecereNameSpace__ecere__com__Class
800 {
801 struct __ecereNameSpace__ecere__com__Class * prev;
802 struct __ecereNameSpace__ecere__com__Class * next;
803 const char *  name;
804 int offset;
805 int structSize;
806 int (* *  _vTbl)();
807 int vTblSize;
808 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
809 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
810 int offsetClass;
811 int sizeClass;
812 struct __ecereNameSpace__ecere__com__Class * base;
813 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
814 struct __ecereNameSpace__ecere__sys__BinaryTree members;
815 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
816 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
817 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
818 struct __ecereNameSpace__ecere__sys__OldList derivatives;
819 int memberID;
820 int startMemberID;
821 int type;
822 struct __ecereNameSpace__ecere__com__Instance * module;
823 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
824 const char *  dataTypeString;
825 struct Type * dataType;
826 int typeSize;
827 int defaultAlignment;
828 void (*  Initialize)();
829 int memberOffset;
830 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
831 const char *  designerClass;
832 unsigned int noExpansion;
833 const char *  defaultProperty;
834 unsigned int comRedefinition;
835 int count;
836 int isRemote;
837 unsigned int internalDecl;
838 void *  data;
839 unsigned int computeSize;
840 int structAlignment;
841 int destructionWatchOffset;
842 unsigned int fixed;
843 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
844 int inheritanceAccess;
845 const char *  fullName;
846 void *  symbol;
847 struct __ecereNameSpace__ecere__sys__OldList conversions;
848 struct __ecereNameSpace__ecere__sys__OldList templateParams;
849 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
850 struct __ecereNameSpace__ecere__com__Class * templateClass;
851 struct __ecereNameSpace__ecere__sys__OldList templatized;
852 int numParams;
853 unsigned int isInstanceClass;
854 unsigned int byValueSystemClass;
855 } __attribute__ ((gcc_struct));
856
857 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
858
859 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
860
861 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
862
863 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
864
865 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
866
867 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
868
869 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
870
871 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
872
873 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
874
875 struct __ecereNameSpace__ecere__com__Instance
876 {
877 int (* *  _vTbl)();
878 struct __ecereNameSpace__ecere__com__Class * _class;
879 int _refCount;
880 } __attribute__ ((gcc_struct));
881
882 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
883
884 struct __ecereNameSpace__ecere__com__DataMember
885 {
886 struct __ecereNameSpace__ecere__com__DataMember * prev;
887 struct __ecereNameSpace__ecere__com__DataMember * next;
888 const char *  name;
889 unsigned int isProperty;
890 int memberAccess;
891 int id;
892 struct __ecereNameSpace__ecere__com__Class * _class;
893 const char *  dataTypeString;
894 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
895 struct Type * dataType;
896 int type;
897 int offset;
898 int memberID;
899 struct __ecereNameSpace__ecere__sys__OldList members;
900 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
901 int memberOffset;
902 int structAlignment;
903 } __attribute__ ((gcc_struct));
904
905 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
906
907 struct __ecereNameSpace__ecere__com__SerialBuffer
908 {
909 unsigned char *  _buffer;
910 unsigned int count;
911 unsigned int _size;
912 unsigned int pos;
913 } __attribute__ ((gcc_struct));
914
915 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
916
917 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
918 {
919 union
920 {
921 struct
922 {
923 const char *  dataTypeString;
924 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
925 } __attribute__ ((gcc_struct)) __anon1;
926 struct __ecereNameSpace__ecere__com__DataValue expression;
927 struct
928 {
929 const char *  memberString;
930 union
931 {
932 struct __ecereNameSpace__ecere__com__DataMember * member;
933 struct __ecereNameSpace__ecere__com__Property * prop;
934 struct __ecereNameSpace__ecere__com__Method * method;
935 } __attribute__ ((gcc_struct)) __anon1;
936 } __attribute__ ((gcc_struct)) __anon2;
937 } __attribute__ ((gcc_struct)) __anon1;
938 } __attribute__ ((gcc_struct));
939
940 enum yytokentype
941 {
942 IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
943 };
944
945 typedef union YYSTYPE
946 {
947 int specifierType;
948 int i;
949 int declMode;
950 struct Identifier * id;
951 struct Expression * exp;
952 struct Specifier * specifier;
953 struct __ecereNameSpace__ecere__sys__OldList * list;
954 struct Enumerator * enumerator;
955 struct Declarator * declarator;
956 struct Pointer * pointer;
957 struct Initializer * initializer;
958 struct InitDeclarator * initDeclarator;
959 struct TypeName * typeName;
960 struct Declaration * declaration;
961 struct Statement * stmt;
962 struct FunctionDefinition * function;
963 struct External * external;
964 struct Context * context;
965 struct AsmField * asmField;
966 struct Attrib * attrib;
967 struct ExtDecl * extDecl;
968 struct Attribute * attribute;
969 struct Instantiation * instance;
970 struct MembersInit * membersInit;
971 struct MemberInit * memberInit;
972 struct ClassFunction * classFunction;
973 struct ClassDefinition * _class;
974 struct ClassDef * classDef;
975 struct PropertyDef * prop;
976 char * string;
977 struct Symbol * symbol;
978 struct PropertyWatch * propertyWatch;
979 struct TemplateParameter * templateParameter;
980 struct TemplateArgument * templateArgument;
981 struct TemplateDatatype * templateDatatype;
982 struct DBTableEntry * dbtableEntry;
983 struct DBIndexItem * dbindexItem;
984 struct DBTableDef * dbtableDef;
985 } __attribute__ ((gcc_struct)) YYSTYPE;
986
987 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
988
989 struct Enumerator
990 {
991 struct Enumerator * prev;
992 struct Enumerator * next;
993 struct Location loc;
994 struct Identifier * id;
995 struct Expression * exp;
996 } __attribute__ ((gcc_struct));
997
998 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
999
1000 struct InitDeclarator
1001 {
1002 struct InitDeclarator * prev;
1003 struct InitDeclarator * next;
1004 struct Location loc;
1005 struct Declarator * declarator;
1006 struct Initializer * initializer;
1007 } __attribute__ ((gcc_struct));
1008
1009 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
1010
1011 struct AsmField
1012 {
1013 struct AsmField * prev;
1014 struct AsmField * next;
1015 struct Location loc;
1016 char *  command;
1017 struct Expression * expression;
1018 struct Identifier * symbolic;
1019 } __attribute__ ((gcc_struct));
1020
1021 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
1022
1023 struct Attribute
1024 {
1025 struct Attribute * prev;
1026 struct Attribute * next;
1027 struct Location loc;
1028 char * attr;
1029 struct Expression * exp;
1030 } __attribute__ ((gcc_struct));
1031
1032 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
1033
1034 struct ClassFunction
1035 {
1036 struct ClassFunction * prev;
1037 struct ClassFunction * next;
1038 struct Location loc;
1039 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1040 struct Declarator * declarator;
1041 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
1042 struct Statement * body;
1043 struct __ecereNameSpace__ecere__com__Class * _class;
1044 struct __ecereNameSpace__ecere__sys__OldList attached;
1045 int declMode;
1046 struct Type * type;
1047 struct Symbol * propSet;
1048 unsigned int isVirtual;
1049 unsigned int isConstructor;
1050 unsigned int isDestructor;
1051 unsigned int dontMangle;
1052 int id;
1053 int idCode;
1054 } __attribute__ ((gcc_struct));
1055
1056 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
1057
1058 struct MembersInit
1059 {
1060 struct MembersInit * prev;
1061 struct MembersInit * next;
1062 struct Location loc;
1063 int type;
1064 union
1065 {
1066 struct __ecereNameSpace__ecere__sys__OldList *  dataMembers;
1067 struct ClassFunction * function;
1068 } __attribute__ ((gcc_struct)) __anon1;
1069 } __attribute__ ((gcc_struct));
1070
1071 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
1072
1073 struct MemberInit
1074 {
1075 struct MemberInit * prev;
1076 struct MemberInit * next;
1077 struct Location loc;
1078 struct Location realLoc;
1079 struct __ecereNameSpace__ecere__sys__OldList *  identifiers;
1080 struct Initializer * initializer;
1081 unsigned int used;
1082 unsigned int variable;
1083 unsigned int takeOutExp;
1084 } __attribute__ ((gcc_struct));
1085
1086 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1087
1088 struct PropertyDef;
1089
1090 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1091
1092 struct PropertyWatch;
1093
1094 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1095
1096 struct ClassDef
1097 {
1098 struct ClassDef * prev;
1099 struct ClassDef * next;
1100 struct Location loc;
1101 int type;
1102 union
1103 {
1104 struct Declaration * decl;
1105 struct ClassFunction * function;
1106 struct __ecereNameSpace__ecere__sys__OldList *  defProperties;
1107 struct PropertyDef * propertyDef;
1108 struct PropertyWatch * propertyWatch;
1109 char *  designer;
1110 struct Identifier * defaultProperty;
1111 struct
1112 {
1113 struct Identifier * id;
1114 struct Initializer * initializer;
1115 } __attribute__ ((gcc_struct)) __anon1;
1116 } __attribute__ ((gcc_struct)) __anon1;
1117 int memberAccess;
1118 void *  object;
1119 } __attribute__ ((gcc_struct));
1120
1121 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
1122
1123 struct DBTableEntry;
1124
1125 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
1126
1127 struct DBIndexItem;
1128
1129 extern YYSTYPE yylval;
1130
1131 extern struct Location yylloc;
1132
1133 int outputLine;
1134
1135 unsigned int memoryGuard = 0;
1136
1137 void SetMemoryGuard(unsigned int b)
1138 {
1139 memoryGuard = b;
1140 }
1141
1142 unsigned int GetMemoryGuard()
1143 {
1144 return memoryGuard;
1145 }
1146
1147 extern int strcmp(const char * , const char * );
1148
1149 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
1150
1151 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1152
1153 static void OutputIdentifier(struct Identifier * id, struct __ecereNameSpace__ecere__com__Instance * f)
1154 {
1155 if(id)
1156 {
1157 if(id->_class)
1158 {
1159 if(id->_class->type == 8)
1160 {
1161 if(id->_class->__anon1.templateParameter && id->_class->__anon1.templateParameter->identifier && id->_class->__anon1.templateParameter->identifier->string)
1162 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1163 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1164
1165 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1166 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->__anon1.templateParameter->identifier->string);
1167 }
1168 else
1169 {
1170 if(id->_class->__anon1.__anon1.name)
1171 {
1172 if(!strcmp(id->_class->__anon1.__anon1.name, "class"))
1173 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1174 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1175
1176 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1177 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
1178 else
1179 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1180 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1181
1182 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1183 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->__anon1.__anon1.name);
1184 }
1185 }
1186 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1187 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1188
1189 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1190 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "::");
1191 }
1192 }
1193 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1194 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1195
1196 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1197 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (id && id->string) ? id->string : "(null identifier)");
1198 }
1199
1200 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
1201
1202 static void OutputOperator(int op, struct __ecereNameSpace__ecere__com__Instance * f)
1203 {
1204 switch(op)
1205 {
1206 case INC_OP:
1207 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1208 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1209
1210 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1211 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "++");
1212 break;
1213 case DEC_OP:
1214 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1215 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1216
1217 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1218 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "--");
1219 break;
1220 case SIZEOF:
1221 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1222 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1223
1224 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1225 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof ");
1226 break;
1227 case LEFT_OP:
1228 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1229 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1230
1231 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1232 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<");
1233 break;
1234 case RIGHT_OP:
1235 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1236 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1237
1238 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1239 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>");
1240 break;
1241 case LE_OP:
1242 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1243 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1244
1245 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1246 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<=");
1247 break;
1248 case GE_OP:
1249 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1250 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1251
1252 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1253 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">=");
1254 break;
1255 case EQ_OP:
1256 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1257 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1258
1259 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1260 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "==");
1261 break;
1262 case NE_OP:
1263 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1264 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1265
1266 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1267 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "!=");
1268 break;
1269 case AND_OP:
1270 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1271 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1272
1273 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1274 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&&");
1275 break;
1276 case OR_OP:
1277 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1278 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1279
1280 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1281 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "||");
1282 break;
1283 case MUL_ASSIGN:
1284 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1285 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1286
1287 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1288 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*=");
1289 break;
1290 case DIV_ASSIGN:
1291 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1292 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1293
1294 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1295 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "/=");
1296 break;
1297 case MOD_ASSIGN:
1298 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1299 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1300
1301 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1302 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "%=");
1303 break;
1304 case ADD_ASSIGN:
1305 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1306 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1307
1308 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1309 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "+=");
1310 break;
1311 case SUB_ASSIGN:
1312 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1313 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1314
1315 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1316 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "-=");
1317 break;
1318 case LEFT_ASSIGN:
1319 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1320 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1321
1322 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1323 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<=");
1324 break;
1325 case RIGHT_ASSIGN:
1326 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1327 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1328
1329 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1330 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>=");
1331 break;
1332 case AND_ASSIGN:
1333 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1334 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1335
1336 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1337 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&=");
1338 break;
1339 case XOR_ASSIGN:
1340 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1341 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1342
1343 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1344 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "^=");
1345 break;
1346 case OR_ASSIGN:
1347 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1348 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1349
1350 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1351 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "|=");
1352 break;
1353 case '&':
1354 case '*':
1355 case '+':
1356 case '-':
1357 case '~':
1358 case '!':
1359 case '/':
1360 case '%':
1361 case '<':
1362 case '>':
1363 case '|':
1364 case '^':
1365 case '=':
1366 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))__extension__ ({
1367 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1368
1369 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1370 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc])(f, (char)op);
1371 break;
1372 case DELETE:
1373 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1374 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1375
1376 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1377 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "delete ");
1378 break;
1379 }
1380 }
1381
1382 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1383
1384 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1385
1386 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
1387 {
1388 if(type->qualifiers)
1389 {
1390 struct Specifier * spec;
1391
1392 for(spec = (*type->qualifiers).first; spec; spec = spec->next)
1393 {
1394 OutputSpecifier(spec, f, typeName);
1395 if(spec->next)
1396 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1397 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1398
1399 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1400 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1401 }
1402 }
1403 if(type->declarator)
1404 {
1405 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1406 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1407
1408 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1409 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1410 OutputDeclarator(type->declarator, f);
1411 }
1412 if(!type->qualifiers && !type->declarator)
1413 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1414 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1415
1416 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1417 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "...");
1418 }
1419
1420 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f);
1421
1422 extern unsigned int inCompiler;
1423
1424 extern unsigned int outputLineNumbers;
1425
1426 static void GetSourceName(char *  name, const char *  src);
1427
1428 extern char *  GetIncludeFileFromID(int id);
1429
1430 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f);
1431
1432 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f);
1433
1434 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, const char *  format, ...);
1435
1436 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f)
1437 {
1438 switch(exp->type)
1439 {
1440 case 24:
1441 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1442 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1443
1444 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1445 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class(");
1446 if(exp->__anon1._classExp.specifiers)
1447 {
1448 struct Specifier * spec;
1449
1450 for(spec = (*exp->__anon1._classExp.specifiers).first; spec; spec = spec->next)
1451 {
1452 OutputSpecifier(spec, f, 0);
1453 if(spec->next)
1454 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1455 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1456
1457 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1458 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1459 }
1460 if(exp->__anon1._classExp.decl)
1461 {
1462 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1463 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1464
1465 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1466 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1467 OutputDeclarator(exp->__anon1._classExp.decl, f);
1468 }
1469 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1470 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1471
1472 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1473 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1474 }
1475 break;
1476 case 23:
1477 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1478 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1479
1480 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1481 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1482 OutputStatement(exp->__anon1.compound, f);
1483 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1484 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1485
1486 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1487 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1488 if(inCompiler && outputLineNumbers && exp->loc.end.line)
1489 {
1490 char name[274] = "";
1491
1492 GetSourceName(name, exp->loc.end.included ? GetIncludeFileFromID(exp->loc.end.included) : (((void *)0)));
1493 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", exp->loc.end.line, name);
1494 outputLine += 2;
1495 }
1496 break;
1497 case 13:
1498 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1499 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1500
1501 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1502 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new ");
1503 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1504 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1505
1506 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1507 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1508 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
1509 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1510 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1511
1512 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1513 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1514 OutputExpression(exp->__anon1._renew.size, f);
1515 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1516 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1517
1518 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1519 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1520 break;
1521 case 26:
1522 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1523 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1524
1525 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1526 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new0 ");
1527 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1528 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1529
1530 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1531 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1532 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
1533 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1534 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1535
1536 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1537 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1538 OutputExpression(exp->__anon1._renew.size, f);
1539 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1540 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1541
1542 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1543 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1544 break;
1545 case 14:
1546 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1547 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1548
1549 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1550 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew ");
1551 OutputExpression(exp->__anon1._renew.exp, f);
1552 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1553 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1554
1555 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1556 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1557 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
1558 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1559 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1560
1561 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1562 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1563 OutputExpression(exp->__anon1._renew.size, f);
1564 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1565 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1566
1567 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1568 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1569 break;
1570 case 27:
1571 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1572 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1573
1574 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1575 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew0 ");
1576 OutputExpression(exp->__anon1._renew.exp, f);
1577 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1578 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1579
1580 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1581 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1582 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
1583 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1584 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1585
1586 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1587 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1588 OutputExpression(exp->__anon1._renew.size, f);
1589 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1590 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1591
1592 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1593 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1594 break;
1595 case 0:
1596 if(exp->__anon1.__anon1.identifier)
1597 OutputIdentifier(exp->__anon1.__anon1.identifier, f);
1598 break;
1599 case 1:
1600 if(exp->__anon1.instance)
1601 OutputInstance(exp->__anon1.instance, f);
1602 break;
1603 case 2:
1604 if(exp->__anon1.__anon1.constant)
1605 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1606 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1607
1608 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1609 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->__anon1.__anon1.constant);
1610 break;
1611 case 3:
1612 if(exp->__anon1.__anon2.string)
1613 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1614 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1615
1616 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1617 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->__anon1.__anon2.string);
1618 break;
1619 case 4:
1620 if(exp->__anon1.op.exp1)
1621 {
1622 OutputExpression(exp->__anon1.op.exp1, f);
1623 if(exp->__anon1.op.exp2)
1624 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1625 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1626
1627 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1628 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1629 }
1630 OutputOperator(exp->__anon1.op.op, f);
1631 if(exp->__anon1.op.exp2)
1632 {
1633 if(exp->__anon1.op.exp1 || (exp->__anon1.op.exp2->type == 4 && !exp->__anon1.op.exp2->__anon1.op.exp1 && exp->__anon1.op.exp2->__anon1.op.op == exp->__anon1.op.op))
1634 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1635 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1636
1637 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1638 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1639 OutputExpression(exp->__anon1.op.exp2, f);
1640 }
1641 break;
1642 case 32:
1643 case 5:
1644 {
1645 struct Expression * expression;
1646
1647 if(exp->type == 32)
1648 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1649 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1650
1651 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1652 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1653 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1654 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1655
1656 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1657 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1658 if(exp->__anon1.list)
1659 {
1660 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
1661 {
1662 OutputExpression(expression, f);
1663 if(expression->next)
1664 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1665 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1666
1667 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1668 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1669 }
1670 }
1671 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1672 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1673
1674 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1675 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1676 break;
1677 }
1678 case 6:
1679 {
1680 struct Expression * expression;
1681
1682 if(exp->__anon1.index.exp)
1683 OutputExpression(exp->__anon1.index.exp, f);
1684 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1685 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1686
1687 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1688 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1689 if(exp->__anon1.index.index)
1690 for(expression = (*exp->__anon1.index.index).first; expression; expression = expression->next)
1691 {
1692 OutputExpression(expression, f);
1693 if(expression->next)
1694 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1695 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1696
1697 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1698 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1699 }
1700 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1701 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1702
1703 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1704 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1705 break;
1706 }
1707 case 7:
1708 {
1709 OutputExpression(exp->__anon1.call.exp, f);
1710 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1711 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1712
1713 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1714 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1715 if(exp->__anon1.call.arguments)
1716 {
1717 struct Expression * expression;
1718
1719 for(expression = (*exp->__anon1.call.arguments).first; expression; expression = expression->next)
1720 {
1721 OutputExpression(expression, f);
1722 if(expression->next)
1723 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1724 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1725
1726 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1727 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1728 }
1729 }
1730 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1731 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1732
1733 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1734 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1735 break;
1736 }
1737 case 8:
1738 if(exp->__anon1.member.exp)
1739 OutputExpression(exp->__anon1.member.exp, f);
1740 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1741 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1742
1743 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1744 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
1745 if(exp->__anon1.member.member)
1746 OutputIdentifier(exp->__anon1.member.member, f);
1747 break;
1748 case 9:
1749 OutputExpression(exp->__anon1.member.exp, f);
1750 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1751 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1752
1753 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1754 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "->");
1755 OutputIdentifier(exp->__anon1.member.member, f);
1756 break;
1757 case 10:
1758 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1759 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1760
1761 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1762 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof(");
1763 OutputTypeName(exp->__anon1.typeName, f, 0);
1764 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1765 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1766
1767 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1768 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1769 break;
1770 case 36:
1771 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1772 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1773
1774 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1775 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__alignof__(");
1776 OutputTypeName(exp->__anon1.typeName, f, 0);
1777 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1778 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1779
1780 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1781 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1782 break;
1783 case 33:
1784 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1785 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1786
1787 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1788 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1789 if(exp->__anon1.initializer.typeName)
1790 OutputTypeName(exp->__anon1.initializer.typeName, f, 0);
1791 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1792 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1793
1794 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1795 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1796 if(exp->__anon1.initializer.initializer)
1797 OutputInitializer(exp->__anon1.initializer.initializer, f);
1798 break;
1799 case 11:
1800 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1801 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1802
1803 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1804 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1805 OutputTypeName(exp->__anon1.cast.typeName, f, 0);
1806 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1807 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1808
1809 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1810 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1811 if(exp->__anon1.cast.exp)
1812 OutputExpression(exp->__anon1.cast.exp, f);
1813 break;
1814 case 12:
1815 OutputExpression(exp->__anon1.cond.cond, f);
1816 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1817 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1818
1819 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1820 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ? ");
1821 {
1822 struct Expression * expression;
1823
1824 for(expression = (*exp->__anon1.cond.exp).first; expression; expression = expression->next)
1825 {
1826 OutputExpression(expression, f);
1827 if(expression->next)
1828 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1829 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1830
1831 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1832 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1833 }
1834 }
1835 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1836 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1837
1838 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1839 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1840 if(exp->__anon1.cond.elseExp)
1841 OutputExpression(exp->__anon1.cond.elseExp, f);
1842 break;
1843 case 34:
1844 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1845 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1846
1847 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1848 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_arg(");
1849 OutputExpression(exp->__anon1.vaArg.exp, f);
1850 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1851 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1852
1853 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1854 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1855 OutputTypeName(exp->__anon1.vaArg.typeName, f, 0);
1856 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1857 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1858
1859 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1860 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1861 break;
1862 case 35:
1863 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1864 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1865
1866 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1867 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1868 if(exp->__anon1.list)
1869 {
1870 struct Expression * expression;
1871
1872 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
1873 {
1874 OutputExpression(expression, f);
1875 if(expression->next)
1876 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1877 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1878
1879 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1880 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1881 }
1882 }
1883 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1884 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1885
1886 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1887 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1888 break;
1889 }
1890 }
1891
1892 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1893 {
1894 if(field->symbolic)
1895 {
1896 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1897 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1898
1899 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1900 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1901 OutputIdentifier(field->symbolic, f);
1902 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1903 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1904
1905 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1906 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1907 }
1908 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1909 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1910
1911 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1912 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, field->command);
1913 if(field->expression)
1914 {
1915 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1916 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1917
1918 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1919 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1920 OutputExpression(field->expression, f);
1921 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1922 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1923
1924 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1925 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1926 }
1927 }
1928
1929 extern char *  strchr(const char * , int);
1930
1931 extern char *  __ecereNameSpace__ecere__sys__StripLastDirectory(const char *  string, char *  output);
1932
1933 extern const char *  sourceFile;
1934
1935 extern char *  __ecereNameSpace__ecere__sys__PathCat(char *  string, const char *  addedPath);
1936
1937 extern void __ecereNameSpace__ecere__sys__ChangeCh(char *  string, char ch1, char ch2);
1938
1939 static void GetSourceName(char * name, const char * src)
1940 {
1941 name[0] = (char)0;
1942 if(src)
1943 {
1944 if(!strchr(src, '/') && !strchr(src, '\\'))
1945 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
1946 __ecereNameSpace__ecere__sys__PathCat(name, src);
1947 }
1948 else if(sourceFile)
1949 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
1950 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
1951 }
1952
1953 extern const char *  outputFile;
1954
1955 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1956
1957 extern struct __ecereNameSpace__ecere__sys__OldList *  MkList(void);
1958
1959 extern struct Declarator * SpecDeclFromString(const char *  string, struct __ecereNameSpace__ecere__sys__OldList *  specs, struct Declarator * baseDecl);
1960
1961 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1962
1963 extern struct Identifier * MkIdentifier(const char *  string);
1964
1965 extern struct __ecereNameSpace__ecere__sys__OldList *  CopyList(struct __ecereNameSpace__ecere__sys__OldList *  source, void *  (*  CopyFunction)(void * ));
1966
1967 extern struct Specifier * CopySpecifier(struct Specifier * spec);
1968
1969 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
1970
1971 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void *  item);
1972
1973 extern struct Specifier * MkSpecifierName(const char *  name);
1974
1975 extern void PrintType(struct Type * type, char *  string, unsigned int printName, unsigned int fullName);
1976
1977 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
1978
1979 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
1980
1981 extern void FreeTypeName(struct TypeName * typeName);
1982
1983 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
1984 {
1985 char name[274] = "";
1986 char origName[274] = "";
1987
1988 if(inCompiler)
1989 {
1990 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
1991 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1992 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1993 }
1994 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
1995 {
1996 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
1997 outputLine += 2;
1998 }
1999 switch(stmt->type)
2000 {
2001 case 14:
2002 OutputDeclaration(stmt->__anon1.decl, f);
2003 break;
2004 case 0:
2005 OutputIdentifier(stmt->__anon1.labeled.id, f);
2006 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2007 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2008
2009 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2010 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2011 outputLine++;
2012 if(stmt->__anon1.labeled.stmt)
2013 {
2014 if(stmt->__anon1.labeled.stmt->type == 14)
2015 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2016 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2017
2018 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2019 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2020 OutputStatement(stmt->__anon1.labeled.stmt, f);
2021 }
2022 break;
2023 case 1:
2024 if(stmt->__anon1.caseStmt.exp)
2025 {
2026 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2027 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2028
2029 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2030 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "case ");
2031 OutputExpression(stmt->__anon1.caseStmt.exp, f);
2032 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2033 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2034
2035 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2036 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2037 outputLine++;
2038 }
2039 else
2040 {
2041 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2042 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2043
2044 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2045 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
2046 outputLine++;
2047 }
2048 if(stmt->__anon1.caseStmt.stmt)
2049 {
2050 if(stmt->__anon1.caseStmt.stmt->type == 14)
2051 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2052 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2053
2054 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2055 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2056 OutputStatement(stmt->__anon1.caseStmt.stmt, f);
2057 }
2058 break;
2059 case 2:
2060 {
2061 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2062 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2063
2064 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2065 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
2066 outputLine++;
2067 if(stmt->__anon1.compound.declarations)
2068 {
2069 struct Declaration * decl;
2070
2071 for(decl = (*stmt->__anon1.compound.declarations).first; decl; decl = decl->next)
2072 {
2073 OutputDeclaration(decl, f);
2074 }
2075 }
2076 if(stmt->__anon1.compound.statements)
2077 {
2078 struct Statement * statement;
2079
2080 if(stmt->__anon1.compound.declarations)
2081 {
2082 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2083 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2084
2085 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2086 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2087 outputLine++;
2088 }
2089 for(statement = (*stmt->__anon1.compound.statements).first; statement; statement = statement->next)
2090 {
2091 OutputStatement(statement, f);
2092 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2093 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2094
2095 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2096 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2097 outputLine++;
2098 }
2099 }
2100 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2101 {
2102 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2103 outputLine += 2;
2104 }
2105 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2106 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2107
2108 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2109 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2110 break;
2111 }
2112 case 3:
2113 {
2114 if(stmt->__anon1.expressions)
2115 {
2116 struct Expression * exp;
2117
2118 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
2119 {
2120 OutputExpression(exp, f);
2121 if(exp->next)
2122 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2123 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2124
2125 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2126 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2127 }
2128 }
2129 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2130 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2131
2132 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2133 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2134 break;
2135 }
2136 case 4:
2137 {
2138 struct Expression * exp;
2139
2140 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2141 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2142
2143 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2144 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "if(");
2145 for(exp = (*stmt->__anon1.ifStmt.exp).first; exp; exp = exp->next)
2146 {
2147 OutputExpression(exp, f);
2148 if(exp->next)
2149 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2150 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2151
2152 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2153 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2154 }
2155 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2156 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2157
2158 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2159 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2160 outputLine++;
2161 if(stmt->__anon1.ifStmt.stmt)
2162 OutputStatement(stmt->__anon1.ifStmt.stmt, f);
2163 if(stmt->__anon1.ifStmt.elseStmt)
2164 {
2165 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2166 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2167
2168 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2169 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2170 outputLine++;
2171 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2172 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2173
2174 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2175 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "else");
2176 if(stmt->__anon1.ifStmt.elseStmt->type != 4)
2177 {
2178 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2179 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2180
2181 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2182 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2183 outputLine++;
2184 }
2185 else
2186 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2187 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2188
2189 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2190 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2191 OutputStatement(stmt->__anon1.ifStmt.elseStmt, f);
2192 }
2193 break;
2194 }
2195 case 5:
2196 {
2197 struct Expression * exp;
2198
2199 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2200 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2201
2202 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2203 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "switch(");
2204 if(stmt->__anon1.switchStmt.exp)
2205 {
2206 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2207 {
2208 OutputExpression(exp, f);
2209 if(exp->next)
2210 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2211 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2212
2213 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2214 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2215 }
2216 }
2217 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2218 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2219
2220 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2221 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2222 outputLine++;
2223 OutputStatement(stmt->__anon1.switchStmt.stmt, f);
2224 break;
2225 }
2226 case 6:
2227 {
2228 struct Expression * exp;
2229
2230 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2231 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2232
2233 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2234 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2235 if(stmt->__anon1.switchStmt.exp)
2236 {
2237 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2238 {
2239 OutputExpression(exp, f);
2240 if(exp->next)
2241 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2242 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2243
2244 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2245 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2246 }
2247 }
2248 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2249 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2250
2251 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2252 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2253 outputLine++;
2254 OutputStatement(stmt->__anon1.whileStmt.stmt, f);
2255 break;
2256 }
2257 case 7:
2258 {
2259 struct Expression * exp;
2260
2261 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2262 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2263
2264 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2265 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "do\n");
2266 outputLine++;
2267 OutputStatement(stmt->__anon1.whileStmt.stmt, f);
2268 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2269 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2270
2271 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2272 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2273 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2274 {
2275 OutputExpression(exp, f);
2276 if(exp->next)
2277 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2278 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2279
2280 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2281 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2282 }
2283 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2284 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2285
2286 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2287 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");");
2288 break;
2289 }
2290 case 8:
2291 {
2292 struct Expression * exp;
2293
2294 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2295 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2296
2297 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2298 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "for(");
2299 OutputStatement(stmt->__anon1.forStmt.init, f);
2300 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2301 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2302
2303 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2304 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2305 OutputStatement(stmt->__anon1.forStmt.check, f);
2306 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2307 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2308
2309 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2310 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2311 if(stmt->__anon1.forStmt.increment)
2312 {
2313 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2314 {
2315 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2316 outputLine += 2;
2317 }
2318 for(exp = (*stmt->__anon1.forStmt.increment).first; exp; exp = exp->next)
2319 {
2320 OutputExpression(exp, f);
2321 if(exp->next)
2322 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2323 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2324
2325 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2326 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2327 }
2328 }
2329 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2330 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2331
2332 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2333 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2334 outputLine++;
2335 OutputStatement(stmt->__anon1.forStmt.stmt, f);
2336 break;
2337 }
2338 case 9:
2339 {
2340 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2341 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2342
2343 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2344 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "goto ");
2345 OutputIdentifier(stmt->__anon1.gotoStmt.id, f);
2346 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2347 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2348
2349 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2350 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2351 break;
2352 }
2353 case 10:
2354 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2355 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2356
2357 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2358 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "continue;");
2359 break;
2360 case 11:
2361 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2362 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2363
2364 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2365 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "break;");
2366 break;
2367 case 12:
2368 {
2369 struct Expression * exp;
2370
2371 if(inCompiler && memoryGuard)
2372 {
2373 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
2374 struct Type * returnType = exp ? (exp->destType ? exp->destType : exp->expType) : (((void *)0));
2375
2376 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
2377 if(returnType && returnType->kind != 0)
2378 {
2379 char string[1024] = "";
2380 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
2381 struct Declarator * decl;
2382 struct TypeName * typeName;
2383
2384 if(returnType->kind == 20)
2385 {
2386 if(returnType->__anon1.templateParameter->dataTypeString)
2387 decl = SpecDeclFromString(returnType->__anon1.templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2388 else if(returnType->__anon1.templateParameter->__anon1.dataType)
2389 {
2390 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
2391 specs = CopyList(returnType->__anon1.templateParameter->__anon1.dataType->specifiers, (void *)(CopySpecifier));
2392 decl = PlugDeclarator(returnType->__anon1.templateParameter->__anon1.dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2393 }
2394 else
2395 {
2396 ListAdd(specs, MkSpecifierName("uint64"));
2397 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
2398 }
2399 }
2400 else
2401 {
2402 PrintType(returnType, string, returnType->kind == 18 ? 1 : 0, 1);
2403 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2404 }
2405 typeName = MkTypeName(specs, decl);
2406 InstDeclPassTypeName(typeName, 0);
2407 OutputTypeName(typeName, f, 0);
2408 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
2409 FreeTypeName(typeName);
2410 }
2411 }
2412 if(!memoryGuard)
2413 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2414 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2415
2416 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2417 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "return ");
2418 else
2419 {
2420 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
2421
2422 if(exp && exp->expType && exp->expType->kind != 0)
2423 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
2424 }
2425 if(stmt->__anon1.expressions)
2426 {
2427 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
2428 {
2429 OutputExpression(exp, f);
2430 if(exp->next)
2431 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2432 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2433
2434 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2435 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2436 }
2437 }
2438 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2439 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2440
2441 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2442 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2443 if(inCompiler && memoryGuard)
2444 {
2445 struct Expression * exp = stmt->__anon1.expressions ? (struct Expression *)(*stmt->__anon1.expressions).last : (((void *)0));
2446
2447 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
2448 if(exp && exp->expType && exp->expType->kind != 0)
2449 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
2450 else
2451 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
2452 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
2453 }
2454 break;
2455 }
2456 case 13:
2457 {
2458 struct AsmField * field;
2459
2460 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2461 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2462
2463 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2464 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__asm__ ");
2465 if(stmt->__anon1.asmStmt.spec)
2466 OutputSpecifier(stmt->__anon1.asmStmt.spec, f, 0);
2467 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2468 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2469
2470 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2471 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2472 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2473 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2474
2475 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2476 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, stmt->__anon1.asmStmt.statements);
2477 if(stmt->__anon1.asmStmt.inputFields || stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
2478 {
2479 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2480 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2481
2482 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2483 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2484 if(stmt->__anon1.asmStmt.inputFields)
2485 {
2486 for(field = (*stmt->__anon1.asmStmt.inputFields).first; field; field = field->next)
2487 {
2488 if(field->prev)
2489 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2490 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2491
2492 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2493 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2494 OutputAsmField(field, f);
2495 }
2496 }
2497 }
2498 if(stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
2499 {
2500 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2501 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2502
2503 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2504 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2505 if(stmt->__anon1.asmStmt.outputFields)
2506 {
2507 for(field = (*stmt->__anon1.asmStmt.outputFields).first; field; field = field->next)
2508 {
2509 if(field->prev)
2510 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2511 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2512
2513 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2514 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2515 OutputAsmField(field, f);
2516 }
2517 }
2518 }
2519 if(stmt->__anon1.asmStmt.clobberedFields)
2520 {
2521 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2522 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2523
2524 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2525 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2526 for(field = (*stmt->__anon1.asmStmt.clobberedFields).first; field; field = field->next)
2527 {
2528 if(field->prev)
2529 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2530 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2531
2532 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2533 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2534 OutputAsmField(field, f);
2535 }
2536 }
2537 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2538 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2539
2540 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2541 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");\n");
2542 outputLine++;
2543 break;
2544 }
2545 }
2546 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
2547 {
2548 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
2549 outputLine += 2;
2550 }
2551 }
2552
2553 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
2554 {
2555 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2556 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2557
2558 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2559 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*");
2560 if(ptr->qualifiers)
2561 {
2562 struct Specifier * spec;
2563
2564 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2565 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2566
2567 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2568 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2569 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
2570 {
2571 OutputSpecifier(spec, f, 0);
2572 if(spec->next)
2573 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2574 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2575
2576 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2577 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2578 }
2579 }
2580 if(ptr->pointer)
2581 {
2582 OutputPointer(ptr->pointer, f);
2583 }
2584 }
2585
2586 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f);
2587
2588 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f);
2589
2590 extern void ProcessExpressionType(struct Expression * exp);
2591
2592 extern void ComputeExpression(struct Expression * exp);
2593
2594 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2595 {
2596 switch(decl->type)
2597 {
2598 case 0:
2599 if(decl->declarator)
2600 {
2601 OutputDeclarator(decl->declarator, f);
2602 }
2603 if(decl->__anon1.structDecl.exp)
2604 {
2605 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2606 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2607
2608 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2609 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2610 OutputExpression(decl->__anon1.structDecl.exp, f);
2611 }
2612 if(decl->__anon1.structDecl.posExp)
2613 {
2614 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2615 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2616
2617 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2618 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2619 OutputExpression(decl->__anon1.structDecl.posExp, f);
2620 }
2621 if(decl->__anon1.structDecl.attrib)
2622 {
2623 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2624 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2625
2626 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2627 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2628 OutputAttrib(decl->__anon1.structDecl.attrib, f);
2629 }
2630 break;
2631 case 1:
2632 OutputIdentifier(decl->__anon1.identifier, f);
2633 break;
2634 case 2:
2635 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2636 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2637
2638 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2639 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2640 OutputDeclarator(decl->declarator, f);
2641 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2642 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2643
2644 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2645 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2646 break;
2647 case 6:
2648 if(decl->__anon1.extended.extended)
2649 OutputExtDecl(decl->__anon1.extended.extended, f);
2650 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2651 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2652
2653 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2654 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2655 OutputDeclarator(decl->declarator, f);
2656 break;
2657 case 7:
2658 OutputDeclarator(decl->declarator, f);
2659 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2660 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2661
2662 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2663 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2664 if(decl->__anon1.extended.extended)
2665 OutputExtDecl(decl->__anon1.extended.extended, f);
2666 break;
2667 case 3:
2668 if(decl->declarator)
2669 {
2670 OutputDeclarator(decl->declarator, f);
2671 }
2672 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2673 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2674
2675 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2676 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
2677 if(decl->__anon1.array.exp)
2678 {
2679 ProcessExpressionType(decl->__anon1.array.exp);
2680 ComputeExpression(decl->__anon1.array.exp);
2681 OutputExpression(decl->__anon1.array.exp, f);
2682 }
2683 else if(decl->__anon1.array.enumClass)
2684 {
2685 struct Symbol * _class = decl->__anon1.array.enumClass->__anon1.__anon1.symbol;
2686
2687 if(_class && _class->__anon1.registered)
2688 {
2689 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->__anon1.registered, "enumSize"));
2690 }
2691 }
2692 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2693 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2694
2695 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2696 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
2697 break;
2698 case 4:
2699 {
2700 struct TypeName * param;
2701
2702 if(decl->declarator)
2703 OutputDeclarator(decl->declarator, f);
2704 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2705 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2706
2707 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2708 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2709 if(decl->__anon1.function.parameters && (*decl->__anon1.function.parameters).first)
2710 {
2711 for(param = (*decl->__anon1.function.parameters).first; param; param = param->next)
2712 {
2713 OutputTypeName(param, f, 0);
2714 if(param->next)
2715 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2716 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2717
2718 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2719 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2720 }
2721 }
2722 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2723 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2724
2725 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2726 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2727 break;
2728 }
2729 case 5:
2730 if(decl->__anon1.pointer.pointer)
2731 OutputPointer(decl->__anon1.pointer.pointer, f);
2732 if(decl->declarator)
2733 {
2734 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2735 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2736
2737 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2738 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2739 OutputDeclarator(decl->declarator, f);
2740 }
2741 break;
2742 }
2743 }
2744
2745 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
2746 {
2747 OutputIdentifier(enumerator->id, f);
2748 if(enumerator->exp)
2749 {
2750 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2751 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2752
2753 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2754 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
2755 OutputExpression(enumerator->exp, f);
2756 }
2757 }
2758
2759 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2760 {
2761 if(attr->attr)
2762 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2763 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2764
2765 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2766 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, attr->attr);
2767 if(attr->exp)
2768 {
2769 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2770 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2771
2772 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2773 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2774 OutputExpression(attr->exp, f);
2775 }
2776 }
2777
2778 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2779 {
2780 switch(attr->type)
2781 {
2782 case ATTRIB:
2783 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2784 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2785
2786 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2787 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute__((");
2788 break;
2789 case __ATTRIB:
2790 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2791 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2792
2793 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2794 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute((");
2795 break;
2796 case ATTRIB_DEP:
2797 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2798 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2799
2800 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2801 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute_deprecated__((");
2802 break;
2803 }
2804 if(attr->attribs)
2805 {
2806 struct Attribute * attrib;
2807
2808 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
2809 {
2810 if(attrib->prev)
2811 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2812 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2813
2814 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2815 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2816 OutputAttribute(attrib, f);
2817 }
2818 }
2819 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2820 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2821
2822 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2823 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "))");
2824 }
2825
2826 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
2827 {
2828 if(extDecl->type == 0 && extDecl->__anon1.s)
2829 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2830 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2831
2832 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2833 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, extDecl->__anon1.s);
2834 else if(extDecl->type == 1)
2835 OutputAttrib(extDecl->__anon1.attr, f);
2836 }
2837
2838 extern struct Symbol * FindClass(const char *  name);
2839
2840 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f);
2841
2842 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2843 {
2844 switch(spec->type)
2845 {
2846 case 0:
2847 switch(spec->__anon1.specifier)
2848 {
2849 case TYPEDEF:
2850 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2851 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2852
2853 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2854 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef");
2855 break;
2856 case EXTERN:
2857 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2858 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2859
2860 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2861 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "extern");
2862 break;
2863 case STATIC:
2864 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2865 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2866
2867 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2868 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static");
2869 break;
2870 case AUTO:
2871 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2872 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2873
2874 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2875 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "auto");
2876 break;
2877 case REGISTER:
2878 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2879 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2880
2881 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2882 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "register");
2883 break;
2884 case THREAD:
2885 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2886 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2887
2888 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2889 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__thread");
2890 break;
2891 case CONST:
2892 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2893 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2894
2895 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2896 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "const");
2897 break;
2898 case VOLATILE:
2899 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2900 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2901
2902 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2903 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "volatile");
2904 break;
2905 case VOID:
2906 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2907 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2908
2909 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2910 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "void");
2911 break;
2912 case CHAR:
2913 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2914 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2915
2916 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2917 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "char");
2918 break;
2919 case _BOOL:
2920 case BOOL:
2921 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2922 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2923
2924 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2925 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Bool");
2926 break;
2927 case _COMPLEX:
2928 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2929 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2930
2931 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2932 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Complex");
2933 break;
2934 case _IMAGINARY:
2935 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2936 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2937
2938 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2939 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Imaginary");
2940 break;
2941 case RESTRICT:
2942 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2943 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2944
2945 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2946 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "restrict");
2947 break;
2948 case SHORT:
2949 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2950 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2951
2952 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2953 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "short");
2954 break;
2955 case INT:
2956 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2957 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2958
2959 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2960 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "int");
2961 break;
2962 case UINT:
2963 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2964 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2965
2966 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2967 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "uint" : "unsigned int");
2968 break;
2969 case INT64:
2970 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2971 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2972
2973 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2974 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "int64" : "long long");
2975 break;
2976 case VALIST:
2977 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2978 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2979
2980 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2981 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_list");
2982 break;
2983 case LONG:
2984 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2985 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2986
2987 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2988 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "long");
2989 break;
2990 case FLOAT:
2991 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2992 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2993
2994 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2995 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "float");
2996 break;
2997 case DOUBLE:
2998 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2999 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3000
3001 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3002 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "double");
3003 break;
3004 case SIGNED:
3005 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3006 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3007
3008 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3009 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "signed");
3010 break;
3011 case UNSIGNED:
3012 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3013 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3014
3015 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3016 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "unsigned");
3017 break;
3018 case TYPED_OBJECT:
3019 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3020 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3021
3022 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3023 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
3024 break;
3025 case ANY_OBJECT:
3026 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3027 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3028
3029 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3030 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "any_object");
3031 break;
3032 case CLASS:
3033 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3034 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3035
3036 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3037 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class");
3038 break;
3039 case THISCLASS:
3040 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3041 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3042
3043 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3044 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "thisclass");
3045 break;
3046 }
3047 break;
3048 case 5:
3049 if(spec->__anon1.__anon1.extDecl)
3050 OutputExtDecl(spec->__anon1.__anon1.extDecl, f);
3051 break;
3052 case 1:
3053 if(spec->__anon1.__anon1.name && !strcmp(spec->__anon1.__anon1.name, "class"))
3054 {
3055 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3056 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3057
3058 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3059 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
3060 }
3061 else
3062 {
3063 struct Symbol * symbol = spec->__anon1.__anon1.symbol;
3064
3065 if(!symbol && spec->__anon1.__anon1.name)
3066 symbol = FindClass(spec->__anon1.__anon1.name);
3067 if(symbol)
3068 {
3069 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3070 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3071
3072 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3073 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, symbol->string ? symbol->string : "(null)");
3074 }
3075 else if(spec->__anon1.__anon1.name)
3076 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3077 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3078
3079 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3080 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, spec->__anon1.__anon1.name);
3081 }
3082 break;
3083 case 2:
3084 {
3085 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3086 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3087
3088 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3089 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "enum");
3090 if(spec->__anon1.__anon2.id)
3091 {
3092 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3093 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3094
3095 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3096 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3097 OutputIdentifier(spec->__anon1.__anon2.id, f);
3098 }
3099 if(spec->__anon1.__anon2.list)
3100 {
3101 struct Enumerator * enumerator;
3102
3103 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3104 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3105
3106 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3107 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3108 outputLine += 2;
3109 for(enumerator = (*spec->__anon1.__anon2.list).first; enumerator; enumerator = enumerator->next)
3110 {
3111 OutputEnumerator(enumerator, f);
3112 if(enumerator->next)
3113 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3114 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3115
3116 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3117 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3118 }
3119 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3120 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3121
3122 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3123 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3124 outputLine++;
3125 }
3126 break;
3127 }
3128 case 3:
3129 case 4:
3130 {
3131 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3132 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3133
3134 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3135 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (spec->type == 3) ? "struct" : "union");
3136 if(spec->__anon1.__anon2.extDeclStruct)
3137 {
3138 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3139 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3140
3141 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3142 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3143 OutputExtDecl(spec->__anon1.__anon2.extDeclStruct, f);
3144 }
3145 if(spec->__anon1.__anon2.id)
3146 {
3147 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3148 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3149
3150 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3151 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3152 OutputIdentifier(spec->__anon1.__anon2.id, f);
3153 }
3154 if(spec->__anon1.__anon2.definitions)
3155 {
3156 struct ClassDef * def;
3157
3158 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3159 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3160
3161 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3162 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3163 outputLine += 2;
3164 for(def = (*spec->__anon1.__anon2.definitions).first; def; def = def->next)
3165 {
3166 OutputClassDef(def, f);
3167 }
3168 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3169 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3170
3171 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3172 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "} __attribute__ ((gcc_struct))");
3173 }
3174 break;
3175 }
3176 case 6:
3177 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3178 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3179
3180 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3181 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__typeof(");
3182 OutputExpression(spec->__anon1.expression, f);
3183 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3184 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3185
3186 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3187 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3188 break;
3189 case 7:
3190 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3191 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3192
3193 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3194 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "subclass(");
3195 OutputSpecifier(spec->__anon1._class, f, 0);
3196 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3197 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3198
3199 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3200 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3201 break;
3202 case 8:
3203 OutputIdentifier(spec->__anon1.templateParameter->identifier, f);
3204 break;
3205 }
3206 }
3207
3208 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
3209 {
3210 char name[274] = "";
3211 char origName[274] = "";
3212
3213 if(inCompiler)
3214 {
3215 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
3216 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3217 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3218 }
3219 if(initializer->type == 1)
3220 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3221 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3222
3223 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3224 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3225 if(initializer->id)
3226 {
3227 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3228 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3229
3230 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3231 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3232 OutputIdentifier(initializer->id, f);
3233 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3234 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3235
3236 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3237 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
3238 }
3239 switch(initializer->type)
3240 {
3241 case 1:
3242 {
3243 struct Initializer * init;
3244
3245 if(initializer->id)
3246 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3247 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3248
3249 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3250 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3251 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3252 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3253
3254 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3255 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
3256 outputLine += 2;
3257 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3258 {
3259 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3260 outputLine += 2;
3261 }
3262 for(init = (*initializer->__anon1.list).first; init; init = init->next)
3263 {
3264 OutputInitializer(init, f);
3265 if(init->next)
3266 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3267 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3268
3269 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3270 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, init->next->type == 1 ? "," : ", ");
3271 }
3272 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3273 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3274
3275 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3276 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3277 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3278 {
3279 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3280 outputLine += 2;
3281 }
3282 outputLine++;
3283 break;
3284 }
3285 case 0:
3286 if(initializer->id)
3287 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3288 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3289
3290 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3291 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3292 if(initializer->__anon1.exp)
3293 OutputExpression(initializer->__anon1.exp, f);
3294 break;
3295 }
3296 }
3297
3298 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3299 {
3300 OutputDeclarator(decl->declarator, f);
3301 if(decl->initializer)
3302 {
3303 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3304 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3305
3306 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3307 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
3308 if(decl->initializer->type == 0)
3309 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3310 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3311
3312 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3313 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3314 OutputInitializer(decl->initializer, f);
3315 }
3316 }
3317
3318 extern char *  strcpy(char * , const char * );
3319
3320 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3321 {
3322 struct Specifier * spec;
3323 char origName[274];
3324 char name[274];
3325
3326 if(inCompiler)
3327 {
3328 strcpy(origName, outputFile);
3329 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3330 }
3331 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
3332 if(inCompiler && outputLineNumbers && decl->loc.start.line)
3333 {
3334 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
3335 outputLine += 2;
3336 }
3337 switch(decl->type)
3338 {
3339 case 1:
3340 {
3341 struct InitDeclarator * d;
3342
3343 if(decl->__anon1.__anon1.specifiers)
3344 {
3345 unsigned int inTypeDef = 0;
3346
3347 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
3348 {
3349 if(spec->type == 0 && spec->__anon1.specifier == TYPEDEF)
3350 inTypeDef = 1;
3351 OutputSpecifier(spec, f, inTypeDef && !spec->next);
3352 if(spec->next)
3353 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3354 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3355
3356 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3357 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3358 }
3359 }
3360 if(decl->__anon1.__anon1.declarators && (*decl->__anon1.__anon1.declarators).first)
3361 {
3362 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3363 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3364
3365 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3366 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3367 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
3368 {
3369 OutputInitDeclarator(d, f);
3370 if(d->next)
3371 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3372 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3373
3374 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3375 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3376 }
3377 }
3378 break;
3379 }
3380 case 0:
3381 {
3382 if(decl->__anon1.__anon1.specifiers)
3383 {
3384 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
3385 {
3386 OutputSpecifier(spec, f, 0);
3387 if(spec->next)
3388 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3389 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3390
3391 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3392 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3393 }
3394 }
3395 if(decl->__anon1.__anon1.declarators)
3396 {
3397 struct Declarator * d;
3398
3399 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3400 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3401
3402 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3403 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3404 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
3405 {
3406 OutputDeclarator(d, f);
3407 if(d->next)
3408 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3409 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3410
3411 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3412 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3413 }
3414 }
3415 if(decl->extStorage)
3416 {
3417 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3418 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3419
3420 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3421 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3422 OutputSpecifier(decl->extStorage, f, 0);
3423 }
3424 break;
3425 }
3426 case 2:
3427 if(decl->__anon1.inst)
3428 {
3429 OutputInstance(decl->__anon1.inst, f);
3430 }
3431 break;
3432 case 3:
3433 return ;
3434 }
3435 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3436 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3437
3438 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3439 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3440 outputLine++;
3441 if(inCompiler && outputLineNumbers && decl->loc.start.line)
3442 {
3443 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3444 outputLine += 2;
3445 }
3446 }
3447
3448 static struct FunctionDefinition * curFunction;
3449
3450 extern struct Identifier * GetDeclId(struct Declarator * decl);
3451
3452 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
3453 {
3454 struct FunctionDefinition * oldFunc = curFunction;
3455
3456 curFunction = func;
3457 if(func->specifiers)
3458 {
3459 struct Specifier * spec;
3460
3461 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3462 {
3463 OutputSpecifier(spec, f, 0);
3464 if(spec->next)
3465 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3466 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3467
3468 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3469 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3470 }
3471 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3472 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3473
3474 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3475 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3476 }
3477 if(func->declarator)
3478 OutputDeclarator(func->declarator, f);
3479 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3480 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3481
3482 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3483 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3484 outputLine++;
3485 if(func->declarations)
3486 {
3487 struct Declaration * decl;
3488
3489 for(decl = (*func->declarations).first; decl; decl = decl->next)
3490 {
3491 OutputDeclaration(decl, f);
3492 }
3493 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3494 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3495
3496 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3497 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3498 outputLine++;
3499 }
3500 if(func->body)
3501 {
3502 if(inCompiler && memoryGuard)
3503 {
3504 char name[1024] = "";
3505 struct Identifier * id = GetDeclId(func->declarator);
3506
3507 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
3508 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
3509 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "   __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
3510 outputLine += 2;
3511 }
3512 OutputStatement(func->body, f);
3513 if(inCompiler && memoryGuard)
3514 {
3515 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "   __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
3516 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
3517 outputLine += 2;
3518 }
3519 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3520 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3521
3522 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3523 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3524 outputLine++;
3525 }
3526 curFunction = oldFunc;
3527 }
3528
3529 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3530 {
3531 if(init->identifiers)
3532 {
3533 if((*init->identifiers).count > 1)
3534 {
3535 struct Identifier * id;
3536
3537 for(id = (*init->identifiers).first; id; id = id->next)
3538 {
3539 OutputIdentifier(id, f);
3540 if(id->next)
3541 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3542 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3543
3544 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3545 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3546 }
3547 }
3548 else if((*init->identifiers).first)
3549 OutputIdentifier((*init->identifiers).first, f);
3550 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3551 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3552
3553 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3554 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
3555 if(init->initializer && init->initializer->type == 0)
3556 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3557 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3558
3559 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3560 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3561 }
3562 if(init->initializer)
3563 OutputInitializer(init->initializer, f);
3564 }
3565
3566 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f);
3567
3568 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3569 {
3570 switch(init->type)
3571 {
3572 case 0:
3573 {
3574 struct MemberInit * member;
3575
3576 if(init->__anon1.dataMembers)
3577 {
3578 for(member = (*init->__anon1.dataMembers).first; member; member = member->next)
3579 {
3580 OutputMemberInit(member, f);
3581 if(member->next)
3582 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3583 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3584
3585 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3586 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3587 }
3588 }
3589 break;
3590 }
3591 case 1:
3592 OutputClassFunction(init->__anon1.function, f);
3593 break;
3594 }
3595 }
3596
3597 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
3598 {
3599 if(inst->_class)
3600 OutputSpecifier(inst->_class, f, 0);
3601 if(inst->exp)
3602 {
3603 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3604 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3605
3606 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3607 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3608 OutputExpression(inst->exp, f);
3609 }
3610 if(inst->members && (*inst->members).count > 1)
3611 {
3612 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3613 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3614
3615 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3616 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3617 outputLine += 2;
3618 }
3619 else if(inst->members)
3620 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3621 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3622
3623 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3624 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " { ");
3625 else
3626 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3627 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3628
3629 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3630 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{");
3631 if(inst->members)
3632 {
3633 struct MembersInit * init;
3634
3635 for(init = (*inst->members).first; init; init = init->next)
3636 {
3637 OutputMembersInit(init, f);
3638 if(init->type == 0 && init->next)
3639 {
3640 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3641 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3642
3643 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3644 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3645 outputLine++;
3646 }
3647 }
3648 }
3649 if(inst->members)
3650 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3651 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3652
3653 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3654 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }");
3655 else
3656 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3657 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3658
3659 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3660 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
3661 }
3662
3663 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
3664 {
3665 if(func->specifiers)
3666 {
3667 struct Specifier * spec;
3668
3669 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3670 {
3671 OutputSpecifier(spec, f, 0);
3672 if(spec->next)
3673 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3674 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3675
3676 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3677 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3678 }
3679 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3680 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3681
3682 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3683 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3684 }
3685 if(func->declarator)
3686 OutputDeclarator(func->declarator, f);
3687 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3688 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3689
3690 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3691 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3692 outputLine++;
3693 if(func->declarations)
3694 {
3695 struct Declaration * decl;
3696
3697 for(decl = (*func->declarations).first; decl; decl = decl->next)
3698 {
3699 OutputDeclaration(decl, f);
3700 }
3701 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3702 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3703
3704 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3705 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3706 outputLine++;
3707 }
3708 if(func->body)
3709 {
3710 OutputStatement(func->body, f);
3711 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3712 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3713
3714 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3715 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3716 outputLine++;
3717 }
3718 else
3719 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3720 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3721
3722 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3723 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3724 }
3725
3726 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
3727 {
3728 switch(def->type)
3729 {
3730 case 2:
3731 if(def->__anon1.decl)
3732 {
3733 OutputDeclaration(def->__anon1.decl, f);
3734 if(def->next && def->next->type != 2)
3735 {
3736 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3737 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3738
3739 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3740 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3741 outputLine++;
3742 }
3743 }
3744 break;
3745 case 1:
3746 {
3747 struct MemberInit * init;
3748
3749 for(init = (*def->__anon1.defProperties).first; init; init = init->next)
3750 {
3751 OutputMemberInit(init, f);
3752 if(init->next)
3753 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3754 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3755
3756 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3757 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3758 }
3759 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3760 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3761
3762 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3763 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n\n");
3764 outputLine += 2;
3765 break;
3766 }
3767 case 0:
3768 OutputClassFunction(def->__anon1.function, f);
3769 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3770 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3771
3772 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3773 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3774 outputLine++;
3775 break;
3776 }
3777 }
3778
3779 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
3780 {
3781 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3782 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3783
3784 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3785 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class ");
3786 OutputSpecifier(_class->_class, f, 0);
3787 if(_class->baseSpecs)
3788 {
3789 struct Specifier * spec;
3790
3791 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3792 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3793
3794 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3795 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
3796 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
3797 {
3798 OutputSpecifier(spec, f, 0);
3799 }
3800 }
3801 if(_class->definitions)
3802 {
3803 struct ClassDef * def;
3804
3805 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3806 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3807
3808 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3809 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3810 outputLine += 2;
3811 for(def = (*_class->definitions).first; def; def = def->next)
3812 {
3813 OutputClassDef(def, f);
3814 }
3815 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3816 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3817
3818 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3819 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
3820 outputLine++;
3821 }
3822 else
3823 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3824 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3825
3826 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3827 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3828 }
3829
3830 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
3831 {
3832 struct External * external;
3833
3834 outputLine = 38;
3835 for(external = ast->first; external; external = external->next)
3836 {
3837 switch(external->type)
3838 {
3839 case 0:
3840 OutputFunction(external->__anon1.function, f);
3841 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3842 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3843
3844 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3845 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3846 outputLine++;
3847 break;
3848 case 1:
3849 if(external->__anon1.declaration)
3850 OutputDeclaration(external->__anon1.declaration, f);
3851 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3852 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3853
3854 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3855 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3856 outputLine++;
3857 break;
3858 case 2:
3859 OutputClass(external->__anon1._class, f);
3860 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3861 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3862
3863 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3864 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3865 outputLine++;
3866 break;
3867 }
3868 }
3869 }
3870
3871 extern char *  __ecereNameSpace__ecere__sys__TrimRSpaces(const char *  string, char *  output);
3872
3873 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
3874
3875 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
3876
3877 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
3878
3879 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
3880
3881 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
3882
3883 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
3884
3885 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
3886 {
3887 char * string;
3888 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
3889 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
3890 unsigned int size;
3891
3892 typeName->qualifiers = specs;
3893 typeName->declarator = decl;
3894 OutputTypeName(typeName, f, 1);
3895 ((typeName ? (__ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor((void *)typeName) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(typeName)) : 0), typeName = 0);
3896 size = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
3897 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3898
3899 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3900 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(f);
3901 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
3902 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3903 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3904
3905 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3906 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, 0, 0);
3907 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
3908 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3909
3910 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3911 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, string, 1, (unsigned int)size);
3912 string[size] = '\0';
3913 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
3914 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
3915 return string;
3916 }
3917
3918 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
3919
3920 struct __ecereNameSpace__ecere__com__GlobalFunction;
3921
3922 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(const char *  name, const char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
3923
3924 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3925 {
3926 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
3927
3928 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
3929 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
3930 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
3931 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
3932 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
3933 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
3934 }
3935
3936 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3937 {
3938
3939 }
3940