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