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