f50b27e3e65b66df65bf2722c9c551636f31bbce
[sdk] / compiler / bootstrap / libec / bootstrap / output.c
1 /* Code generated from eC source file: output.ec */
2 #if defined(_WIN32)
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
6 #else
7 #define __runtimePlatform 2
8 #endif
9 #if defined(__GNUC__)
10 typedef long long int64;
11 typedef unsigned long long uint64;
12 #ifndef _WIN32
13 #define __declspec(x)
14 #endif
15 #elif defined(__TINYC__)
16 #include <stdarg.h>
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
20 #ifdef _WIN32
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
24 #else
25 #define __declspec(x)
26 #endif
27 typedef long long int64;
28 typedef unsigned long long uint64;
29 #else
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
32 #endif
33 #ifdef __BIG_ENDIAN__
34 #define __ENDIAN_PAD(x) (8 - (x))
35 #else
36 #define __ENDIAN_PAD(x) 0
37 #endif
38 #if defined(_WIN32)
39 #   if defined(__GNUC__) || defined(__TINYC__)
40 #      define ecere_stdcall __attribute__((__stdcall__))
41 #      define ecere_gcc_struct __attribute__((gcc_struct))
42 #   else
43 #      define ecere_stdcall __stdcall
44 #      define ecere_gcc_struct
45 #   endif
46 #else
47 #   define ecere_stdcall
48 #   define ecere_gcc_struct
49 #endif
50 #include <stdint.h>
51 #include <sys/types.h>
52 enum yytokentype
53 {
54 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, INT128 = 294, LONG = 295, SIGNED = 296, UNSIGNED = 297, FLOAT = 298, DOUBLE = 299, CONST = 300, VOLATILE = 301, VOID = 302, VALIST = 303, STRUCT = 304, UNION = 305, ENUM = 306, ELLIPSIS = 307, CASE = 308, DEFAULT = 309, IF = 310, SWITCH = 311, WHILE = 312, DO = 313, FOR = 314, GOTO = 315, CONTINUE = 316, BREAK = 317, RETURN = 318, IFX = 319, ELSE = 320, CLASS = 321, THISCLASS = 322, CLASS_NAME = 323, PROPERTY = 324, SETPROP = 325, GETPROP = 326, NEWOP = 327, RENEW = 328, DELETE = 329, EXT_DECL = 330, EXT_STORAGE = 331, IMPORT = 332, DEFINE = 333, VIRTUAL = 334, ATTRIB = 335, PUBLIC = 336, PRIVATE = 337, TYPED_OBJECT = 338, ANY_OBJECT = 339, _INCREF = 340, EXTENSION = 341, ASM = 342, TYPEOF = 343, WATCH = 344, STOPWATCHING = 345, FIREWATCHERS = 346, WATCHABLE = 347, CLASS_DESIGNER = 348, CLASS_NO_EXPANSION = 349, CLASS_FIXED = 350, ISPROPSET = 351, CLASS_DEFAULT_PROPERTY = 352, PROPERTY_CATEGORY = 353, CLASS_DATA = 354, CLASS_PROPERTY = 355, SUBCLASS = 356, NAMESPACE = 357, NEW0OP = 358, RENEW0 = 359, VAARG = 360, DBTABLE = 361, DBFIELD = 362, DBINDEX = 363, DATABASE_OPEN = 364, ALIGNOF = 365, ATTRIB_DEP = 366, __ATTRIB = 367, BOOL = 368, _BOOL = 369, _COMPLEX = 370, _IMAGINARY = 371, RESTRICT = 372, THREAD = 373, WIDE_STRING_LITERAL = 374, BUILTIN_OFFSETOF = 375
55 };
56
57 int outputLine;
58
59 unsigned int memoryGuard = 0;
60
61 extern unsigned int inCompiler;
62
63 extern unsigned int outputLineNumbers;
64
65 extern const char *  sourceFile;
66
67 extern const char *  outputFile;
68
69 struct __ecereNameSpace__ecere__sys__OldList
70 {
71 void *  first;
72 void *  last;
73 int count;
74 unsigned int offset;
75 unsigned int circ;
76 } ecere_gcc_struct;
77
78 struct __ecereNameSpace__ecere__sys__BTNode;
79
80 struct __ecereNameSpace__ecere__com__DataValue
81 {
82 union
83 {
84 char c;
85 unsigned char uc;
86 short s;
87 unsigned short us;
88 int i;
89 unsigned int ui;
90 void *  p;
91 float f;
92 double d;
93 long long i64;
94 uint64 ui64;
95 } ecere_gcc_struct __anon1;
96 } ecere_gcc_struct;
97
98 struct __ecereNameSpace__ecere__com__SerialBuffer
99 {
100 unsigned char *  _buffer;
101 unsigned int count;
102 unsigned int _size;
103 unsigned int pos;
104 } ecere_gcc_struct;
105
106 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
107
108 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
109
110 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
111
112 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
113
114 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
115
116 struct Context;
117
118 struct PropertyDef;
119
120 struct PropertyWatch;
121
122 struct TemplateArgument;
123
124 struct DBTableEntry;
125
126 struct DBIndexItem;
127
128 struct DBTableDef;
129
130 struct CodePosition
131 {
132 int line;
133 int charPos;
134 int pos;
135 int included;
136 } ecere_gcc_struct;
137
138 extern int strcmp(const char * , const char * );
139
140 extern char *  GetIncludeFileFromID(int id);
141
142 extern char *  strchr(const char * , int);
143
144 extern char *  __ecereNameSpace__ecere__sys__StripLastDirectory(const char *  string, char *  output);
145
146 extern char *  __ecereNameSpace__ecere__sys__PathCat(char *  string, const char *  addedPath);
147
148 extern void __ecereNameSpace__ecere__sys__ChangeCh(char *  string, char ch1, char ch2);
149
150 extern char *  strcpy(char * , const char * );
151
152 struct ModuleImport;
153
154 struct ClassImport;
155
156 struct __ecereNameSpace__ecere__com__LinkList
157 {
158 void * first;
159 void * last;
160 int count;
161 } ecere_gcc_struct;
162
163 extern char *  __ecereNameSpace__ecere__sys__TrimRSpaces(const char *  string, char *  output);
164
165 struct __ecereNameSpace__ecere__com__GlobalFunction;
166
167 void SetMemoryGuard(unsigned int b)
168 {
169 memoryGuard = b;
170 }
171
172 unsigned int GetMemoryGuard()
173 {
174 return memoryGuard;
175 }
176
177 extern struct __ecereNameSpace__ecere__sys__OldList *  MkList(void);
178
179 extern struct __ecereNameSpace__ecere__sys__OldList *  CopyList(struct __ecereNameSpace__ecere__sys__OldList *  source, void *  (*  CopyFunction)(void * ));
180
181 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void *  item);
182
183 struct Location
184 {
185 struct CodePosition start;
186 struct CodePosition end;
187 } ecere_gcc_struct;
188
189 static void GetSourceName(char * name, const char * src)
190 {
191 name[0] = 0;
192 if(src)
193 {
194 if(!strchr(src, '/') && !strchr(src, '\\'))
195 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
196 __ecereNameSpace__ecere__sys__PathCat(name, src);
197 }
198 else if(sourceFile)
199 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
200 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
201 }
202
203 extern struct Location yylloc;
204
205 struct Attrib
206 {
207 struct Location loc;
208 int type;
209 struct __ecereNameSpace__ecere__sys__OldList *  attribs;
210 } ecere_gcc_struct;
211
212 struct ExtDecl
213 {
214 struct Location loc;
215 int type;
216 union
217 {
218 char * s;
219 struct Attrib * attr;
220 } ecere_gcc_struct __anon1;
221 } ecere_gcc_struct;
222
223 struct Expression;
224
225 extern void ProcessExpressionType(struct Expression * exp);
226
227 extern void ComputeExpression(struct Expression * exp);
228
229 struct FunctionDefinition;
230
231 static struct FunctionDefinition * curFunction;
232
233 struct __ecereNameSpace__ecere__com__Class;
234
235 struct __ecereNameSpace__ecere__com__Instance
236 {
237 void * *  _vTbl;
238 struct __ecereNameSpace__ecere__com__Class * _class;
239 int _refCount;
240 } ecere_gcc_struct;
241
242 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
243
244 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
245
246 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
247
248 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
249
250 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
251
252 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
253
254 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
255
256 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, const char *  format, ...);
257
258 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
259
260 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
261
262 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
263
264 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
265
266 struct Identifier;
267
268 extern struct Identifier * MkIdentifier(const char *  string);
269
270 struct Specifier;
271
272 extern struct Specifier * CopySpecifier(struct Specifier * spec);
273
274 extern struct Specifier * MkSpecifierName(const char *  name);
275
276 struct Declarator;
277
278 extern struct Declarator * SpecDeclFromString(const char *  string, struct __ecereNameSpace__ecere__sys__OldList *  specs, struct Declarator * baseDecl);
279
280 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
281
282 struct TemplateDatatype
283 {
284 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
285 struct Declarator * decl;
286 } ecere_gcc_struct;
287
288 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
289
290 extern struct Identifier * GetDeclId(struct Declarator * decl);
291
292 struct Type;
293
294 extern void PrintType(struct Type * type, char *  string, unsigned int printName, unsigned int fullName);
295
296 struct TypeName;
297
298 struct TypeName
299 {
300 struct TypeName * prev;
301 struct TypeName * next;
302 struct Location loc;
303 struct __ecereNameSpace__ecere__sys__OldList *  qualifiers;
304 struct Declarator * declarator;
305 int classObjectType;
306 struct Expression * bitCount;
307 } ecere_gcc_struct;
308
309 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
310
311 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
312
313 extern void FreeTypeName(struct TypeName * typeName);
314
315 struct Symbol;
316
317 struct Identifier
318 {
319 struct Identifier * prev;
320 struct Identifier * next;
321 struct Location loc;
322 struct Symbol * classSym;
323 struct Specifier * _class;
324 char *  string;
325 struct Identifier * badID;
326 } ecere_gcc_struct;
327
328 extern struct Symbol * FindClass(const char *  name);
329
330 struct __ecereNameSpace__ecere__sys__BinaryTree;
331
332 struct __ecereNameSpace__ecere__sys__BinaryTree
333 {
334 struct __ecereNameSpace__ecere__sys__BTNode * root;
335 int count;
336 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
337 void (*  FreeKey)(void *  key);
338 } ecere_gcc_struct;
339
340 struct Pointer;
341
342 struct Pointer
343 {
344 struct Pointer * prev;
345 struct Pointer * next;
346 struct Location loc;
347 struct __ecereNameSpace__ecere__sys__OldList *  qualifiers;
348 struct Pointer * pointer;
349 } ecere_gcc_struct;
350
351 struct Declarator
352 {
353 struct Declarator * prev;
354 struct Declarator * next;
355 struct Location loc;
356 int type;
357 struct Symbol * symbol;
358 struct Declarator * declarator;
359 union
360 {
361 struct Identifier * identifier;
362 struct
363 {
364 struct Expression * exp;
365 struct Expression * posExp;
366 struct Attrib * attrib;
367 } ecere_gcc_struct structDecl;
368 struct
369 {
370 struct Expression * exp;
371 struct Specifier * enumClass;
372 } ecere_gcc_struct array;
373 struct
374 {
375 struct __ecereNameSpace__ecere__sys__OldList * parameters;
376 } ecere_gcc_struct function;
377 struct
378 {
379 struct Pointer * pointer;
380 } ecere_gcc_struct pointer;
381 struct
382 {
383 struct ExtDecl * extended;
384 } ecere_gcc_struct extended;
385 } ecere_gcc_struct __anon1;
386 } ecere_gcc_struct;
387
388 struct MemberInit;
389
390 struct MembersInit;
391
392 struct Attribute;
393
394 struct Attribute
395 {
396 struct Attribute * prev;
397 struct Attribute * next;
398 struct Location loc;
399 char * attr;
400 struct Expression * exp;
401 } ecere_gcc_struct;
402
403 struct __ecereNameSpace__ecere__com__DataMember;
404
405 struct __ecereNameSpace__ecere__com__DataMember
406 {
407 struct __ecereNameSpace__ecere__com__DataMember * prev;
408 struct __ecereNameSpace__ecere__com__DataMember * next;
409 const char *  name;
410 unsigned int isProperty;
411 int memberAccess;
412 int id;
413 struct __ecereNameSpace__ecere__com__Class * _class;
414 const char *  dataTypeString;
415 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
416 struct Type * dataType;
417 int type;
418 int offset;
419 int memberID;
420 struct __ecereNameSpace__ecere__sys__OldList members;
421 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
422 int memberOffset;
423 short structAlignment;
424 short pointerAlignment;
425 } ecere_gcc_struct;
426
427 struct __ecereNameSpace__ecere__com__Property;
428
429 struct __ecereNameSpace__ecere__com__Property
430 {
431 struct __ecereNameSpace__ecere__com__Property * prev;
432 struct __ecereNameSpace__ecere__com__Property * next;
433 const char *  name;
434 unsigned int isProperty;
435 int memberAccess;
436 int id;
437 struct __ecereNameSpace__ecere__com__Class * _class;
438 const char *  dataTypeString;
439 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
440 struct Type * dataType;
441 void (*  Set)(void * , int);
442 int (*  Get)(void * );
443 unsigned int (*  IsSet)(void * );
444 void *  data;
445 void *  symbol;
446 int vid;
447 unsigned int conversion;
448 unsigned int watcherOffset;
449 const char *  category;
450 unsigned int compiled;
451 unsigned int selfWatchable;
452 unsigned int isWatchable;
453 } ecere_gcc_struct;
454
455 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
456
457 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);
458
459 extern void __ecereNameSpace__ecere__com__eInstance_Watch(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
460
461 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
462
463 struct __ecereNameSpace__ecere__com__Module;
464
465 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);
466
467 struct AsmField;
468
469 struct AsmField
470 {
471 struct AsmField * prev;
472 struct AsmField * next;
473 struct Location loc;
474 char *  command;
475 struct Expression * expression;
476 struct Identifier * symbolic;
477 } ecere_gcc_struct;
478
479 struct Enumerator;
480
481 struct Enumerator
482 {
483 struct Enumerator * prev;
484 struct Enumerator * next;
485 struct Location loc;
486 struct Identifier * id;
487 struct Expression * exp;
488 } ecere_gcc_struct;
489
490 struct ClassDef;
491
492 struct Initializer;
493
494 struct Initializer
495 {
496 struct Initializer * prev;
497 struct Initializer * next;
498 struct Location loc;
499 int type;
500 union
501 {
502 struct Expression * exp;
503 struct __ecereNameSpace__ecere__sys__OldList *  list;
504 } ecere_gcc_struct __anon1;
505 unsigned int isConstant;
506 struct Identifier * id;
507 } ecere_gcc_struct;
508
509 struct MemberInit
510 {
511 struct MemberInit * prev;
512 struct MemberInit * next;
513 struct Location loc;
514 struct Location realLoc;
515 struct __ecereNameSpace__ecere__sys__OldList *  identifiers;
516 struct Initializer * initializer;
517 unsigned int used;
518 unsigned int variable;
519 unsigned int takeOutExp;
520 } ecere_gcc_struct;
521
522 struct Statement;
523
524 struct FunctionDefinition
525 {
526 struct FunctionDefinition * prev;
527 struct FunctionDefinition * next;
528 struct Location loc;
529 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
530 struct Declarator * declarator;
531 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
532 struct Statement * body;
533 struct __ecereNameSpace__ecere__com__Class * _class;
534 struct __ecereNameSpace__ecere__sys__OldList attached;
535 int declMode;
536 struct Type * type;
537 struct Symbol * propSet;
538 int tempCount;
539 unsigned int propertyNoThis;
540 } ecere_gcc_struct;
541
542 struct __ecereNameSpace__ecere__com__Method;
543
544 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
545 {
546 union
547 {
548 struct
549 {
550 const char *  dataTypeString;
551 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
552 } ecere_gcc_struct __anon1;
553 struct __ecereNameSpace__ecere__com__DataValue expression;
554 struct
555 {
556 const char *  memberString;
557 union
558 {
559 struct __ecereNameSpace__ecere__com__DataMember * member;
560 struct __ecereNameSpace__ecere__com__Property * prop;
561 struct __ecereNameSpace__ecere__com__Method * method;
562 } ecere_gcc_struct __anon1;
563 } ecere_gcc_struct __anon2;
564 } ecere_gcc_struct __anon1;
565 } ecere_gcc_struct;
566
567 struct __ecereNameSpace__ecere__com__Method
568 {
569 const char *  name;
570 struct __ecereNameSpace__ecere__com__Method * parent;
571 struct __ecereNameSpace__ecere__com__Method * left;
572 struct __ecereNameSpace__ecere__com__Method * right;
573 int depth;
574 int (*  function)();
575 int vid;
576 int type;
577 struct __ecereNameSpace__ecere__com__Class * _class;
578 void *  symbol;
579 const char *  dataTypeString;
580 struct Type * dataType;
581 int memberAccess;
582 } ecere_gcc_struct;
583
584 struct TemplateParameter;
585
586 struct Specifier
587 {
588 struct Specifier * prev;
589 struct Specifier * next;
590 struct Location loc;
591 int type;
592 union
593 {
594 int specifier;
595 struct
596 {
597 struct ExtDecl * extDecl;
598 char *  name;
599 struct Symbol * symbol;
600 struct __ecereNameSpace__ecere__sys__OldList *  templateArgs;
601 struct Specifier * nsSpec;
602 } ecere_gcc_struct __anon1;
603 struct
604 {
605 struct Identifier * id;
606 struct __ecereNameSpace__ecere__sys__OldList *  list;
607 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
608 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
609 unsigned int addNameSpace;
610 struct Context * ctx;
611 struct ExtDecl * extDeclStruct;
612 } ecere_gcc_struct __anon2;
613 struct Expression * expression;
614 struct Specifier * _class;
615 struct TemplateParameter * templateParameter;
616 } ecere_gcc_struct __anon1;
617 } ecere_gcc_struct;
618
619 struct TemplateParameter
620 {
621 struct TemplateParameter * prev;
622 struct TemplateParameter * next;
623 struct Location loc;
624 int type;
625 struct Identifier * identifier;
626 union
627 {
628 struct TemplateDatatype * dataType;
629 int memberType;
630 } ecere_gcc_struct __anon1;
631 struct TemplateArgument * defaultArgument;
632 const char *  dataTypeString;
633 struct Type * baseType;
634 } ecere_gcc_struct;
635
636 struct Type
637 {
638 struct Type * prev;
639 struct Type * next;
640 int refCount;
641 union
642 {
643 struct Symbol * _class;
644 struct
645 {
646 struct __ecereNameSpace__ecere__sys__OldList members;
647 char *  enumName;
648 } ecere_gcc_struct __anon1;
649 struct
650 {
651 struct Type * returnType;
652 struct __ecereNameSpace__ecere__sys__OldList params;
653 struct Symbol * thisClass;
654 unsigned int staticMethod;
655 struct TemplateParameter * thisClassTemplate;
656 } ecere_gcc_struct __anon2;
657 struct
658 {
659 struct __ecereNameSpace__ecere__com__Method * method;
660 struct __ecereNameSpace__ecere__com__Class * methodClass;
661 struct __ecereNameSpace__ecere__com__Class * usedClass;
662 } ecere_gcc_struct __anon3;
663 struct
664 {
665 struct Type * arrayType;
666 int arraySize;
667 struct Expression * arraySizeExp;
668 unsigned int freeExp;
669 struct Symbol * enumClass;
670 } ecere_gcc_struct __anon4;
671 struct Type * type;
672 struct TemplateParameter * templateParameter;
673 } ecere_gcc_struct __anon1;
674 int kind;
675 unsigned int size;
676 char *  name;
677 char *  typeName;
678 struct __ecereNameSpace__ecere__com__Class * thisClassFrom;
679 int promotedFrom;
680 int classObjectType;
681 int alignment;
682 unsigned int offset;
683 int bitFieldCount;
684 int count;
685 int bitMemberSize;
686 unsigned int isSigned : 1;
687 unsigned int constant : 1;
688 unsigned int truth : 1;
689 unsigned int byReference : 1;
690 unsigned int extraParam : 1;
691 unsigned int directClassAccess : 1;
692 unsigned int computing : 1;
693 unsigned int keepCast : 1;
694 unsigned int passAsTemplate : 1;
695 unsigned int dllExport : 1;
696 unsigned int attrStdcall : 1;
697 unsigned int declaredWithStruct : 1;
698 unsigned int typedByReference : 1;
699 unsigned int casted : 1;
700 unsigned int pointerAlignment : 1;
701 unsigned int isLong : 1;
702 unsigned int signedBeforePromotion : 1;
703 unsigned int isVector : 1;
704 } ecere_gcc_struct;
705
706 struct Declaration;
707
708 struct Statement
709 {
710 struct Statement * prev;
711 struct Statement * next;
712 struct Location loc;
713 int type;
714 union
715 {
716 struct __ecereNameSpace__ecere__sys__OldList *  expressions;
717 struct
718 {
719 struct Identifier * id;
720 struct Statement * stmt;
721 } ecere_gcc_struct labeled;
722 struct
723 {
724 struct Expression * exp;
725 struct Statement * stmt;
726 } ecere_gcc_struct caseStmt;
727 struct
728 {
729 struct __ecereNameSpace__ecere__sys__OldList * declarations;
730 struct __ecereNameSpace__ecere__sys__OldList * statements;
731 struct Context * context;
732 unsigned int isSwitch;
733 } ecere_gcc_struct compound;
734 struct
735 {
736 struct __ecereNameSpace__ecere__sys__OldList * exp;
737 struct Statement * stmt;
738 struct Statement * elseStmt;
739 } ecere_gcc_struct ifStmt;
740 struct
741 {
742 struct __ecereNameSpace__ecere__sys__OldList * exp;
743 struct Statement * stmt;
744 } ecere_gcc_struct switchStmt;
745 struct
746 {
747 struct __ecereNameSpace__ecere__sys__OldList * exp;
748 struct Statement * stmt;
749 } ecere_gcc_struct whileStmt;
750 struct
751 {
752 struct __ecereNameSpace__ecere__sys__OldList * exp;
753 struct Statement * stmt;
754 } ecere_gcc_struct doWhile;
755 struct
756 {
757 struct Statement * init;
758 struct Statement * check;
759 struct __ecereNameSpace__ecere__sys__OldList * increment;
760 struct Statement * stmt;
761 } ecere_gcc_struct forStmt;
762 struct
763 {
764 struct Identifier * id;
765 } ecere_gcc_struct gotoStmt;
766 struct
767 {
768 struct Specifier * spec;
769 char * statements;
770 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
771 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
772 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
773 } ecere_gcc_struct asmStmt;
774 struct
775 {
776 struct Expression * watcher;
777 struct Expression * object;
778 struct __ecereNameSpace__ecere__sys__OldList * watches;
779 } ecere_gcc_struct _watch;
780 struct
781 {
782 struct Identifier * id;
783 struct __ecereNameSpace__ecere__sys__OldList * exp;
784 struct __ecereNameSpace__ecere__sys__OldList * filter;
785 struct Statement * stmt;
786 } ecere_gcc_struct forEachStmt;
787 struct Declaration * decl;
788 } ecere_gcc_struct __anon1;
789 } ecere_gcc_struct;
790
791 struct Instantiation;
792
793 struct Expression
794 {
795 struct Expression * prev;
796 struct Expression * next;
797 struct Location loc;
798 int type;
799 union
800 {
801 struct
802 {
803 char *  constant;
804 struct Identifier * identifier;
805 } ecere_gcc_struct __anon1;
806 struct Statement * compound;
807 struct Instantiation * instance;
808 struct
809 {
810 char *  string;
811 unsigned int intlString;
812 unsigned int wideString;
813 } ecere_gcc_struct __anon2;
814 struct __ecereNameSpace__ecere__sys__OldList *  list;
815 struct
816 {
817 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
818 struct Declarator * decl;
819 } ecere_gcc_struct _classExp;
820 struct
821 {
822 struct Identifier * id;
823 } ecere_gcc_struct classData;
824 struct
825 {
826 struct Expression * exp;
827 struct __ecereNameSpace__ecere__sys__OldList * arguments;
828 struct Location argLoc;
829 } ecere_gcc_struct call;
830 struct
831 {
832 struct Expression * exp;
833 struct __ecereNameSpace__ecere__sys__OldList * index;
834 } ecere_gcc_struct index;
835 struct
836 {
837 struct Expression * exp;
838 struct Identifier * member;
839 int memberType;
840 unsigned int thisPtr;
841 } ecere_gcc_struct member;
842 struct
843 {
844 int op;
845 struct Expression * exp1;
846 struct Expression * exp2;
847 } ecere_gcc_struct op;
848 struct TypeName * typeName;
849 struct Specifier * _class;
850 struct
851 {
852 struct TypeName * typeName;
853 struct Expression * exp;
854 } ecere_gcc_struct cast;
855 struct
856 {
857 struct Expression * cond;
858 struct __ecereNameSpace__ecere__sys__OldList * exp;
859 struct Expression * elseExp;
860 } ecere_gcc_struct cond;
861 struct
862 {
863 struct TypeName * typeName;
864 struct Expression * size;
865 } ecere_gcc_struct _new;
866 struct
867 {
868 struct TypeName * typeName;
869 struct Expression * size;
870 struct Expression * exp;
871 } ecere_gcc_struct _renew;
872 struct
873 {
874 char * table;
875 struct Identifier * id;
876 } ecere_gcc_struct db;
877 struct
878 {
879 struct Expression * ds;
880 struct Expression * name;
881 } ecere_gcc_struct dbopen;
882 struct
883 {
884 struct TypeName * typeName;
885 struct Initializer * initializer;
886 } ecere_gcc_struct initializer;
887 struct
888 {
889 struct Expression * exp;
890 struct TypeName * typeName;
891 } ecere_gcc_struct vaArg;
892 struct
893 {
894 struct TypeName * typeName;
895 struct Identifier * id;
896 } ecere_gcc_struct offset;
897 } ecere_gcc_struct __anon1;
898 unsigned int debugValue;
899 struct __ecereNameSpace__ecere__com__DataValue val;
900 uint64 address;
901 unsigned int hasAddress;
902 struct Type * expType;
903 struct Type * destType;
904 unsigned int usage;
905 int tempCount;
906 unsigned int byReference;
907 unsigned int isConstant;
908 unsigned int addedThis;
909 unsigned int needCast;
910 unsigned int thisPtr;
911 unsigned int opDestType;
912 unsigned int usedInComparison;
913 unsigned int ambiguousUnits;
914 unsigned int parentOpDestType;
915 unsigned int needTemplateCast;
916 } ecere_gcc_struct;
917
918 struct Declaration
919 {
920 struct Declaration * prev;
921 struct Declaration * next;
922 struct Location loc;
923 int type;
924 union
925 {
926 struct
927 {
928 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
929 struct __ecereNameSpace__ecere__sys__OldList *  declarators;
930 } ecere_gcc_struct __anon1;
931 struct Instantiation * inst;
932 struct
933 {
934 struct Identifier * id;
935 struct Expression * exp;
936 } ecere_gcc_struct __anon2;
937 } ecere_gcc_struct __anon1;
938 struct Specifier * extStorage;
939 struct Symbol * symbol;
940 int declMode;
941 } ecere_gcc_struct;
942
943 struct Instantiation
944 {
945 struct Instantiation * prev;
946 struct Instantiation * next;
947 struct Location loc;
948 struct Specifier * _class;
949 struct Expression * exp;
950 struct __ecereNameSpace__ecere__sys__OldList *  members;
951 struct Symbol * symbol;
952 unsigned int fullSet;
953 unsigned int isConstant;
954 unsigned char *  data;
955 struct Location nameLoc;
956 struct Location insideLoc;
957 unsigned int built;
958 } ecere_gcc_struct;
959
960 struct ClassDefinition;
961
962 struct ClassDefinition
963 {
964 struct ClassDefinition * prev;
965 struct ClassDefinition * next;
966 struct Location loc;
967 struct Specifier * _class;
968 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
969 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
970 struct Symbol * symbol;
971 struct Location blockStart;
972 struct Location nameLoc;
973 int declMode;
974 unsigned int deleteWatchable;
975 } ecere_gcc_struct;
976
977 struct __ecereNameSpace__ecere__com__NameSpace;
978
979 struct __ecereNameSpace__ecere__com__NameSpace
980 {
981 const char *  name;
982 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
983 struct __ecereNameSpace__ecere__com__NameSpace *  left;
984 struct __ecereNameSpace__ecere__com__NameSpace *  right;
985 int depth;
986 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
987 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
988 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
989 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
990 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
991 } ecere_gcc_struct;
992
993 struct __ecereNameSpace__ecere__com__Class
994 {
995 struct __ecereNameSpace__ecere__com__Class * prev;
996 struct __ecereNameSpace__ecere__com__Class * next;
997 const char *  name;
998 int offset;
999 int structSize;
1000 void * *  _vTbl;
1001 int vTblSize;
1002 unsigned int (*  Constructor)(void * );
1003 void (*  Destructor)(void * );
1004 int offsetClass;
1005 int sizeClass;
1006 struct __ecereNameSpace__ecere__com__Class * base;
1007 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
1008 struct __ecereNameSpace__ecere__sys__BinaryTree members;
1009 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
1010 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
1011 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
1012 struct __ecereNameSpace__ecere__sys__OldList derivatives;
1013 int memberID;
1014 int startMemberID;
1015 int type;
1016 struct __ecereNameSpace__ecere__com__Instance * module;
1017 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
1018 const char *  dataTypeString;
1019 struct Type * dataType;
1020 int typeSize;
1021 int defaultAlignment;
1022 void (*  Initialize)();
1023 int memberOffset;
1024 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
1025 const char *  designerClass;
1026 unsigned int noExpansion;
1027 const char *  defaultProperty;
1028 unsigned int comRedefinition;
1029 int count;
1030 int isRemote;
1031 unsigned int internalDecl;
1032 void *  data;
1033 unsigned int computeSize;
1034 short structAlignment;
1035 short pointerAlignment;
1036 int destructionWatchOffset;
1037 unsigned int fixed;
1038 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
1039 int inheritanceAccess;
1040 const char *  fullName;
1041 void *  symbol;
1042 struct __ecereNameSpace__ecere__sys__OldList conversions;
1043 struct __ecereNameSpace__ecere__sys__OldList templateParams;
1044 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
1045 struct __ecereNameSpace__ecere__com__Class * templateClass;
1046 struct __ecereNameSpace__ecere__sys__OldList templatized;
1047 int numParams;
1048 unsigned int isInstanceClass;
1049 unsigned int byValueSystemClass;
1050 void *  bindingsClass;
1051 } ecere_gcc_struct;
1052
1053 struct __ecereNameSpace__ecere__com__Application
1054 {
1055 int argc;
1056 const char * *  argv;
1057 int exitCode;
1058 unsigned int isGUIApp;
1059 struct __ecereNameSpace__ecere__sys__OldList allModules;
1060 char *  parsedCommand;
1061 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1062 } ecere_gcc_struct;
1063
1064 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
1065
1066 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
1067
1068 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1069
1070 struct __ecereNameSpace__ecere__com__Module
1071 {
1072 struct __ecereNameSpace__ecere__com__Instance * application;
1073 struct __ecereNameSpace__ecere__sys__OldList classes;
1074 struct __ecereNameSpace__ecere__sys__OldList defines;
1075 struct __ecereNameSpace__ecere__sys__OldList functions;
1076 struct __ecereNameSpace__ecere__sys__OldList modules;
1077 struct __ecereNameSpace__ecere__com__Instance * prev;
1078 struct __ecereNameSpace__ecere__com__Instance * next;
1079 const char *  name;
1080 void *  library;
1081 void *  Unload;
1082 int importType;
1083 int origImportType;
1084 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1085 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1086 } ecere_gcc_struct;
1087
1088 static void OutputIdentifier(struct Identifier * id, struct __ecereNameSpace__ecere__com__Instance * f)
1089 {
1090 if(id)
1091 {
1092 if(id->_class)
1093 {
1094 if(id->_class->type == 8)
1095 {
1096 if(id->_class->__anon1.templateParameter && id->_class->__anon1.templateParameter->identifier && id->_class->__anon1.templateParameter->identifier->string)
1097 (__extension__ ({
1098 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1099
1100 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1101 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1102
1103 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1104 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1105 __internal_VirtualMethod ? __internal_VirtualMethod(f, id->_class->__anon1.templateParameter->identifier->string) : (unsigned int)1;
1106 }));
1107 }
1108 else
1109 {
1110 if(id->_class->__anon1.__anon1.name)
1111 {
1112 if(!strcmp(id->_class->__anon1.__anon1.name, "class"))
1113 (__extension__ ({
1114 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1115
1116 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1117 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1118
1119 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1120 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1121 __internal_VirtualMethod ? __internal_VirtualMethod(f, "typed_object") : (unsigned int)1;
1122 }));
1123 else
1124 (__extension__ ({
1125 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1126
1127 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1128 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1129
1130 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1131 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1132 __internal_VirtualMethod ? __internal_VirtualMethod(f, id->_class->__anon1.__anon1.name) : (unsigned int)1;
1133 }));
1134 }
1135 }
1136 (__extension__ ({
1137 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1138
1139 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1140 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1141
1142 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1143 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1144 __internal_VirtualMethod ? __internal_VirtualMethod(f, "::") : (unsigned int)1;
1145 }));
1146 }
1147 }
1148 (__extension__ ({
1149 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1150
1151 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1152 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1153
1154 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1155 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1156 __internal_VirtualMethod ? __internal_VirtualMethod(f, (id && id->string) ? id->string : "(null identifier)") : (unsigned int)1;
1157 }));
1158 }
1159
1160 static void OutputOperator(int op, struct __ecereNameSpace__ecere__com__Instance * f)
1161 {
1162 switch(op)
1163 {
1164 case INC_OP:
1165 (__extension__ ({
1166 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1167
1168 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1169 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1170
1171 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1172 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1173 __internal_VirtualMethod ? __internal_VirtualMethod(f, "++") : (unsigned int)1;
1174 }));
1175 break;
1176 case DEC_OP:
1177 (__extension__ ({
1178 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1179
1180 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1181 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1182
1183 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1184 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1185 __internal_VirtualMethod ? __internal_VirtualMethod(f, "--") : (unsigned int)1;
1186 }));
1187 break;
1188 case SIZEOF:
1189 (__extension__ ({
1190 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1191
1192 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1193 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1194
1195 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1196 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1197 __internal_VirtualMethod ? __internal_VirtualMethod(f, "sizeof ") : (unsigned int)1;
1198 }));
1199 break;
1200 case LEFT_OP:
1201 (__extension__ ({
1202 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1203
1204 __internal_VirtualMethod = ((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]);
1209 __internal_VirtualMethod ? __internal_VirtualMethod(f, "<<") : (unsigned int)1;
1210 }));
1211 break;
1212 case RIGHT_OP:
1213 (__extension__ ({
1214 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1215
1216 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1217 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1218
1219 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1220 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1221 __internal_VirtualMethod ? __internal_VirtualMethod(f, ">>") : (unsigned int)1;
1222 }));
1223 break;
1224 case LE_OP:
1225 (__extension__ ({
1226 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1227
1228 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1229 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1230
1231 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1232 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1233 __internal_VirtualMethod ? __internal_VirtualMethod(f, "<=") : (unsigned int)1;
1234 }));
1235 break;
1236 case GE_OP:
1237 (__extension__ ({
1238 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1239
1240 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1241 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1242
1243 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1244 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1245 __internal_VirtualMethod ? __internal_VirtualMethod(f, ">=") : (unsigned int)1;
1246 }));
1247 break;
1248 case EQ_OP:
1249 (__extension__ ({
1250 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1251
1252 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1253 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1254
1255 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1256 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1257 __internal_VirtualMethod ? __internal_VirtualMethod(f, "==") : (unsigned int)1;
1258 }));
1259 break;
1260 case NE_OP:
1261 (__extension__ ({
1262 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1263
1264 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1265 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1266
1267 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1268 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1269 __internal_VirtualMethod ? __internal_VirtualMethod(f, "!=") : (unsigned int)1;
1270 }));
1271 break;
1272 case AND_OP:
1273 (__extension__ ({
1274 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1275
1276 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1277 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1278
1279 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1280 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1281 __internal_VirtualMethod ? __internal_VirtualMethod(f, "&&") : (unsigned int)1;
1282 }));
1283 break;
1284 case OR_OP:
1285 (__extension__ ({
1286 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1287
1288 __internal_VirtualMethod = ((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]);
1293 __internal_VirtualMethod ? __internal_VirtualMethod(f, "||") : (unsigned int)1;
1294 }));
1295 break;
1296 case MUL_ASSIGN:
1297 (__extension__ ({
1298 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1299
1300 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1301 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1302
1303 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1304 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1305 __internal_VirtualMethod ? __internal_VirtualMethod(f, "*=") : (unsigned int)1;
1306 }));
1307 break;
1308 case DIV_ASSIGN:
1309 (__extension__ ({
1310 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1311
1312 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1313 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1314
1315 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1316 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1317 __internal_VirtualMethod ? __internal_VirtualMethod(f, "/=") : (unsigned int)1;
1318 }));
1319 break;
1320 case MOD_ASSIGN:
1321 (__extension__ ({
1322 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1323
1324 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1325 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1326
1327 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1328 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1329 __internal_VirtualMethod ? __internal_VirtualMethod(f, "%=") : (unsigned int)1;
1330 }));
1331 break;
1332 case ADD_ASSIGN:
1333 (__extension__ ({
1334 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1335
1336 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1337 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1338
1339 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1340 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1341 __internal_VirtualMethod ? __internal_VirtualMethod(f, "+=") : (unsigned int)1;
1342 }));
1343 break;
1344 case SUB_ASSIGN:
1345 (__extension__ ({
1346 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1347
1348 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1349 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1350
1351 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1352 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1353 __internal_VirtualMethod ? __internal_VirtualMethod(f, "-=") : (unsigned int)1;
1354 }));
1355 break;
1356 case LEFT_ASSIGN:
1357 (__extension__ ({
1358 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1359
1360 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1361 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1362
1363 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1364 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1365 __internal_VirtualMethod ? __internal_VirtualMethod(f, "<<=") : (unsigned int)1;
1366 }));
1367 break;
1368 case RIGHT_ASSIGN:
1369 (__extension__ ({
1370 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1371
1372 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1373 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1374
1375 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1376 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1377 __internal_VirtualMethod ? __internal_VirtualMethod(f, ">>=") : (unsigned int)1;
1378 }));
1379 break;
1380 case AND_ASSIGN:
1381 (__extension__ ({
1382 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1383
1384 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1385 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1386
1387 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1388 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1389 __internal_VirtualMethod ? __internal_VirtualMethod(f, "&=") : (unsigned int)1;
1390 }));
1391 break;
1392 case XOR_ASSIGN:
1393 (__extension__ ({
1394 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1395
1396 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1397 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1398
1399 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1400 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1401 __internal_VirtualMethod ? __internal_VirtualMethod(f, "^=") : (unsigned int)1;
1402 }));
1403 break;
1404 case OR_ASSIGN:
1405 (__extension__ ({
1406 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1407
1408 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1409 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1410
1411 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1412 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1413 __internal_VirtualMethod ? __internal_VirtualMethod(f, "|=") : (unsigned int)1;
1414 }));
1415 break;
1416 case '&':
1417 case '*':
1418 case '+':
1419 case '-':
1420 case '~':
1421 case '!':
1422 case '/':
1423 case '%':
1424 case '<':
1425 case '>':
1426 case '|':
1427 case '^':
1428 case '=':
1429 (__extension__ ({
1430 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, char ch);
1431
1432 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))__extension__ ({
1433 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1434
1435 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1436 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc]);
1437 __internal_VirtualMethod ? __internal_VirtualMethod(f, (char)op) : (unsigned int)1;
1438 }));
1439 break;
1440 case DELETE:
1441 (__extension__ ({
1442 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1443
1444 __internal_VirtualMethod = ((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]);
1449 __internal_VirtualMethod ? __internal_VirtualMethod(f, "delete ") : (unsigned int)1;
1450 }));
1451 break;
1452 }
1453 }
1454
1455 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
1456 {
1457
1458 }
1459
1460 struct ClassFunction;
1461
1462 struct ClassDef
1463 {
1464 struct ClassDef * prev;
1465 struct ClassDef * next;
1466 struct Location loc;
1467 int type;
1468 union
1469 {
1470 struct Declaration * decl;
1471 struct ClassFunction * function;
1472 struct __ecereNameSpace__ecere__sys__OldList *  defProperties;
1473 struct PropertyDef * propertyDef;
1474 struct PropertyWatch * propertyWatch;
1475 char *  designer;
1476 struct Identifier * defaultProperty;
1477 struct
1478 {
1479 struct Identifier * id;
1480 struct Initializer * initializer;
1481 } ecere_gcc_struct __anon1;
1482 } ecere_gcc_struct __anon1;
1483 int memberAccess;
1484 void *  object;
1485 } ecere_gcc_struct;
1486
1487 struct MembersInit
1488 {
1489 struct MembersInit * prev;
1490 struct MembersInit * next;
1491 struct Location loc;
1492 int type;
1493 union
1494 {
1495 struct __ecereNameSpace__ecere__sys__OldList *  dataMembers;
1496 struct ClassFunction * function;
1497 } ecere_gcc_struct __anon1;
1498 } ecere_gcc_struct;
1499
1500 struct ClassFunction
1501 {
1502 struct ClassFunction * prev;
1503 struct ClassFunction * next;
1504 struct Location loc;
1505 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1506 struct Declarator * declarator;
1507 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
1508 struct Statement * body;
1509 struct __ecereNameSpace__ecere__com__Class * _class;
1510 struct __ecereNameSpace__ecere__sys__OldList attached;
1511 int declMode;
1512 struct Type * type;
1513 struct Symbol * propSet;
1514 unsigned int isVirtual;
1515 unsigned int isConstructor;
1516 unsigned int isDestructor;
1517 unsigned int dontMangle;
1518 int id;
1519 int idCode;
1520 } ecere_gcc_struct;
1521
1522 struct InitDeclarator;
1523
1524 struct InitDeclarator
1525 {
1526 struct InitDeclarator * prev;
1527 struct InitDeclarator * next;
1528 struct Location loc;
1529 struct Declarator * declarator;
1530 struct Initializer * initializer;
1531 } ecere_gcc_struct;
1532
1533 struct External;
1534
1535 typedef union YYSTYPE
1536 {
1537 int specifierType;
1538 int i;
1539 int declMode;
1540 struct Identifier * id;
1541 struct Expression * exp;
1542 struct Specifier * specifier;
1543 struct __ecereNameSpace__ecere__sys__OldList * list;
1544 struct Enumerator * enumerator;
1545 struct Declarator * declarator;
1546 struct Pointer * pointer;
1547 struct Initializer * initializer;
1548 struct InitDeclarator * initDeclarator;
1549 struct TypeName * typeName;
1550 struct Declaration * declaration;
1551 struct Statement * stmt;
1552 struct FunctionDefinition * function;
1553 struct External * external;
1554 struct Context * context;
1555 struct AsmField * asmField;
1556 struct Attrib * attrib;
1557 struct ExtDecl * extDecl;
1558 struct Attribute * attribute;
1559 struct Instantiation * instance;
1560 struct MembersInit * membersInit;
1561 struct MemberInit * memberInit;
1562 struct ClassFunction * classFunction;
1563 struct ClassDefinition * _class;
1564 struct ClassDef * classDef;
1565 struct PropertyDef * prop;
1566 char * string;
1567 struct Symbol * symbol;
1568 struct PropertyWatch * propertyWatch;
1569 struct TemplateParameter * templateParameter;
1570 struct TemplateArgument * templateArgument;
1571 struct TemplateDatatype * templateDatatype;
1572 struct DBTableEntry * dbtableEntry;
1573 struct DBIndexItem * dbindexItem;
1574 struct DBTableDef * dbtableDef;
1575 } ecere_gcc_struct YYSTYPE;
1576
1577 extern YYSTYPE yylval;
1578
1579 struct Symbol
1580 {
1581 char *  string;
1582 struct Symbol * parent;
1583 struct Symbol * left;
1584 struct Symbol * right;
1585 int depth;
1586 struct Type * type;
1587 union
1588 {
1589 struct __ecereNameSpace__ecere__com__Method * method;
1590 struct __ecereNameSpace__ecere__com__Property * _property;
1591 struct __ecereNameSpace__ecere__com__Class * registered;
1592 } ecere_gcc_struct __anon1;
1593 unsigned int notYetDeclared;
1594 union
1595 {
1596 struct
1597 {
1598 struct External * pointerExternal;
1599 struct External * structExternal;
1600 } ecere_gcc_struct __anon1;
1601 struct
1602 {
1603 struct External * externalGet;
1604 struct External * externalSet;
1605 struct External * externalPtr;
1606 struct External * externalIsSet;
1607 } ecere_gcc_struct __anon2;
1608 struct
1609 {
1610 struct External * methodExternal;
1611 struct External * methodCodeExternal;
1612 } ecere_gcc_struct __anon3;
1613 } ecere_gcc_struct __anon2;
1614 unsigned int imported;
1615 unsigned int declaredStructSym;
1616 struct __ecereNameSpace__ecere__com__Class * _class;
1617 unsigned int declaredStruct;
1618 unsigned int needConstructor;
1619 unsigned int needDestructor;
1620 char *  constructorName;
1621 char *  structName;
1622 char *  className;
1623 char *  destructorName;
1624 struct ModuleImport * module;
1625 struct ClassImport * _import;
1626 struct Location nameLoc;
1627 unsigned int isParam;
1628 unsigned int isRemote;
1629 unsigned int isStruct;
1630 unsigned int fireWatchersDone;
1631 int declaring;
1632 unsigned int classData;
1633 unsigned int isStatic;
1634 char *  shortName;
1635 struct __ecereNameSpace__ecere__sys__OldList *  templateParams;
1636 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
1637 struct Context * ctx;
1638 int isIterator;
1639 struct Expression * propCategory;
1640 unsigned int mustRegister;
1641 } ecere_gcc_struct;
1642
1643 struct External
1644 {
1645 struct External * prev;
1646 struct External * next;
1647 struct Location loc;
1648 int type;
1649 struct Symbol * symbol;
1650 union
1651 {
1652 struct FunctionDefinition * function;
1653 struct ClassDefinition * _class;
1654 struct Declaration * declaration;
1655 char *  importString;
1656 struct Identifier * id;
1657 struct DBTableDef * table;
1658 } ecere_gcc_struct __anon1;
1659 int importType;
1660 struct External * fwdDecl;
1661 struct __ecereNameSpace__ecere__com__Instance * outgoing;
1662 struct __ecereNameSpace__ecere__com__Instance * incoming;
1663 int nonBreakableIncoming;
1664 } ecere_gcc_struct;
1665
1666 static void OutputSpecifier(struct Specifier *  spec, struct __ecereNameSpace__ecere__com__Instance *  f, unsigned int typeName);
1667
1668 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
1669 {
1670 (__extension__ ({
1671 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1672
1673 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1674 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1675
1676 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1677 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1678 __internal_VirtualMethod ? __internal_VirtualMethod(f, "*") : (unsigned int)1;
1679 }));
1680 if(ptr->qualifiers)
1681 {
1682 struct Specifier * spec;
1683
1684 (__extension__ ({
1685 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1686
1687 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1688 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1689
1690 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1691 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1692 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
1693 }));
1694 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
1695 {
1696 OutputSpecifier(spec, f, 0);
1697 if(spec->next)
1698 (__extension__ ({
1699 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1700
1701 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1702 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1703
1704 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1705 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1706 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
1707 }));
1708 }
1709 }
1710 if(ptr->pointer)
1711 {
1712 OutputPointer(ptr->pointer, f);
1713 }
1714 }
1715
1716 void OutputExpression(struct Expression *  exp, struct __ecereNameSpace__ecere__com__Instance *  f);
1717
1718 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1719 {
1720 if(field->symbolic)
1721 {
1722 (__extension__ ({
1723 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1724
1725 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1726 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1727
1728 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1729 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1730 __internal_VirtualMethod ? __internal_VirtualMethod(f, "[") : (unsigned int)1;
1731 }));
1732 OutputIdentifier(field->symbolic, f);
1733 (__extension__ ({
1734 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1735
1736 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1737 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1738
1739 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1740 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1741 __internal_VirtualMethod ? __internal_VirtualMethod(f, "]") : (unsigned int)1;
1742 }));
1743 }
1744 (__extension__ ({
1745 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1746
1747 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1748 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1749
1750 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1751 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1752 __internal_VirtualMethod ? __internal_VirtualMethod(f, field->command) : (unsigned int)1;
1753 }));
1754 if(field->expression)
1755 {
1756 (__extension__ ({
1757 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1758
1759 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1760 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1761
1762 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1763 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1764 __internal_VirtualMethod ? __internal_VirtualMethod(f, "(") : (unsigned int)1;
1765 }));
1766 OutputExpression(field->expression, f);
1767 (__extension__ ({
1768 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1769
1770 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1771 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1772
1773 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1774 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1775 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
1776 }));
1777 }
1778 }
1779
1780 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
1781 {
1782 OutputIdentifier(enumerator->id, f);
1783 if(enumerator->exp)
1784 {
1785 (__extension__ ({
1786 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1787
1788 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1789 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1790
1791 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1792 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1793 __internal_VirtualMethod ? __internal_VirtualMethod(f, " = ") : (unsigned int)1;
1794 }));
1795 OutputExpression(enumerator->exp, f);
1796 }
1797 }
1798
1799 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
1800 {
1801 if(attr->attr)
1802 (__extension__ ({
1803 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1804
1805 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1806 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1807
1808 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1809 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1810 __internal_VirtualMethod ? __internal_VirtualMethod(f, attr->attr) : (unsigned int)1;
1811 }));
1812 if(attr->exp)
1813 {
1814 (__extension__ ({
1815 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1816
1817 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1818 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1819
1820 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1821 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1822 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
1823 }));
1824 OutputExpression(attr->exp, f);
1825 }
1826 }
1827
1828 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
1829 {
1830 char name[274] = "";
1831 char origName[274] = "";
1832
1833 if(inCompiler)
1834 {
1835 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
1836 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1837 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1838 }
1839 if(initializer->type == 1)
1840 (__extension__ ({
1841 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1842
1843 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1844 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1845
1846 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1847 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1848 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
1849 }));
1850 if(initializer->id)
1851 {
1852 (__extension__ ({
1853 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1854
1855 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1856 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1857
1858 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1859 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1860 __internal_VirtualMethod ? __internal_VirtualMethod(f, ".") : (unsigned int)1;
1861 }));
1862 OutputIdentifier(initializer->id, f);
1863 (__extension__ ({
1864 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1865
1866 __internal_VirtualMethod = ((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]);
1871 __internal_VirtualMethod ? __internal_VirtualMethod(f, " =") : (unsigned int)1;
1872 }));
1873 }
1874 switch(initializer->type)
1875 {
1876 case 1:
1877 {
1878 struct Initializer * init;
1879
1880 if(initializer->id)
1881 (__extension__ ({
1882 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1883
1884 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1885 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1886
1887 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1888 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1889 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
1890 }));
1891 (__extension__ ({
1892 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1893
1894 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1895 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1896
1897 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1898 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1899 __internal_VirtualMethod ? __internal_VirtualMethod(f, "{\n") : (unsigned int)1;
1900 }));
1901 outputLine += 2;
1902 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
1903 {
1904 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
1905 outputLine += 2;
1906 }
1907 for(init = (*initializer->__anon1.list).first; init; init = init->next)
1908 {
1909 OutputInitializer(init, f);
1910 if(init->next)
1911 (__extension__ ({
1912 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1913
1914 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1915 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1916
1917 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1918 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1919 __internal_VirtualMethod ? __internal_VirtualMethod(f, init->next->type == 1 ? "," : ", ") : (unsigned int)1;
1920 }));
1921 }
1922 (__extension__ ({
1923 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1924
1925 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1926 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1927
1928 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1929 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1930 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n}") : (unsigned int)1;
1931 }));
1932 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
1933 {
1934 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
1935 outputLine += 2;
1936 }
1937 outputLine++;
1938 break;
1939 }
1940 case 0:
1941 if(initializer->id)
1942 (__extension__ ({
1943 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1944
1945 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1946 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1947
1948 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1949 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1950 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
1951 }));
1952 if(initializer->__anon1.exp)
1953 OutputExpression(initializer->__anon1.exp, f);
1954 break;
1955 }
1956 }
1957
1958 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
1959 {
1960 switch(attr->type)
1961 {
1962 case ATTRIB:
1963 (__extension__ ({
1964 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1965
1966 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1967 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1968
1969 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1970 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1971 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__attribute__((") : (unsigned int)1;
1972 }));
1973 break;
1974 case __ATTRIB:
1975 (__extension__ ({
1976 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1977
1978 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1979 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1980
1981 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1982 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1983 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__attribute((") : (unsigned int)1;
1984 }));
1985 break;
1986 case ATTRIB_DEP:
1987 (__extension__ ({
1988 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
1989
1990 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
1991 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1992
1993 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1994 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
1995 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__attribute_deprecated__((") : (unsigned int)1;
1996 }));
1997 break;
1998 }
1999 if(attr->attribs)
2000 {
2001 struct Attribute * attrib;
2002
2003 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
2004 {
2005 if(attrib->prev)
2006 (__extension__ ({
2007 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2008
2009 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2010 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2011
2012 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2013 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2014 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
2015 }));
2016 OutputAttribute(attrib, f);
2017 }
2018 }
2019 (__extension__ ({
2020 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2021
2022 __internal_VirtualMethod = ((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]);
2027 __internal_VirtualMethod ? __internal_VirtualMethod(f, "))") : (unsigned int)1;
2028 }));
2029 }
2030
2031 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
2032 {
2033 if(init->identifiers)
2034 {
2035 if((*init->identifiers).count > 1)
2036 {
2037 struct Identifier * id;
2038
2039 for(id = (*init->identifiers).first; id; id = id->next)
2040 {
2041 OutputIdentifier(id, f);
2042 if(id->next)
2043 (__extension__ ({
2044 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2045
2046 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2047 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2048
2049 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2050 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2051 __internal_VirtualMethod ? __internal_VirtualMethod(f, ".") : (unsigned int)1;
2052 }));
2053 }
2054 }
2055 else if((*init->identifiers).first)
2056 OutputIdentifier((*init->identifiers).first, f);
2057 (__extension__ ({
2058 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2059
2060 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2061 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2062
2063 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2064 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2065 __internal_VirtualMethod ? __internal_VirtualMethod(f, " =") : (unsigned int)1;
2066 }));
2067 if(init->initializer && init->initializer->type == 0)
2068 (__extension__ ({
2069 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2070
2071 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2072 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2073
2074 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2075 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2076 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2077 }));
2078 }
2079 if(init->initializer)
2080 OutputInitializer(init->initializer, f);
2081 }
2082
2083 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
2084 {
2085 if(extDecl->type == 0 && extDecl->__anon1.s)
2086 (__extension__ ({
2087 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2088
2089 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2090 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2091
2092 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2093 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2094 __internal_VirtualMethod ? __internal_VirtualMethod(f, extDecl->__anon1.s) : (unsigned int)1;
2095 }));
2096 else if(extDecl->type == 1)
2097 OutputAttrib(extDecl->__anon1.attr, f);
2098 }
2099
2100 void OutputTypeName(struct TypeName *  type, struct __ecereNameSpace__ecere__com__Instance *  f, unsigned int typeName);
2101
2102 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2103 {
2104 switch(decl->type)
2105 {
2106 case 0:
2107 if(decl->declarator)
2108 {
2109 OutputDeclarator(decl->declarator, f);
2110 }
2111 if(decl->__anon1.structDecl.exp)
2112 {
2113 (__extension__ ({
2114 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2115
2116 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2117 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2118
2119 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2120 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2121 __internal_VirtualMethod ? __internal_VirtualMethod(f, " : ") : (unsigned int)1;
2122 }));
2123 OutputExpression(decl->__anon1.structDecl.exp, f);
2124 }
2125 if(decl->__anon1.structDecl.posExp)
2126 {
2127 (__extension__ ({
2128 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2129
2130 __internal_VirtualMethod = ((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]);
2135 __internal_VirtualMethod ? __internal_VirtualMethod(f, " : ") : (unsigned int)1;
2136 }));
2137 OutputExpression(decl->__anon1.structDecl.posExp, f);
2138 }
2139 if(decl->__anon1.structDecl.attrib)
2140 {
2141 (__extension__ ({
2142 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2143
2144 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2145 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2146
2147 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2148 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2149 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2150 }));
2151 OutputAttrib(decl->__anon1.structDecl.attrib, f);
2152 }
2153 break;
2154 case 1:
2155 OutputIdentifier(decl->__anon1.identifier, f);
2156 break;
2157 case 2:
2158 (__extension__ ({
2159 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2160
2161 __internal_VirtualMethod = ((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]);
2166 __internal_VirtualMethod ? __internal_VirtualMethod(f, "(") : (unsigned int)1;
2167 }));
2168 OutputDeclarator(decl->declarator, f);
2169 (__extension__ ({
2170 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2171
2172 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2173 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2174
2175 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2176 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2177 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
2178 }));
2179 break;
2180 case 6:
2181 if(decl->__anon1.extended.extended)
2182 OutputExtDecl(decl->__anon1.extended.extended, f);
2183 (__extension__ ({
2184 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2185
2186 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2187 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2188
2189 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2190 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2191 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2192 }));
2193 OutputDeclarator(decl->declarator, f);
2194 break;
2195 case 7:
2196 OutputDeclarator(decl->declarator, f);
2197 (__extension__ ({
2198 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2199
2200 __internal_VirtualMethod = ((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]);
2205 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2206 }));
2207 if(decl->__anon1.extended.extended)
2208 OutputExtDecl(decl->__anon1.extended.extended, f);
2209 break;
2210 case 3:
2211 if(decl->declarator)
2212 {
2213 OutputDeclarator(decl->declarator, f);
2214 }
2215 (__extension__ ({
2216 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2217
2218 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2219 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2220
2221 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2222 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2223 __internal_VirtualMethod ? __internal_VirtualMethod(f, "[") : (unsigned int)1;
2224 }));
2225 if(decl->__anon1.array.exp)
2226 {
2227 ProcessExpressionType(decl->__anon1.array.exp);
2228 ComputeExpression(decl->__anon1.array.exp);
2229 OutputExpression(decl->__anon1.array.exp, f);
2230 }
2231 else if(decl->__anon1.array.enumClass)
2232 {
2233 struct Symbol * _class = decl->__anon1.array.enumClass->__anon1.__anon1.symbol;
2234
2235 if(_class && _class->__anon1.registered)
2236 {
2237 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->__anon1.registered, "enumSize"));
2238 }
2239 }
2240 (__extension__ ({
2241 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2242
2243 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2244 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2245
2246 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2247 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2248 __internal_VirtualMethod ? __internal_VirtualMethod(f, "]") : (unsigned int)1;
2249 }));
2250 break;
2251 case 4:
2252 {
2253 struct TypeName * param;
2254
2255 if(decl->declarator)
2256 OutputDeclarator(decl->declarator, f);
2257 (__extension__ ({
2258 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2259
2260 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2261 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2262
2263 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2264 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2265 __internal_VirtualMethod ? __internal_VirtualMethod(f, "(") : (unsigned int)1;
2266 }));
2267 if(decl->__anon1.function.parameters && (*decl->__anon1.function.parameters).first)
2268 {
2269 for(param = (*decl->__anon1.function.parameters).first; param; param = param->next)
2270 {
2271 OutputTypeName(param, f, 0);
2272 if(param->next)
2273 (__extension__ ({
2274 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2275
2276 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2277 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2278
2279 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2280 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2281 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
2282 }));
2283 }
2284 }
2285 (__extension__ ({
2286 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2287
2288 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2289 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2290
2291 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2292 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2293 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
2294 }));
2295 break;
2296 }
2297 case 5:
2298 if(decl->__anon1.pointer.pointer)
2299 OutputPointer(decl->__anon1.pointer.pointer, f);
2300 if(decl->declarator)
2301 {
2302 (__extension__ ({
2303 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2304
2305 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2306 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2307
2308 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2309 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2310 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2311 }));
2312 OutputDeclarator(decl->declarator, f);
2313 }
2314 break;
2315 }
2316 }
2317
2318 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
2319 {
2320 char * string;
2321 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
2322 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
2323 unsigned int size;
2324
2325 typeName->qualifiers = specs;
2326 typeName->declarator = decl;
2327 OutputTypeName(typeName, f, 1);
2328 ((typeName ? __extension__ ({
2329 void * __ecerePtrToDelete = (typeName);
2330
2331 __ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
2332 }) : 0), typeName = 0);
2333 size = (__extension__ ({
2334 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
2335
2336 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__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_GetSize]);
2341 __internal_VirtualMethod ? __internal_VirtualMethod(f) : (unsigned int)1;
2342 }));
2343 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
2344 (__extension__ ({
2345 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode);
2346
2347 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
2348 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2349
2350 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2351 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek]);
2352 __internal_VirtualMethod ? __internal_VirtualMethod(f, 0, 0) : (unsigned int)1;
2353 }));
2354 (__extension__ ({
2355 int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count);
2356
2357 __internal_VirtualMethod = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))__extension__ ({
2358 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2359
2360 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2361 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read]);
2362 __internal_VirtualMethod ? __internal_VirtualMethod(f, string, 1, (unsigned int)size) : (int)1;
2363 }));
2364 string[size] = '\0';
2365 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
2366 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
2367 return string;
2368 }
2369
2370 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2371 {
2372 if(type->qualifiers)
2373 {
2374 struct Specifier * spec;
2375
2376 for(spec = (*type->qualifiers).first; spec; spec = spec->next)
2377 {
2378 OutputSpecifier(spec, f, typeName);
2379 if(spec->next)
2380 (__extension__ ({
2381 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2382
2383 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2384 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2385
2386 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2387 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2388 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2389 }));
2390 }
2391 }
2392 if(type->declarator)
2393 {
2394 (__extension__ ({
2395 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2396
2397 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2398 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2399
2400 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2401 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2402 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2403 }));
2404 OutputDeclarator(type->declarator, f);
2405 }
2406 if(!type->qualifiers && !type->declarator)
2407 (__extension__ ({
2408 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2409
2410 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2411 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2412
2413 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2414 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2415 __internal_VirtualMethod ? __internal_VirtualMethod(f, "...") : (unsigned int)1;
2416 }));
2417 }
2418
2419 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2420 {
2421 OutputDeclarator(decl->declarator, f);
2422 if(decl->initializer)
2423 {
2424 (__extension__ ({
2425 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2426
2427 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2428 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2429
2430 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2431 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2432 __internal_VirtualMethod ? __internal_VirtualMethod(f, " =") : (unsigned int)1;
2433 }));
2434 if(decl->initializer->type == 0)
2435 (__extension__ ({
2436 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2437
2438 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2439 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2440
2441 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2442 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2443 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2444 }));
2445 OutputInitializer(decl->initializer, f);
2446 }
2447 }
2448
2449 static void OutputFunction(struct FunctionDefinition *  func, struct __ecereNameSpace__ecere__com__Instance *  f);
2450
2451 static void OutputClassDef(struct ClassDef *  def, struct __ecereNameSpace__ecere__com__Instance *  f);
2452
2453 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2454 {
2455 switch(spec->type)
2456 {
2457 case 0:
2458 switch(spec->__anon1.specifier)
2459 {
2460 case TYPEDEF:
2461 (__extension__ ({
2462 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2463
2464 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2465 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2466
2467 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2468 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2469 __internal_VirtualMethod ? __internal_VirtualMethod(f, "typedef") : (unsigned int)1;
2470 }));
2471 break;
2472 case EXTERN:
2473 (__extension__ ({
2474 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2475
2476 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2477 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2478
2479 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2480 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2481 __internal_VirtualMethod ? __internal_VirtualMethod(f, "extern") : (unsigned int)1;
2482 }));
2483 break;
2484 case STATIC:
2485 (__extension__ ({
2486 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2487
2488 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2489 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2490
2491 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2492 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2493 __internal_VirtualMethod ? __internal_VirtualMethod(f, "static") : (unsigned int)1;
2494 }));
2495 break;
2496 case AUTO:
2497 (__extension__ ({
2498 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2499
2500 __internal_VirtualMethod = ((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]);
2505 __internal_VirtualMethod ? __internal_VirtualMethod(f, "auto") : (unsigned int)1;
2506 }));
2507 break;
2508 case REGISTER:
2509 (__extension__ ({
2510 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2511
2512 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2513 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2514
2515 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2516 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2517 __internal_VirtualMethod ? __internal_VirtualMethod(f, "register") : (unsigned int)1;
2518 }));
2519 break;
2520 case THREAD:
2521 (__extension__ ({
2522 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2523
2524 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2525 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2526
2527 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2528 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2529 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__thread") : (unsigned int)1;
2530 }));
2531 break;
2532 case CONST:
2533 (__extension__ ({
2534 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2535
2536 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2537 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2538
2539 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2540 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2541 __internal_VirtualMethod ? __internal_VirtualMethod(f, "const") : (unsigned int)1;
2542 }));
2543 break;
2544 case VOLATILE:
2545 (__extension__ ({
2546 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2547
2548 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2549 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2550
2551 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2552 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2553 __internal_VirtualMethod ? __internal_VirtualMethod(f, "volatile") : (unsigned int)1;
2554 }));
2555 break;
2556 case VOID:
2557 (__extension__ ({
2558 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2559
2560 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2561 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2562
2563 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2564 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2565 __internal_VirtualMethod ? __internal_VirtualMethod(f, "void") : (unsigned int)1;
2566 }));
2567 break;
2568 case CHAR:
2569 (__extension__ ({
2570 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2571
2572 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2573 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2574
2575 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2576 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2577 __internal_VirtualMethod ? __internal_VirtualMethod(f, "char") : (unsigned int)1;
2578 }));
2579 break;
2580 case _BOOL:
2581 case BOOL:
2582 (__extension__ ({
2583 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2584
2585 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2586 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2587
2588 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2589 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2590 __internal_VirtualMethod ? __internal_VirtualMethod(f, "_Bool") : (unsigned int)1;
2591 }));
2592 break;
2593 case _COMPLEX:
2594 (__extension__ ({
2595 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2596
2597 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2598 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2599
2600 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2601 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2602 __internal_VirtualMethod ? __internal_VirtualMethod(f, "_Complex") : (unsigned int)1;
2603 }));
2604 break;
2605 case _IMAGINARY:
2606 (__extension__ ({
2607 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2608
2609 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2610 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2611
2612 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2613 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2614 __internal_VirtualMethod ? __internal_VirtualMethod(f, "_Imaginary") : (unsigned int)1;
2615 }));
2616 break;
2617 case RESTRICT:
2618 (__extension__ ({
2619 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2620
2621 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2622 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2623
2624 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2625 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2626 __internal_VirtualMethod ? __internal_VirtualMethod(f, "restrict") : (unsigned int)1;
2627 }));
2628 break;
2629 case SHORT:
2630 (__extension__ ({
2631 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2632
2633 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2634 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2635
2636 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2637 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2638 __internal_VirtualMethod ? __internal_VirtualMethod(f, "short") : (unsigned int)1;
2639 }));
2640 break;
2641 case INT:
2642 (__extension__ ({
2643 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2644
2645 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2646 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2647
2648 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2649 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2650 __internal_VirtualMethod ? __internal_VirtualMethod(f, "int") : (unsigned int)1;
2651 }));
2652 break;
2653 case UINT:
2654 (__extension__ ({
2655 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2656
2657 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2658 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2659
2660 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2661 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2662 __internal_VirtualMethod ? __internal_VirtualMethod(f, typeName ? "uint" : "unsigned int") : (unsigned int)1;
2663 }));
2664 break;
2665 case INT64:
2666 (__extension__ ({
2667 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2668
2669 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2670 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2671
2672 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2673 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2674 __internal_VirtualMethod ? __internal_VirtualMethod(f, typeName ? "int64" : "long long") : (unsigned int)1;
2675 }));
2676 break;
2677 case INT128:
2678 (__extension__ ({
2679 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2680
2681 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2682 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2683
2684 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2685 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2686 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__int128") : (unsigned int)1;
2687 }));
2688 break;
2689 case VALIST:
2690 (__extension__ ({
2691 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2692
2693 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2694 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2695
2696 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2697 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2698 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__builtin_va_list") : (unsigned int)1;
2699 }));
2700 break;
2701 case LONG:
2702 (__extension__ ({
2703 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2704
2705 __internal_VirtualMethod = ((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]);
2710 __internal_VirtualMethod ? __internal_VirtualMethod(f, "long") : (unsigned int)1;
2711 }));
2712 break;
2713 case FLOAT:
2714 (__extension__ ({
2715 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2716
2717 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2718 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2719
2720 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2721 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2722 __internal_VirtualMethod ? __internal_VirtualMethod(f, "float") : (unsigned int)1;
2723 }));
2724 break;
2725 case DOUBLE:
2726 (__extension__ ({
2727 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2728
2729 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2730 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2731
2732 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2733 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2734 __internal_VirtualMethod ? __internal_VirtualMethod(f, "double") : (unsigned int)1;
2735 }));
2736 break;
2737 case SIGNED:
2738 (__extension__ ({
2739 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2740
2741 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2742 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2743
2744 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2745 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2746 __internal_VirtualMethod ? __internal_VirtualMethod(f, "signed") : (unsigned int)1;
2747 }));
2748 break;
2749 case UNSIGNED:
2750 (__extension__ ({
2751 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2752
2753 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2754 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2755
2756 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2757 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2758 __internal_VirtualMethod ? __internal_VirtualMethod(f, "unsigned") : (unsigned int)1;
2759 }));
2760 break;
2761 case TYPED_OBJECT:
2762 (__extension__ ({
2763 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2764
2765 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2766 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2767
2768 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2769 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2770 __internal_VirtualMethod ? __internal_VirtualMethod(f, "typed_object") : (unsigned int)1;
2771 }));
2772 break;
2773 case ANY_OBJECT:
2774 (__extension__ ({
2775 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2776
2777 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2778 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2779
2780 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2781 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2782 __internal_VirtualMethod ? __internal_VirtualMethod(f, "any_object") : (unsigned int)1;
2783 }));
2784 break;
2785 case CLASS:
2786 (__extension__ ({
2787 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2788
2789 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2790 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2791
2792 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2793 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2794 __internal_VirtualMethod ? __internal_VirtualMethod(f, "class") : (unsigned int)1;
2795 }));
2796 break;
2797 case THISCLASS:
2798 (__extension__ ({
2799 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2800
2801 __internal_VirtualMethod = ((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]);
2806 __internal_VirtualMethod ? __internal_VirtualMethod(f, "thisclass") : (unsigned int)1;
2807 }));
2808 break;
2809 }
2810 break;
2811 case 5:
2812 if(spec->__anon1.__anon1.extDecl)
2813 OutputExtDecl(spec->__anon1.__anon1.extDecl, f);
2814 break;
2815 case 1:
2816 if(spec->__anon1.__anon1.name && !strcmp(spec->__anon1.__anon1.name, "class"))
2817 {
2818 (__extension__ ({
2819 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2820
2821 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2822 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2823
2824 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2825 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2826 __internal_VirtualMethod ? __internal_VirtualMethod(f, "typed_object") : (unsigned int)1;
2827 }));
2828 }
2829 else
2830 {
2831 struct Symbol * symbol = spec->__anon1.__anon1.symbol;
2832
2833 if(!symbol && spec->__anon1.__anon1.name)
2834 symbol = FindClass(spec->__anon1.__anon1.name);
2835 if(symbol)
2836 {
2837 (__extension__ ({
2838 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2839
2840 __internal_VirtualMethod = ((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]);
2845 __internal_VirtualMethod ? __internal_VirtualMethod(f, symbol->string ? symbol->string : "(null)") : (unsigned int)1;
2846 }));
2847 }
2848 else if(spec->__anon1.__anon1.name)
2849 (__extension__ ({
2850 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2851
2852 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2853 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2854
2855 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2856 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2857 __internal_VirtualMethod ? __internal_VirtualMethod(f, spec->__anon1.__anon1.name) : (unsigned int)1;
2858 }));
2859 }
2860 break;
2861 case 2:
2862 {
2863 (__extension__ ({
2864 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2865
2866 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2867 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2868
2869 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2870 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2871 __internal_VirtualMethod ? __internal_VirtualMethod(f, "enum") : (unsigned int)1;
2872 }));
2873 if(spec->__anon1.__anon2.id)
2874 {
2875 (__extension__ ({
2876 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2877
2878 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2879 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2880
2881 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2882 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2883 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2884 }));
2885 OutputIdentifier(spec->__anon1.__anon2.id, f);
2886 }
2887 if(spec->__anon1.__anon2.list)
2888 {
2889 struct Enumerator * enumerator;
2890
2891 (__extension__ ({
2892 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2893
2894 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2895 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2896
2897 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2898 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2899 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n{\n") : (unsigned int)1;
2900 }));
2901 outputLine += 2;
2902 for(enumerator = (*spec->__anon1.__anon2.list).first; enumerator; enumerator = enumerator->next)
2903 {
2904 OutputEnumerator(enumerator, f);
2905 if(enumerator->next)
2906 (__extension__ ({
2907 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2908
2909 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2910 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2911
2912 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2913 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2914 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
2915 }));
2916 }
2917 (__extension__ ({
2918 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2919
2920 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2921 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2922
2923 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2924 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2925 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n}") : (unsigned int)1;
2926 }));
2927 outputLine++;
2928 }
2929 break;
2930 }
2931 case 3:
2932 case 4:
2933 {
2934 (__extension__ ({
2935 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2936
2937 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2938 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2939
2940 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2941 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2942 __internal_VirtualMethod ? __internal_VirtualMethod(f, (spec->type == 3) ? "struct" : "union") : (unsigned int)1;
2943 }));
2944 if(spec->__anon1.__anon2.extDeclStruct)
2945 {
2946 (__extension__ ({
2947 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2948
2949 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2950 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2951
2952 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2953 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2954 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2955 }));
2956 OutputExtDecl(spec->__anon1.__anon2.extDeclStruct, f);
2957 }
2958 if(spec->__anon1.__anon2.id)
2959 {
2960 (__extension__ ({
2961 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2962
2963 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2964 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2965
2966 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2967 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2968 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
2969 }));
2970 OutputIdentifier(spec->__anon1.__anon2.id, f);
2971 }
2972 if(spec->__anon1.__anon2.definitions)
2973 {
2974 struct ClassDef * def;
2975
2976 (__extension__ ({
2977 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2978
2979 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2980 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2981
2982 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2983 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2984 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n{\n") : (unsigned int)1;
2985 }));
2986 outputLine += 2;
2987 for(def = (*spec->__anon1.__anon2.definitions).first; def; def = def->next)
2988 {
2989 OutputClassDef(def, f);
2990 }
2991 (__extension__ ({
2992 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
2993
2994 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
2995 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2996
2997 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2998 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
2999 __internal_VirtualMethod ? __internal_VirtualMethod(f, "} ecere_gcc_struct") : (unsigned int)1;
3000 }));
3001 }
3002 break;
3003 }
3004 case 6:
3005 (__extension__ ({
3006 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3007
3008 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3009 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3010
3011 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3012 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3013 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__typeof(") : (unsigned int)1;
3014 }));
3015 OutputExpression(spec->__anon1.expression, f);
3016 (__extension__ ({
3017 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3018
3019 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3020 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3021
3022 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3023 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3024 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
3025 }));
3026 break;
3027 case 7:
3028 (__extension__ ({
3029 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3030
3031 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3032 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3033
3034 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3035 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3036 __internal_VirtualMethod ? __internal_VirtualMethod(f, "subclass(") : (unsigned int)1;
3037 }));
3038 OutputSpecifier(spec->__anon1._class, f, 0);
3039 (__extension__ ({
3040 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3041
3042 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3043 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3044
3045 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3046 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3047 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
3048 }));
3049 break;
3050 case 8:
3051 OutputIdentifier(spec->__anon1.templateParameter->identifier, f);
3052 break;
3053 }
3054 }
3055
3056 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
3057 {
3058 (__extension__ ({
3059 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3060
3061 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3062 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3063
3064 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3065 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3066 __internal_VirtualMethod ? __internal_VirtualMethod(f, "class ") : (unsigned int)1;
3067 }));
3068 OutputSpecifier(_class->_class, f, 0);
3069 if(_class->baseSpecs)
3070 {
3071 struct Specifier * spec;
3072
3073 (__extension__ ({
3074 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3075
3076 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3077 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3078
3079 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3080 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3081 __internal_VirtualMethod ? __internal_VirtualMethod(f, " : ") : (unsigned int)1;
3082 }));
3083 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
3084 {
3085 OutputSpecifier(spec, f, 0);
3086 }
3087 }
3088 if(_class->definitions)
3089 {
3090 struct ClassDef * def;
3091
3092 (__extension__ ({
3093 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3094
3095 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3096 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3097
3098 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3099 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3100 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n{\n") : (unsigned int)1;
3101 }));
3102 outputLine += 2;
3103 for(def = (*_class->definitions).first; def; def = def->next)
3104 {
3105 OutputClassDef(def, f);
3106 }
3107 (__extension__ ({
3108 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3109
3110 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3111 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3112
3113 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3114 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3115 __internal_VirtualMethod ? __internal_VirtualMethod(f, "}\n") : (unsigned int)1;
3116 }));
3117 outputLine++;
3118 }
3119 else
3120 (__extension__ ({
3121 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3122
3123 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3124 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3125
3126 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3127 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3128 __internal_VirtualMethod ? __internal_VirtualMethod(f, ";") : (unsigned int)1;
3129 }));
3130 }
3131
3132 static void OutputMembersInit(struct MembersInit *  init, struct __ecereNameSpace__ecere__com__Instance *  f);
3133
3134 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
3135 {
3136 if(inst->_class)
3137 OutputSpecifier(inst->_class, f, 0);
3138 if(inst->exp)
3139 {
3140 (__extension__ ({
3141 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3142
3143 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3144 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3145
3146 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3147 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3148 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
3149 }));
3150 OutputExpression(inst->exp, f);
3151 }
3152 if(inst->members && (*inst->members).count > 1)
3153 {
3154 (__extension__ ({
3155 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3156
3157 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3158 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3159
3160 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3161 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3162 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n{\n") : (unsigned int)1;
3163 }));
3164 outputLine += 2;
3165 }
3166 else if(inst->members)
3167 (__extension__ ({
3168 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3169
3170 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3171 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3172
3173 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3174 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3175 __internal_VirtualMethod ? __internal_VirtualMethod(f, " { ") : (unsigned int)1;
3176 }));
3177 else
3178 (__extension__ ({
3179 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3180
3181 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3182 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3183
3184 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3185 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3186 __internal_VirtualMethod ? __internal_VirtualMethod(f, "{") : (unsigned int)1;
3187 }));
3188 if(inst->members)
3189 {
3190 struct MembersInit * init;
3191
3192 for(init = (*inst->members).first; init; init = init->next)
3193 {
3194 OutputMembersInit(init, f);
3195 if(init->type == 0 && init->next)
3196 {
3197 (__extension__ ({
3198 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3199
3200 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3201 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3202
3203 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3204 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3205 __internal_VirtualMethod ? __internal_VirtualMethod(f, ";\n") : (unsigned int)1;
3206 }));
3207 outputLine++;
3208 }
3209 }
3210 }
3211 if(inst->members)
3212 (__extension__ ({
3213 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3214
3215 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3216 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3217
3218 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3219 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3220 __internal_VirtualMethod ? __internal_VirtualMethod(f, " }") : (unsigned int)1;
3221 }));
3222 else
3223 (__extension__ ({
3224 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3225
3226 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3227 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3228
3229 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3230 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3231 __internal_VirtualMethod ? __internal_VirtualMethod(f, "}") : (unsigned int)1;
3232 }));
3233 }
3234
3235 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3236 {
3237 struct Specifier * spec;
3238 char origName[274];
3239 char name[274];
3240
3241 if(inCompiler)
3242 {
3243 strcpy(origName, outputFile);
3244 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3245 }
3246 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
3247 if(inCompiler && outputLineNumbers && decl->loc.start.line)
3248 {
3249 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
3250 outputLine += 2;
3251 }
3252 switch(decl->type)
3253 {
3254 case 1:
3255 {
3256 struct InitDeclarator * d;
3257
3258 if(decl->__anon1.__anon1.specifiers)
3259 {
3260 unsigned int inTypeDef = 0;
3261
3262 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
3263 {
3264 if(spec->type == 0 && spec->__anon1.specifier == TYPEDEF)
3265 inTypeDef = 1;
3266 OutputSpecifier(spec, f, inTypeDef && !spec->next);
3267 if(spec->next)
3268 (__extension__ ({
3269 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3270
3271 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3272 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3273
3274 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3275 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3276 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
3277 }));
3278 }
3279 }
3280 if(decl->__anon1.__anon1.declarators && (*decl->__anon1.__anon1.declarators).first)
3281 {
3282 (__extension__ ({
3283 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3284
3285 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3286 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3287
3288 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3289 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3290 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
3291 }));
3292 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
3293 {
3294 OutputInitDeclarator(d, f);
3295 if(d->next)
3296 (__extension__ ({
3297 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3298
3299 __internal_VirtualMethod = ((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]);
3304 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
3305 }));
3306 }
3307 }
3308 break;
3309 }
3310 case 0:
3311 {
3312 if(decl->__anon1.__anon1.specifiers)
3313 {
3314 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
3315 {
3316 OutputSpecifier(spec, f, 0);
3317 if(spec->next)
3318 (__extension__ ({
3319 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3320
3321 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3322 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3323
3324 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3325 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3326 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
3327 }));
3328 }
3329 }
3330 if(decl->__anon1.__anon1.declarators)
3331 {
3332 struct Declarator * d;
3333
3334 (__extension__ ({
3335 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3336
3337 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3338 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3339
3340 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3341 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3342 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
3343 }));
3344 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
3345 {
3346 OutputDeclarator(d, f);
3347 if(d->next)
3348 (__extension__ ({
3349 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3350
3351 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3352 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3353
3354 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3355 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3356 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
3357 }));
3358 }
3359 }
3360 if(decl->extStorage)
3361 {
3362 (__extension__ ({
3363 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3364
3365 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3366 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3367
3368 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3369 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3370 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
3371 }));
3372 OutputSpecifier(decl->extStorage, f, 0);
3373 }
3374 break;
3375 }
3376 case 2:
3377 if(decl->__anon1.inst)
3378 {
3379 OutputInstance(decl->__anon1.inst, f);
3380 }
3381 break;
3382 case 3:
3383 return ;
3384 }
3385 (__extension__ ({
3386 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3387
3388 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3389 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3390
3391 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3392 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3393 __internal_VirtualMethod ? __internal_VirtualMethod(f, ";\n") : (unsigned int)1;
3394 }));
3395 outputLine++;
3396 if(inCompiler && outputLineNumbers && decl->loc.start.line)
3397 {
3398 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3399 outputLine += 2;
3400 }
3401 }
3402
3403 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
3404 {
3405 char name[274] = "";
3406 char origName[274] = "";
3407
3408 if(inCompiler)
3409 {
3410 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
3411 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3412 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3413 }
3414 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
3415 {
3416 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
3417 outputLine += 2;
3418 }
3419 switch(stmt->type)
3420 {
3421 case 14:
3422 OutputDeclaration(stmt->__anon1.decl, f);
3423 break;
3424 case 0:
3425 OutputIdentifier(stmt->__anon1.labeled.id, f);
3426 (__extension__ ({
3427 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3428
3429 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3430 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3431
3432 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3433 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3434 __internal_VirtualMethod ? __internal_VirtualMethod(f, ":\n") : (unsigned int)1;
3435 }));
3436 outputLine++;
3437 if(stmt->__anon1.labeled.stmt)
3438 {
3439 if(stmt->__anon1.labeled.stmt->type == 14)
3440 (__extension__ ({
3441 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3442
3443 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3444 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3445
3446 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3447 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3448 __internal_VirtualMethod ? __internal_VirtualMethod(f, "; ") : (unsigned int)1;
3449 }));
3450 OutputStatement(stmt->__anon1.labeled.stmt, f);
3451 }
3452 break;
3453 case 1:
3454 if(stmt->__anon1.caseStmt.exp)
3455 {
3456 (__extension__ ({
3457 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3458
3459 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3460 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3461
3462 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3463 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3464 __internal_VirtualMethod ? __internal_VirtualMethod(f, "case ") : (unsigned int)1;
3465 }));
3466 OutputExpression(stmt->__anon1.caseStmt.exp, f);
3467 (__extension__ ({
3468 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3469
3470 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3471 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3472
3473 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3474 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3475 __internal_VirtualMethod ? __internal_VirtualMethod(f, ":\n") : (unsigned int)1;
3476 }));
3477 outputLine++;
3478 }
3479 else
3480 {
3481 (__extension__ ({
3482 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3483
3484 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3485 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3486
3487 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3488 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3489 __internal_VirtualMethod ? __internal_VirtualMethod(f, "default:\n") : (unsigned int)1;
3490 }));
3491 outputLine++;
3492 }
3493 if(stmt->__anon1.caseStmt.stmt)
3494 {
3495 if(stmt->__anon1.caseStmt.stmt->type == 14)
3496 (__extension__ ({
3497 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3498
3499 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3500 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3501
3502 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3503 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3504 __internal_VirtualMethod ? __internal_VirtualMethod(f, "; ") : (unsigned int)1;
3505 }));
3506 OutputStatement(stmt->__anon1.caseStmt.stmt, f);
3507 }
3508 break;
3509 case 2:
3510 {
3511 (__extension__ ({
3512 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3513
3514 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3515 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3516
3517 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3518 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3519 __internal_VirtualMethod ? __internal_VirtualMethod(f, "{\n") : (unsigned int)1;
3520 }));
3521 outputLine++;
3522 if(stmt->__anon1.compound.declarations)
3523 {
3524 struct Declaration * decl;
3525
3526 for(decl = (*stmt->__anon1.compound.declarations).first; decl; decl = decl->next)
3527 {
3528 OutputDeclaration(decl, f);
3529 }
3530 }
3531 if(stmt->__anon1.compound.statements)
3532 {
3533 struct Statement * statement;
3534
3535 if(stmt->__anon1.compound.declarations)
3536 {
3537 (__extension__ ({
3538 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3539
3540 __internal_VirtualMethod = ((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]);
3545 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
3546 }));
3547 outputLine++;
3548 }
3549 for(statement = (*stmt->__anon1.compound.statements).first; statement; statement = statement->next)
3550 {
3551 OutputStatement(statement, f);
3552 (__extension__ ({
3553 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3554
3555 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3556 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3557
3558 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3559 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3560 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
3561 }));
3562 outputLine++;
3563 }
3564 }
3565 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
3566 {
3567 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
3568 outputLine += 2;
3569 }
3570 (__extension__ ({
3571 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3572
3573 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3574 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3575
3576 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3577 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3578 __internal_VirtualMethod ? __internal_VirtualMethod(f, "}") : (unsigned int)1;
3579 }));
3580 break;
3581 }
3582 case 3:
3583 {
3584 if(stmt->__anon1.expressions)
3585 {
3586 struct Expression * exp;
3587
3588 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
3589 {
3590 OutputExpression(exp, f);
3591 if(exp->next)
3592 (__extension__ ({
3593 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3594
3595 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3596 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3597
3598 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3599 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3600 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
3601 }));
3602 }
3603 }
3604 (__extension__ ({
3605 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3606
3607 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3608 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3609
3610 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3611 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3612 __internal_VirtualMethod ? __internal_VirtualMethod(f, ";") : (unsigned int)1;
3613 }));
3614 break;
3615 }
3616 case 4:
3617 {
3618 struct Expression * exp;
3619
3620 (__extension__ ({
3621 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3622
3623 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3624 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3625
3626 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3627 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3628 __internal_VirtualMethod ? __internal_VirtualMethod(f, "if(") : (unsigned int)1;
3629 }));
3630 for(exp = (*stmt->__anon1.ifStmt.exp).first; exp; exp = exp->next)
3631 {
3632 OutputExpression(exp, f);
3633 if(exp->next)
3634 (__extension__ ({
3635 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3636
3637 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3638 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3639
3640 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3641 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3642 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
3643 }));
3644 }
3645 (__extension__ ({
3646 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3647
3648 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3649 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3650
3651 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3652 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3653 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")\n") : (unsigned int)1;
3654 }));
3655 outputLine++;
3656 if(stmt->__anon1.ifStmt.stmt)
3657 OutputStatement(stmt->__anon1.ifStmt.stmt, f);
3658 if(stmt->__anon1.ifStmt.elseStmt)
3659 {
3660 (__extension__ ({
3661 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3662
3663 __internal_VirtualMethod = ((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]);
3668 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
3669 }));
3670 outputLine++;
3671 (__extension__ ({
3672 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3673
3674 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3675 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3676
3677 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3678 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3679 __internal_VirtualMethod ? __internal_VirtualMethod(f, "else") : (unsigned int)1;
3680 }));
3681 if(stmt->__anon1.ifStmt.elseStmt->type != 4)
3682 {
3683 (__extension__ ({
3684 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3685
3686 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3687 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3688
3689 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3690 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3691 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
3692 }));
3693 outputLine++;
3694 }
3695 else
3696 (__extension__ ({
3697 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3698
3699 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3700 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3701
3702 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3703 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3704 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
3705 }));
3706 OutputStatement(stmt->__anon1.ifStmt.elseStmt, f);
3707 }
3708 break;
3709 }
3710 case 5:
3711 {
3712 struct Expression * exp;
3713
3714 (__extension__ ({
3715 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3716
3717 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3718 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3719
3720 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3721 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3722 __internal_VirtualMethod ? __internal_VirtualMethod(f, "switch(") : (unsigned int)1;
3723 }));
3724 if(stmt->__anon1.switchStmt.exp)
3725 {
3726 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
3727 {
3728 OutputExpression(exp, f);
3729 if(exp->next)
3730 (__extension__ ({
3731 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3732
3733 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3734 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3735
3736 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3737 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3738 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
3739 }));
3740 }
3741 }
3742 (__extension__ ({
3743 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3744
3745 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3746 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3747
3748 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3749 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3750 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")\n") : (unsigned int)1;
3751 }));
3752 outputLine++;
3753 OutputStatement(stmt->__anon1.switchStmt.stmt, f);
3754 break;
3755 }
3756 case 6:
3757 {
3758 struct Expression * exp;
3759
3760 (__extension__ ({
3761 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3762
3763 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3764 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3765
3766 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3767 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3768 __internal_VirtualMethod ? __internal_VirtualMethod(f, "while(") : (unsigned int)1;
3769 }));
3770 if(stmt->__anon1.switchStmt.exp)
3771 {
3772 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
3773 {
3774 OutputExpression(exp, f);
3775 if(exp->next)
3776 (__extension__ ({
3777 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3778
3779 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3780 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3781
3782 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3783 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3784 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
3785 }));
3786 }
3787 }
3788 (__extension__ ({
3789 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3790
3791 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3792 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3793
3794 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3795 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3796 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")\n") : (unsigned int)1;
3797 }));
3798 outputLine++;
3799 OutputStatement(stmt->__anon1.whileStmt.stmt, f);
3800 break;
3801 }
3802 case 7:
3803 {
3804 struct Expression * exp;
3805
3806 (__extension__ ({
3807 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3808
3809 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3810 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3811
3812 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3813 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3814 __internal_VirtualMethod ? __internal_VirtualMethod(f, "do\n") : (unsigned int)1;
3815 }));
3816 outputLine++;
3817 OutputStatement(stmt->__anon1.whileStmt.stmt, f);
3818 (__extension__ ({
3819 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3820
3821 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3822 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3823
3824 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3825 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3826 __internal_VirtualMethod ? __internal_VirtualMethod(f, "while(") : (unsigned int)1;
3827 }));
3828 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
3829 {
3830 OutputExpression(exp, f);
3831 if(exp->next)
3832 (__extension__ ({
3833 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3834
3835 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3836 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3837
3838 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3839 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3840 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
3841 }));
3842 }
3843 (__extension__ ({
3844 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3845
3846 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3847 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3848
3849 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3850 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3851 __internal_VirtualMethod ? __internal_VirtualMethod(f, ");") : (unsigned int)1;
3852 }));
3853 break;
3854 }
3855 case 8:
3856 {
3857 struct Expression * exp;
3858
3859 (__extension__ ({
3860 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3861
3862 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3863 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3864
3865 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3866 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3867 __internal_VirtualMethod ? __internal_VirtualMethod(f, "for(") : (unsigned int)1;
3868 }));
3869 OutputStatement(stmt->__anon1.forStmt.init, f);
3870 (__extension__ ({
3871 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3872
3873 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3874 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3875
3876 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3877 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3878 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
3879 }));
3880 OutputStatement(stmt->__anon1.forStmt.check, f);
3881 (__extension__ ({
3882 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3883
3884 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3885 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3886
3887 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3888 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3889 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
3890 }));
3891 if(stmt->__anon1.forStmt.increment)
3892 {
3893 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
3894 {
3895 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
3896 outputLine += 2;
3897 }
3898 for(exp = (*stmt->__anon1.forStmt.increment).first; exp; exp = exp->next)
3899 {
3900 OutputExpression(exp, f);
3901 if(exp->next)
3902 (__extension__ ({
3903 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3904
3905 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3906 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3907
3908 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3909 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3910 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
3911 }));
3912 }
3913 }
3914 (__extension__ ({
3915 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3916
3917 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3918 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3919
3920 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3921 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3922 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")\n") : (unsigned int)1;
3923 }));
3924 outputLine++;
3925 OutputStatement(stmt->__anon1.forStmt.stmt, f);
3926 break;
3927 }
3928 case 9:
3929 {
3930 (__extension__ ({
3931 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3932
3933 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3934 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3935
3936 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3937 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3938 __internal_VirtualMethod ? __internal_VirtualMethod(f, "goto ") : (unsigned int)1;
3939 }));
3940 OutputIdentifier(stmt->__anon1.gotoStmt.id, f);
3941 (__extension__ ({
3942 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3943
3944 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3945 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3946
3947 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3948 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3949 __internal_VirtualMethod ? __internal_VirtualMethod(f, ";") : (unsigned int)1;
3950 }));
3951 break;
3952 }
3953 case 10:
3954 (__extension__ ({
3955 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3956
3957 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3958 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3959
3960 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3961 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3962 __internal_VirtualMethod ? __internal_VirtualMethod(f, "continue;") : (unsigned int)1;
3963 }));
3964 break;
3965 case 11:
3966 (__extension__ ({
3967 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
3968
3969 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
3970 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3971
3972 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3973 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
3974 __internal_VirtualMethod ? __internal_VirtualMethod(f, "break;") : (unsigned int)1;
3975 }));
3976 break;
3977 case 12:
3978 {
3979 struct Expression * exp;
3980
3981 if(inCompiler && memoryGuard)
3982 {
3983 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
3984 struct Type * returnType = exp ? (exp->destType ? exp->destType : exp->expType) : (((void *)0));
3985
3986 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
3987 if(returnType && returnType->kind != 0)
3988 {
3989 char string[1024] = "";
3990 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
3991 struct Declarator * decl;
3992 struct TypeName * typeName;
3993
3994 if(returnType->kind == 20)
3995 {
3996 if(returnType->__anon1.templateParameter->dataTypeString)
3997 decl = SpecDeclFromString(returnType->__anon1.templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3998 else if(returnType->__anon1.templateParameter->__anon1.dataType)
3999 {
4000 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
4001 specs = CopyList(returnType->__anon1.templateParameter->__anon1.dataType->specifiers, (void *)(CopySpecifier));
4002 decl = PlugDeclarator(returnType->__anon1.templateParameter->__anon1.dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
4003 }
4004 else
4005 {
4006 ListAdd(specs, MkSpecifierName("uint64"));
4007 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
4008 }
4009 }
4010 else
4011 {
4012 if(returnType->passAsTemplate)
4013 strcpy(string, "uint64");
4014 else
4015 PrintType(returnType, string, returnType->kind == 18 ? 1 : 0, 1);
4016 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
4017 }
4018 typeName = MkTypeName(specs, decl);
4019 InstDeclPassTypeName(typeName, 0);
4020 OutputTypeName(typeName, f, 0);
4021 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
4022 FreeTypeName(typeName);
4023 }
4024 }
4025 if(!memoryGuard)
4026 (__extension__ ({
4027 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4028
4029 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4030 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4031
4032 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4033 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4034 __internal_VirtualMethod ? __internal_VirtualMethod(f, "return ") : (unsigned int)1;
4035 }));
4036 else
4037 {
4038 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
4039
4040 if(exp && exp->expType && exp->expType->kind != 0)
4041 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
4042 }
4043 if(stmt->__anon1.expressions)
4044 {
4045 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
4046 {
4047 OutputExpression(exp, f);
4048 if(exp->next)
4049 (__extension__ ({
4050 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4051
4052 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4053 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4054
4055 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4056 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4057 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
4058 }));
4059 }
4060 }
4061 (__extension__ ({
4062 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4063
4064 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4065 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4066
4067 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4068 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4069 __internal_VirtualMethod ? __internal_VirtualMethod(f, ";") : (unsigned int)1;
4070 }));
4071 if(inCompiler && memoryGuard)
4072 {
4073 struct Expression * exp = stmt->__anon1.expressions ? (struct Expression *)(*stmt->__anon1.expressions).last : (((void *)0));
4074
4075 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
4076 if(exp && exp->expType && exp->expType->kind != 0)
4077 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
4078 else
4079 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
4080 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
4081 }
4082 break;
4083 }
4084 case 13:
4085 {
4086 struct AsmField * field;
4087
4088 (__extension__ ({
4089 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4090
4091 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4092 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4093
4094 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4095 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4096 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__asm__ ") : (unsigned int)1;
4097 }));
4098 if(stmt->__anon1.asmStmt.spec)
4099 OutputSpecifier(stmt->__anon1.asmStmt.spec, f, 0);
4100 (__extension__ ({
4101 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4102
4103 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4104 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4105
4106 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4107 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4108 __internal_VirtualMethod ? __internal_VirtualMethod(f, "(") : (unsigned int)1;
4109 }));
4110 (__extension__ ({
4111 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4112
4113 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4114 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4115
4116 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4117 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4118 __internal_VirtualMethod ? __internal_VirtualMethod(f, stmt->__anon1.asmStmt.statements) : (unsigned int)1;
4119 }));
4120 if(stmt->__anon1.asmStmt.inputFields || stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
4121 {
4122 (__extension__ ({
4123 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4124
4125 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4126 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4127
4128 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4129 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4130 __internal_VirtualMethod ? __internal_VirtualMethod(f, ":") : (unsigned int)1;
4131 }));
4132 if(stmt->__anon1.asmStmt.inputFields)
4133 {
4134 for(field = (*stmt->__anon1.asmStmt.inputFields).first; field; field = field->next)
4135 {
4136 if(field->prev)
4137 (__extension__ ({
4138 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4139
4140 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4141 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4142
4143 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4144 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4145 __internal_VirtualMethod ? __internal_VirtualMethod(f, ",") : (unsigned int)1;
4146 }));
4147 OutputAsmField(field, f);
4148 }
4149 }
4150 }
4151 if(stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
4152 {
4153 (__extension__ ({
4154 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4155
4156 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4157 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4158
4159 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4160 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4161 __internal_VirtualMethod ? __internal_VirtualMethod(f, ":") : (unsigned int)1;
4162 }));
4163 if(stmt->__anon1.asmStmt.outputFields)
4164 {
4165 for(field = (*stmt->__anon1.asmStmt.outputFields).first; field; field = field->next)
4166 {
4167 if(field->prev)
4168 (__extension__ ({
4169 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4170
4171 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4172 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4173
4174 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4175 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4176 __internal_VirtualMethod ? __internal_VirtualMethod(f, ",") : (unsigned int)1;
4177 }));
4178 OutputAsmField(field, f);
4179 }
4180 }
4181 }
4182 if(stmt->__anon1.asmStmt.clobberedFields)
4183 {
4184 (__extension__ ({
4185 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4186
4187 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4188 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4189
4190 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4191 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4192 __internal_VirtualMethod ? __internal_VirtualMethod(f, ":") : (unsigned int)1;
4193 }));
4194 for(field = (*stmt->__anon1.asmStmt.clobberedFields).first; field; field = field->next)
4195 {
4196 if(field->prev)
4197 (__extension__ ({
4198 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4199
4200 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4201 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4202
4203 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4204 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4205 __internal_VirtualMethod ? __internal_VirtualMethod(f, ",") : (unsigned int)1;
4206 }));
4207 OutputAsmField(field, f);
4208 }
4209 }
4210 (__extension__ ({
4211 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4212
4213 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4214 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4215
4216 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4217 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4218 __internal_VirtualMethod ? __internal_VirtualMethod(f, ");\n") : (unsigned int)1;
4219 }));
4220 outputLine++;
4221 break;
4222 }
4223 }
4224 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
4225 {
4226 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
4227 outputLine += 2;
4228 }
4229 }
4230
4231 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
4232 {
4233 struct External * external;
4234
4235 outputLine = 50;
4236 for(external = ast->first; external; external = external->next)
4237 {
4238 switch(external->type)
4239 {
4240 case 0:
4241 OutputFunction(external->__anon1.function, f);
4242 (__extension__ ({
4243 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4244
4245 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4246 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4247
4248 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4249 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4250 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
4251 }));
4252 outputLine++;
4253 break;
4254 case 1:
4255 if(external->__anon1.declaration)
4256 OutputDeclaration(external->__anon1.declaration, f);
4257 (__extension__ ({
4258 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4259
4260 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4261 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4262
4263 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4264 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4265 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
4266 }));
4267 outputLine++;
4268 break;
4269 case 2:
4270 OutputClass(external->__anon1._class, f);
4271 (__extension__ ({
4272 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4273
4274 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4275 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4276
4277 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4278 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4279 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
4280 }));
4281 outputLine++;
4282 break;
4283 }
4284 }
4285 }
4286
4287 void OutputExternal(struct External * external, struct __ecereNameSpace__ecere__com__Instance * f)
4288 {
4289 switch(external->type)
4290 {
4291 case 0:
4292 OutputFunction(external->__anon1.function, f);
4293 (__extension__ ({
4294 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4295
4296 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4297 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4298
4299 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4300 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4301 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
4302 }));
4303 outputLine++;
4304 break;
4305 case 1:
4306 if(external->__anon1.declaration)
4307 OutputDeclaration(external->__anon1.declaration, f);
4308 (__extension__ ({
4309 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4310
4311 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4312 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4313
4314 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4315 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4316 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
4317 }));
4318 outputLine++;
4319 break;
4320 case 2:
4321 OutputClass(external->__anon1._class, f);
4322 (__extension__ ({
4323 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4324
4325 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4326 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4327
4328 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4329 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4330 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
4331 }));
4332 outputLine++;
4333 break;
4334 }
4335 }
4336
4337 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f)
4338 {
4339 switch(exp->type)
4340 {
4341 case 24:
4342 (__extension__ ({
4343 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4344
4345 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4346 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4347
4348 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4349 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4350 __internal_VirtualMethod ? __internal_VirtualMethod(f, "class(") : (unsigned int)1;
4351 }));
4352 if(exp->__anon1._classExp.specifiers)
4353 {
4354 struct Specifier * spec;
4355
4356 for(spec = (*exp->__anon1._classExp.specifiers).first; spec; spec = spec->next)
4357 {
4358 OutputSpecifier(spec, f, 0);
4359 if(spec->next)
4360 (__extension__ ({
4361 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4362
4363 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4364 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4365
4366 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4367 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4368 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
4369 }));
4370 }
4371 if(exp->__anon1._classExp.decl)
4372 {
4373 (__extension__ ({
4374 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4375
4376 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4377 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4378
4379 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4380 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4381 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
4382 }));
4383 OutputDeclarator(exp->__anon1._classExp.decl, f);
4384 }
4385 (__extension__ ({
4386 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4387
4388 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4389 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4390
4391 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4392 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4393 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
4394 }));
4395 }
4396 break;
4397 case 23:
4398 (__extension__ ({
4399 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4400
4401 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4402 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4403
4404 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4405 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4406 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__extension__ (") : (unsigned int)1;
4407 }));
4408 OutputStatement(exp->__anon1.compound, f);
4409 (__extension__ ({
4410 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4411
4412 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4413 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4414
4415 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4416 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4417 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
4418 }));
4419 if(inCompiler && outputLineNumbers && exp->loc.end.line)
4420 {
4421 char name[274] = "";
4422
4423 GetSourceName(name, exp->loc.end.included ? GetIncludeFileFromID(exp->loc.end.included) : (((void *)0)));
4424 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", exp->loc.end.line, name);
4425 outputLine += 2;
4426 }
4427 break;
4428 case 13:
4429 (__extension__ ({
4430 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4431
4432 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4433 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4434
4435 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4436 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4437 __internal_VirtualMethod ? __internal_VirtualMethod(f, "new ") : (unsigned int)1;
4438 }));
4439 (__extension__ ({
4440 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4441
4442 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4443 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4444
4445 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4446 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4447 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
4448 }));
4449 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
4450 (__extension__ ({
4451 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4452
4453 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4454 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4455
4456 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4457 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4458 __internal_VirtualMethod ? __internal_VirtualMethod(f, "[") : (unsigned int)1;
4459 }));
4460 OutputExpression(exp->__anon1._renew.size, f);
4461 (__extension__ ({
4462 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4463
4464 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4465 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4466
4467 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4468 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4469 __internal_VirtualMethod ? __internal_VirtualMethod(f, "]") : (unsigned int)1;
4470 }));
4471 break;
4472 case 26:
4473 (__extension__ ({
4474 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4475
4476 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4477 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4478
4479 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4480 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4481 __internal_VirtualMethod ? __internal_VirtualMethod(f, "new0 ") : (unsigned int)1;
4482 }));
4483 (__extension__ ({
4484 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4485
4486 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4487 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4488
4489 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4490 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4491 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
4492 }));
4493 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
4494 (__extension__ ({
4495 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4496
4497 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4498 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4499
4500 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4501 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4502 __internal_VirtualMethod ? __internal_VirtualMethod(f, "[") : (unsigned int)1;
4503 }));
4504 OutputExpression(exp->__anon1._renew.size, f);
4505 (__extension__ ({
4506 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4507
4508 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4509 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4510
4511 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4512 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4513 __internal_VirtualMethod ? __internal_VirtualMethod(f, "]") : (unsigned int)1;
4514 }));
4515 break;
4516 case 14:
4517 (__extension__ ({
4518 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4519
4520 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4521 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4522
4523 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4524 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4525 __internal_VirtualMethod ? __internal_VirtualMethod(f, "renew ") : (unsigned int)1;
4526 }));
4527 OutputExpression(exp->__anon1._renew.exp, f);
4528 (__extension__ ({
4529 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4530
4531 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4532 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4533
4534 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4535 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4536 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
4537 }));
4538 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
4539 (__extension__ ({
4540 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4541
4542 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4543 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4544
4545 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4546 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4547 __internal_VirtualMethod ? __internal_VirtualMethod(f, "[") : (unsigned int)1;
4548 }));
4549 OutputExpression(exp->__anon1._renew.size, f);
4550 (__extension__ ({
4551 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4552
4553 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4554 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4555
4556 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4557 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4558 __internal_VirtualMethod ? __internal_VirtualMethod(f, "]") : (unsigned int)1;
4559 }));
4560 break;
4561 case 27:
4562 (__extension__ ({
4563 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4564
4565 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4566 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4567
4568 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4569 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4570 __internal_VirtualMethod ? __internal_VirtualMethod(f, "renew0 ") : (unsigned int)1;
4571 }));
4572 OutputExpression(exp->__anon1._renew.exp, f);
4573 (__extension__ ({
4574 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4575
4576 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4577 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4578
4579 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4580 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4581 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
4582 }));
4583 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
4584 (__extension__ ({
4585 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4586
4587 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4588 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4589
4590 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4591 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4592 __internal_VirtualMethod ? __internal_VirtualMethod(f, "[") : (unsigned int)1;
4593 }));
4594 OutputExpression(exp->__anon1._renew.size, f);
4595 (__extension__ ({
4596 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4597
4598 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4599 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4600
4601 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4602 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4603 __internal_VirtualMethod ? __internal_VirtualMethod(f, "]") : (unsigned int)1;
4604 }));
4605 break;
4606 case 0:
4607 if(exp->__anon1.__anon1.identifier)
4608 OutputIdentifier(exp->__anon1.__anon1.identifier, f);
4609 break;
4610 case 1:
4611 if(exp->__anon1.instance)
4612 OutputInstance(exp->__anon1.instance, f);
4613 break;
4614 case 2:
4615 if(exp->__anon1.__anon1.constant)
4616 (__extension__ ({
4617 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4618
4619 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4620 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4621
4622 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4623 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4624 __internal_VirtualMethod ? __internal_VirtualMethod(f, exp->__anon1.__anon1.constant) : (unsigned int)1;
4625 }));
4626 break;
4627 case 3:
4628 if(exp->__anon1.__anon2.string)
4629 (__extension__ ({
4630 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4631
4632 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4633 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4634
4635 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4636 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4637 __internal_VirtualMethod ? __internal_VirtualMethod(f, exp->__anon1.__anon2.string) : (unsigned int)1;
4638 }));
4639 break;
4640 case 4:
4641 if(exp->__anon1.op.exp1)
4642 {
4643 OutputExpression(exp->__anon1.op.exp1, f);
4644 if(exp->__anon1.op.exp2)
4645 (__extension__ ({
4646 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4647
4648 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4649 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4650
4651 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4652 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4653 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
4654 }));
4655 }
4656 OutputOperator(exp->__anon1.op.op, f);
4657 if(exp->__anon1.op.exp2)
4658 {
4659 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))
4660 (__extension__ ({
4661 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4662
4663 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4664 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4665
4666 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4667 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4668 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
4669 }));
4670 OutputExpression(exp->__anon1.op.exp2, f);
4671 }
4672 break;
4673 case 32:
4674 case 5:
4675 {
4676 struct Expression * expression;
4677
4678 if(exp->type == 32)
4679 (__extension__ ({
4680 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4681
4682 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4683 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4684
4685 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4686 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4687 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__extension__ ") : (unsigned int)1;
4688 }));
4689 (__extension__ ({
4690 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4691
4692 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4693 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4694
4695 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4696 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4697 __internal_VirtualMethod ? __internal_VirtualMethod(f, "(") : (unsigned int)1;
4698 }));
4699 if(exp->__anon1.list)
4700 {
4701 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
4702 {
4703 OutputExpression(expression, f);
4704 if(expression->next)
4705 (__extension__ ({
4706 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4707
4708 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4709 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4710
4711 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4712 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4713 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
4714 }));
4715 }
4716 }
4717 (__extension__ ({
4718 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4719
4720 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4721 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4722
4723 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4724 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4725 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
4726 }));
4727 break;
4728 }
4729 case 6:
4730 {
4731 struct Expression * expression;
4732
4733 if(exp->__anon1.index.exp)
4734 OutputExpression(exp->__anon1.index.exp, f);
4735 (__extension__ ({
4736 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4737
4738 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4739 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4740
4741 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4742 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4743 __internal_VirtualMethod ? __internal_VirtualMethod(f, "[") : (unsigned int)1;
4744 }));
4745 if(exp->__anon1.index.index)
4746 for(expression = (*exp->__anon1.index.index).first; expression; expression = expression->next)
4747 {
4748 OutputExpression(expression, f);
4749 if(expression->next)
4750 (__extension__ ({
4751 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4752
4753 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4754 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4755
4756 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4757 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4758 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
4759 }));
4760 }
4761 (__extension__ ({
4762 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4763
4764 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4765 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4766
4767 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4768 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4769 __internal_VirtualMethod ? __internal_VirtualMethod(f, "]") : (unsigned int)1;
4770 }));
4771 break;
4772 }
4773 case 7:
4774 {
4775 OutputExpression(exp->__anon1.call.exp, f);
4776 (__extension__ ({
4777 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4778
4779 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4780 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4781
4782 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4783 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4784 __internal_VirtualMethod ? __internal_VirtualMethod(f, "(") : (unsigned int)1;
4785 }));
4786 if(exp->__anon1.call.arguments)
4787 {
4788 struct Expression * expression;
4789
4790 for(expression = (*exp->__anon1.call.arguments).first; expression; expression = expression->next)
4791 {
4792 OutputExpression(expression, f);
4793 if(expression->next)
4794 (__extension__ ({
4795 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4796
4797 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4798 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4799
4800 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4801 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4802 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
4803 }));
4804 }
4805 }
4806 (__extension__ ({
4807 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4808
4809 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4810 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4811
4812 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4813 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4814 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
4815 }));
4816 break;
4817 }
4818 case 8:
4819 if(exp->__anon1.member.exp)
4820 OutputExpression(exp->__anon1.member.exp, f);
4821 (__extension__ ({
4822 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4823
4824 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4825 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4826
4827 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4828 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4829 __internal_VirtualMethod ? __internal_VirtualMethod(f, ".") : (unsigned int)1;
4830 }));
4831 if(exp->__anon1.member.member)
4832 OutputIdentifier(exp->__anon1.member.member, f);
4833 break;
4834 case 9:
4835 OutputExpression(exp->__anon1.member.exp, f);
4836 (__extension__ ({
4837 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4838
4839 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4840 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4841
4842 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4843 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4844 __internal_VirtualMethod ? __internal_VirtualMethod(f, "->") : (unsigned int)1;
4845 }));
4846 OutputIdentifier(exp->__anon1.member.member, f);
4847 break;
4848 case 10:
4849 (__extension__ ({
4850 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4851
4852 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4853 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4854
4855 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4856 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4857 __internal_VirtualMethod ? __internal_VirtualMethod(f, "sizeof(") : (unsigned int)1;
4858 }));
4859 OutputTypeName(exp->__anon1.typeName, f, 0);
4860 (__extension__ ({
4861 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4862
4863 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4864 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4865
4866 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4867 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4868 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
4869 }));
4870 break;
4871 case 36:
4872 (__extension__ ({
4873 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4874
4875 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4876 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4877
4878 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4879 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4880 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__alignof__(") : (unsigned int)1;
4881 }));
4882 OutputTypeName(exp->__anon1.typeName, f, 0);
4883 (__extension__ ({
4884 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4885
4886 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4887 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4888
4889 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4890 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4891 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
4892 }));
4893 break;
4894 case 40:
4895 (__extension__ ({
4896 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4897
4898 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4899 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4900
4901 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4902 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4903 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__builtin_offsetof(") : (unsigned int)1;
4904 }));
4905 if(exp->__anon1.typeName)
4906 OutputTypeName(exp->__anon1.typeName, f, 0);
4907 (__extension__ ({
4908 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4909
4910 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4911 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4912
4913 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4914 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4915 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
4916 }));
4917 if(exp->__anon1.__anon1.identifier)
4918 OutputIdentifier(exp->__anon1.__anon1.identifier, f);
4919 (__extension__ ({
4920 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4921
4922 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4923 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4924
4925 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4926 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4927 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
4928 }));
4929 break;
4930 case 33:
4931 (__extension__ ({
4932 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4933
4934 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4935 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4936
4937 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4938 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4939 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__extension__ (") : (unsigned int)1;
4940 }));
4941 if(exp->__anon1.initializer.typeName)
4942 OutputTypeName(exp->__anon1.initializer.typeName, f, 0);
4943 (__extension__ ({
4944 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4945
4946 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4947 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4948
4949 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4950 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4951 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
4952 }));
4953 if(exp->__anon1.initializer.initializer)
4954 OutputInitializer(exp->__anon1.initializer.initializer, f);
4955 break;
4956 case 11:
4957 (__extension__ ({
4958 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4959
4960 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4961 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4962
4963 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4964 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4965 __internal_VirtualMethod ? __internal_VirtualMethod(f, "(") : (unsigned int)1;
4966 }));
4967 OutputTypeName(exp->__anon1.cast.typeName, f, 0);
4968 (__extension__ ({
4969 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4970
4971 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4972 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4973
4974 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4975 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4976 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
4977 }));
4978 if(exp->__anon1.cast.exp)
4979 OutputExpression(exp->__anon1.cast.exp, f);
4980 break;
4981 case 12:
4982 OutputExpression(exp->__anon1.cond.cond, f);
4983 (__extension__ ({
4984 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
4985
4986 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
4987 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4988
4989 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4990 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
4991 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ? ") : (unsigned int)1;
4992 }));
4993 {
4994 struct Expression * expression;
4995
4996 for(expression = (*exp->__anon1.cond.exp).first; expression; expression = expression->next)
4997 {
4998 OutputExpression(expression, f);
4999 if(expression->next)
5000 (__extension__ ({
5001 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5002
5003 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5004 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5005
5006 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5007 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5008 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
5009 }));
5010 }
5011 }
5012 (__extension__ ({
5013 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5014
5015 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5016 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5017
5018 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5019 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5020 __internal_VirtualMethod ? __internal_VirtualMethod(f, " : ") : (unsigned int)1;
5021 }));
5022 if(exp->__anon1.cond.elseExp)
5023 OutputExpression(exp->__anon1.cond.elseExp, f);
5024 break;
5025 case 34:
5026 (__extension__ ({
5027 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5028
5029 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5030 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5031
5032 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5033 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5034 __internal_VirtualMethod ? __internal_VirtualMethod(f, "__builtin_va_arg(") : (unsigned int)1;
5035 }));
5036 OutputExpression(exp->__anon1.vaArg.exp, f);
5037 (__extension__ ({
5038 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5039
5040 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5041 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5042
5043 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5044 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5045 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
5046 }));
5047 OutputTypeName(exp->__anon1.vaArg.typeName, f, 0);
5048 (__extension__ ({
5049 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5050
5051 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5052 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5053
5054 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5055 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5056 __internal_VirtualMethod ? __internal_VirtualMethod(f, ")") : (unsigned int)1;
5057 }));
5058 break;
5059 case 35:
5060 (__extension__ ({
5061 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5062
5063 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5064 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5065
5066 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5067 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5068 __internal_VirtualMethod ? __internal_VirtualMethod(f, "[") : (unsigned int)1;
5069 }));
5070 if(exp->__anon1.list)
5071 {
5072 struct Expression * expression;
5073
5074 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
5075 {
5076 OutputExpression(expression, f);
5077 if(expression->next)
5078 (__extension__ ({
5079 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5080
5081 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5082 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5083
5084 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5085 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5086 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
5087 }));
5088 }
5089 }
5090 (__extension__ ({
5091 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5092
5093 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5094 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5095
5096 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5097 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5098 __internal_VirtualMethod ? __internal_VirtualMethod(f, "]") : (unsigned int)1;
5099 }));
5100 break;
5101 }
5102 }
5103
5104 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
5105 {
5106 struct FunctionDefinition * oldFunc = curFunction;
5107
5108 curFunction = func;
5109 if(func->specifiers)
5110 {
5111 struct Specifier * spec;
5112
5113 for(spec = (*func->specifiers).first; spec; spec = spec->next)
5114 {
5115 OutputSpecifier(spec, f, 0);
5116 if(spec->next)
5117 (__extension__ ({
5118 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5119
5120 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5121 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5122
5123 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5124 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5125 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
5126 }));
5127 }
5128 (__extension__ ({
5129 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5130
5131 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5132 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5133
5134 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5135 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5136 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
5137 }));
5138 }
5139 if(func->declarator)
5140 OutputDeclarator(func->declarator, f);
5141 (__extension__ ({
5142 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5143
5144 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5145 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5146
5147 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5148 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5149 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
5150 }));
5151 outputLine++;
5152 if(func->declarations)
5153 {
5154 struct Declaration * decl;
5155
5156 for(decl = (*func->declarations).first; decl; decl = decl->next)
5157 {
5158 OutputDeclaration(decl, f);
5159 }
5160 (__extension__ ({
5161 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5162
5163 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5164 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5165
5166 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5167 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5168 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
5169 }));
5170 outputLine++;
5171 }
5172 if(func->body)
5173 {
5174 if(inCompiler && memoryGuard)
5175 {
5176 char name[1024] = "";
5177 struct Identifier * id = GetDeclId(func->declarator);
5178
5179 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
5180 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
5181 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "   __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
5182 outputLine += 2;
5183 }
5184 OutputStatement(func->body, f);
5185 if(inCompiler && memoryGuard)
5186 {
5187 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "   __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
5188 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
5189 outputLine += 2;
5190 }
5191 (__extension__ ({
5192 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5193
5194 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5195 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5196
5197 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5198 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5199 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
5200 }));
5201 outputLine++;
5202 }
5203 curFunction = oldFunc;
5204 }
5205
5206 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
5207 {
5208 if(func->specifiers)
5209 {
5210 struct Specifier * spec;
5211
5212 for(spec = (*func->specifiers).first; spec; spec = spec->next)
5213 {
5214 OutputSpecifier(spec, f, 0);
5215 if(spec->next)
5216 (__extension__ ({
5217 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5218
5219 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5220 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5221
5222 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5223 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5224 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
5225 }));
5226 }
5227 (__extension__ ({
5228 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5229
5230 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5231 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5232
5233 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5234 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5235 __internal_VirtualMethod ? __internal_VirtualMethod(f, " ") : (unsigned int)1;
5236 }));
5237 }
5238 if(func->declarator)
5239 OutputDeclarator(func->declarator, f);
5240 (__extension__ ({
5241 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5242
5243 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5244 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5245
5246 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5247 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5248 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
5249 }));
5250 outputLine++;
5251 if(func->declarations)
5252 {
5253 struct Declaration * decl;
5254
5255 for(decl = (*func->declarations).first; decl; decl = decl->next)
5256 {
5257 OutputDeclaration(decl, f);
5258 }
5259 (__extension__ ({
5260 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5261
5262 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5263 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5264
5265 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5266 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5267 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
5268 }));
5269 outputLine++;
5270 }
5271 if(func->body)
5272 {
5273 OutputStatement(func->body, f);
5274 (__extension__ ({
5275 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5276
5277 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5278 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5279
5280 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5281 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5282 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
5283 }));
5284 outputLine++;
5285 }
5286 else
5287 (__extension__ ({
5288 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5289
5290 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5291 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5292
5293 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5294 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5295 __internal_VirtualMethod ? __internal_VirtualMethod(f, ";") : (unsigned int)1;
5296 }));
5297 }
5298
5299 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
5300 {
5301 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
5302
5303 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
5304 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
5305 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
5306 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
5307 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
5308 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExternal", "void OutputExternal(External external, ecere::sys::File f)", OutputExternal, module, 1);
5309 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
5310 }
5311
5312 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
5313 {
5314 switch(init->type)
5315 {
5316 case 0:
5317 {
5318 struct MemberInit * member;
5319
5320 if(init->__anon1.dataMembers)
5321 {
5322 for(member = (*init->__anon1.dataMembers).first; member; member = member->next)
5323 {
5324 OutputMemberInit(member, f);
5325 if(member->next)
5326 (__extension__ ({
5327 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5328
5329 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5330 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5331
5332 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5333 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5334 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
5335 }));
5336 }
5337 }
5338 break;
5339 }
5340 case 1:
5341 OutputClassFunction(init->__anon1.function, f);
5342 break;
5343 }
5344 }
5345
5346 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
5347 {
5348 switch(def->type)
5349 {
5350 case 2:
5351 if(def->__anon1.decl)
5352 {
5353 OutputDeclaration(def->__anon1.decl, f);
5354 if(def->next && def->next->type != 2)
5355 {
5356 (__extension__ ({
5357 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5358
5359 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5360 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5361
5362 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5363 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5364 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
5365 }));
5366 outputLine++;
5367 }
5368 }
5369 break;
5370 case 1:
5371 {
5372 struct MemberInit * init;
5373
5374 for(init = (*def->__anon1.defProperties).first; init; init = init->next)
5375 {
5376 OutputMemberInit(init, f);
5377 if(init->next)
5378 (__extension__ ({
5379 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5380
5381 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5382 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5383
5384 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5385 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5386 __internal_VirtualMethod ? __internal_VirtualMethod(f, ", ") : (unsigned int)1;
5387 }));
5388 }
5389 (__extension__ ({
5390 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5391
5392 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5393 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5394
5395 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5396 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5397 __internal_VirtualMethod ? __internal_VirtualMethod(f, ";\n\n") : (unsigned int)1;
5398 }));
5399 outputLine += 2;
5400 break;
5401 }
5402 case 0:
5403 OutputClassFunction(def->__anon1.function, f);
5404 (__extension__ ({
5405 unsigned int (*  __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string);
5406
5407 __internal_VirtualMethod = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))__extension__ ({
5408 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
5409
5410 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
5411 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts]);
5412 __internal_VirtualMethod ? __internal_VirtualMethod(f, "\n") : (unsigned int)1;
5413 }));
5414 outputLine++;
5415 break;
5416 }
5417 }
5418