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