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