1 /* Code generated from eC source file: output.ec */
3 typedef long long int64;
4 typedef unsigned long long uint64;
8 #elif defined(__TINYC__)
10 #define __builtin_va_list va_list
11 #define __builtin_va_start va_start
12 #define __builtin_va_end va_end
14 #define strcasecmp stricmp
15 #define strncasecmp strnicmp
16 #define __declspec(x) __attribute__((x))
20 typedef long long int64;
21 typedef unsigned long long uint64;
23 typedef __int64 int64;
24 typedef unsigned __int64 uint64;
27 #define __ENDIAN_PAD(x) (8 - (x))
29 #define __ENDIAN_PAD(x) 0
32 #include <sys/types.h>
33 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
35 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
37 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
39 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
41 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
43 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
45 struct __ecereNameSpace__ecere__sys__BTNode;
47 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
49 struct __ecereNameSpace__ecere__sys__BinaryTree
51 struct __ecereNameSpace__ecere__sys__BTNode * root;
53 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
54 void (* FreeKey)(void * key);
55 } __attribute__ ((gcc_struct));
57 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
59 struct __ecereNameSpace__ecere__sys__OldList
66 } __attribute__ ((gcc_struct));
68 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
70 struct __ecereNameSpace__ecere__com__Method
73 struct __ecereNameSpace__ecere__com__Method * parent;
74 struct __ecereNameSpace__ecere__com__Method * left;
75 struct __ecereNameSpace__ecere__com__Method * right;
80 struct __ecereNameSpace__ecere__com__Class * _class;
82 char * dataTypeString;
83 struct Type * dataType;
85 } __attribute__ ((gcc_struct));
87 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
89 struct __ecereNameSpace__ecere__com__Property
91 struct __ecereNameSpace__ecere__com__Property * prev;
92 struct __ecereNameSpace__ecere__com__Property * next;
94 unsigned int isProperty;
97 struct __ecereNameSpace__ecere__com__Class * _class;
98 char * dataTypeString;
99 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
100 struct Type * dataType;
101 void (* Set)(void * , int);
102 int (* Get)(void * );
103 unsigned int (* IsSet)(void * );
107 unsigned int conversion;
108 unsigned int watcherOffset;
110 unsigned int compiled;
111 unsigned int selfWatchable;
112 unsigned int isWatchable;
113 } __attribute__ ((gcc_struct));
115 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
123 } __attribute__ ((gcc_struct));
125 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
129 struct CodePosition start;
130 struct CodePosition end;
131 } __attribute__ ((gcc_struct));
133 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
139 struct __ecereNameSpace__ecere__sys__OldList * attribs;
140 } __attribute__ ((gcc_struct));
142 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
151 struct Attrib * attr;
152 } __attribute__ ((gcc_struct));
153 } __attribute__ ((gcc_struct));
155 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
157 struct ClassDefinition
159 struct ClassDefinition * prev;
160 struct ClassDefinition * next;
162 struct Specifier * _class;
163 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
164 struct __ecereNameSpace__ecere__sys__OldList * definitions;
165 struct Symbol * symbol;
166 struct Location blockStart;
167 struct Location nameLoc;
170 unsigned int deleteWatchable;
171 } __attribute__ ((gcc_struct));
173 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
177 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
181 struct Instantiation * prev;
182 struct Instantiation * next;
184 struct Specifier * _class;
185 struct Expression * exp;
186 struct __ecereNameSpace__ecere__sys__OldList * members;
187 struct Symbol * symbol;
188 unsigned int fullSet;
189 unsigned int isConstant;
190 unsigned char * data;
191 struct Location nameLoc;
192 struct Location insideLoc;
194 } __attribute__ ((gcc_struct));
196 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
200 struct Declaration * prev;
201 struct Declaration * next;
208 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
209 struct __ecereNameSpace__ecere__sys__OldList * declarators;
210 } __attribute__ ((gcc_struct));
211 struct Instantiation * inst;
214 struct Identifier * id;
215 struct Expression * exp;
216 } __attribute__ ((gcc_struct));
217 } __attribute__ ((gcc_struct));
218 struct Specifier * extStorage;
219 struct Symbol * symbol;
221 } __attribute__ ((gcc_struct));
223 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
227 struct Statement * prev;
228 struct Statement * next;
233 struct __ecereNameSpace__ecere__sys__OldList * expressions;
236 struct Identifier * id;
237 struct Statement * stmt;
238 } __attribute__ ((gcc_struct)) labeled;
241 struct Expression * exp;
242 struct Statement * stmt;
243 } __attribute__ ((gcc_struct)) caseStmt;
246 struct __ecereNameSpace__ecere__sys__OldList * declarations;
247 struct __ecereNameSpace__ecere__sys__OldList * statements;
248 struct Context * context;
249 unsigned int isSwitch;
250 } __attribute__ ((gcc_struct)) compound;
253 struct __ecereNameSpace__ecere__sys__OldList * exp;
254 struct Statement * stmt;
255 struct Statement * elseStmt;
256 } __attribute__ ((gcc_struct)) ifStmt;
259 struct __ecereNameSpace__ecere__sys__OldList * exp;
260 struct Statement * stmt;
261 } __attribute__ ((gcc_struct)) switchStmt;
264 struct __ecereNameSpace__ecere__sys__OldList * exp;
265 struct Statement * stmt;
266 } __attribute__ ((gcc_struct)) whileStmt;
269 struct __ecereNameSpace__ecere__sys__OldList * exp;
270 struct Statement * stmt;
271 } __attribute__ ((gcc_struct)) doWhile;
274 struct Statement * init;
275 struct Statement * check;
276 struct __ecereNameSpace__ecere__sys__OldList * increment;
277 struct Statement * stmt;
278 } __attribute__ ((gcc_struct)) forStmt;
281 struct Identifier * id;
282 } __attribute__ ((gcc_struct)) gotoStmt;
285 struct Specifier * spec;
287 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
288 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
289 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
290 } __attribute__ ((gcc_struct)) asmStmt;
293 struct Expression * watcher;
294 struct Expression * object;
295 struct __ecereNameSpace__ecere__sys__OldList * watches;
296 } __attribute__ ((gcc_struct)) _watch;
299 struct Identifier * id;
300 struct __ecereNameSpace__ecere__sys__OldList * exp;
301 struct __ecereNameSpace__ecere__sys__OldList * filter;
302 struct Statement * stmt;
303 } __attribute__ ((gcc_struct)) forEachStmt;
304 struct Declaration * decl;
305 } __attribute__ ((gcc_struct));
306 } __attribute__ ((gcc_struct));
308 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
312 struct TypeName * prev;
313 struct TypeName * next;
315 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
316 struct Declarator * declarator;
318 struct Expression * bitCount;
319 } __attribute__ ((gcc_struct));
321 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
325 struct Initializer * prev;
326 struct Initializer * next;
331 struct Expression * exp;
332 struct __ecereNameSpace__ecere__sys__OldList * list;
333 } __attribute__ ((gcc_struct));
334 unsigned int isConstant;
335 struct Identifier * id;
336 } __attribute__ ((gcc_struct));
338 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
340 struct __ecereNameSpace__ecere__com__DataValue
355 } __attribute__ ((gcc_struct));
356 } __attribute__ ((gcc_struct));
358 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
362 struct Expression * prev;
363 struct Expression * next;
371 struct Identifier * identifier;
372 } __attribute__ ((gcc_struct));
373 struct Statement * compound;
374 struct Instantiation * instance;
378 unsigned int intlString;
379 } __attribute__ ((gcc_struct));
380 struct __ecereNameSpace__ecere__sys__OldList * list;
383 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
384 struct Declarator * decl;
385 } __attribute__ ((gcc_struct)) _classExp;
388 struct Identifier * id;
389 } __attribute__ ((gcc_struct)) classData;
392 struct Expression * exp;
393 struct __ecereNameSpace__ecere__sys__OldList * arguments;
394 struct Location argLoc;
395 } __attribute__ ((gcc_struct)) call;
398 struct Expression * exp;
399 struct __ecereNameSpace__ecere__sys__OldList * index;
400 } __attribute__ ((gcc_struct)) index;
403 struct Expression * exp;
404 struct Identifier * member;
406 unsigned int thisPtr;
407 } __attribute__ ((gcc_struct)) member;
411 struct Expression * exp1;
412 struct Expression * exp2;
413 } __attribute__ ((gcc_struct)) op;
414 struct TypeName * typeName;
415 struct Specifier * _class;
418 struct TypeName * typeName;
419 struct Expression * exp;
420 } __attribute__ ((gcc_struct)) cast;
423 struct Expression * cond;
424 struct __ecereNameSpace__ecere__sys__OldList * exp;
425 struct Expression * elseExp;
426 } __attribute__ ((gcc_struct)) cond;
429 struct TypeName * typeName;
430 struct Expression * size;
431 } __attribute__ ((gcc_struct)) _new;
434 struct TypeName * typeName;
435 struct Expression * size;
436 struct Expression * exp;
437 } __attribute__ ((gcc_struct)) _renew;
441 struct Identifier * id;
442 } __attribute__ ((gcc_struct)) db;
445 struct Expression * ds;
446 struct Expression * name;
447 } __attribute__ ((gcc_struct)) dbopen;
450 struct TypeName * typeName;
451 struct Initializer * initializer;
452 } __attribute__ ((gcc_struct)) initializer;
455 struct Expression * exp;
456 struct TypeName * typeName;
457 } __attribute__ ((gcc_struct)) vaArg;
458 } __attribute__ ((gcc_struct));
459 unsigned int debugValue;
460 struct __ecereNameSpace__ecere__com__DataValue val;
462 unsigned int hasAddress;
463 struct Type * expType;
464 struct Type * destType;
467 unsigned int byReference;
468 unsigned int isConstant;
469 unsigned int addedThis;
470 unsigned int needCast;
471 unsigned int thisPtr;
472 unsigned int opDestType;
473 } __attribute__ ((gcc_struct));
475 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
477 struct TemplateDatatype
479 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
480 struct Declarator * decl;
481 } __attribute__ ((gcc_struct));
483 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
485 struct TemplateArgument;
487 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
489 struct TemplateParameter
491 struct TemplateParameter * prev;
492 struct TemplateParameter * next;
495 struct Identifier * identifier;
498 struct TemplateDatatype * dataType;
500 } __attribute__ ((gcc_struct));
501 struct TemplateArgument * defaultArgument;
502 char * dataTypeString;
503 struct Type * baseType;
504 } __attribute__ ((gcc_struct));
506 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
510 struct Specifier * prev;
511 struct Specifier * next;
519 struct ExtDecl * extDecl;
521 struct Symbol * symbol;
522 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
523 } __attribute__ ((gcc_struct));
526 struct Identifier * id;
527 struct __ecereNameSpace__ecere__sys__OldList * list;
528 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
529 struct __ecereNameSpace__ecere__sys__OldList * definitions;
530 unsigned int addNameSpace;
531 struct Context * ctx;
532 struct ExtDecl * extDeclStruct;
533 } __attribute__ ((gcc_struct));
534 struct Expression * expression;
535 struct Specifier * _class;
536 struct TemplateParameter * templateParameter;
537 } __attribute__ ((gcc_struct));
538 } __attribute__ ((gcc_struct));
540 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
544 struct Identifier * prev;
545 struct Identifier * next;
547 struct Symbol * classSym;
548 struct Specifier * _class;
550 struct Identifier * badID;
551 } __attribute__ ((gcc_struct));
553 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
557 struct Pointer * prev;
558 struct Pointer * next;
560 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
561 struct Pointer * pointer;
562 } __attribute__ ((gcc_struct));
564 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
568 struct Declarator * prev;
569 struct Declarator * next;
572 struct Symbol * symbol;
573 struct Declarator * declarator;
576 struct Identifier * identifier;
579 struct Expression * exp;
580 struct Expression * posExp;
581 struct Attrib * attrib;
582 } __attribute__ ((gcc_struct)) structDecl;
585 struct Expression * exp;
586 struct Specifier * enumClass;
587 } __attribute__ ((gcc_struct)) array;
590 struct __ecereNameSpace__ecere__sys__OldList * parameters;
591 } __attribute__ ((gcc_struct)) function;
594 struct Pointer * pointer;
595 } __attribute__ ((gcc_struct)) pointer;
598 struct ExtDecl * extended;
599 } __attribute__ ((gcc_struct)) extended;
600 } __attribute__ ((gcc_struct));
601 } __attribute__ ((gcc_struct));
603 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
605 struct FunctionDefinition
607 struct FunctionDefinition * prev;
608 struct FunctionDefinition * next;
610 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
611 struct Declarator * declarator;
612 struct __ecereNameSpace__ecere__sys__OldList * declarations;
613 struct Statement * body;
614 struct __ecereNameSpace__ecere__com__Class * _class;
615 struct __ecereNameSpace__ecere__sys__OldList attached;
618 struct Symbol * propSet;
620 unsigned int propertyNoThis;
621 } __attribute__ ((gcc_struct));
623 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
627 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
631 struct External * prev;
632 struct External * next;
635 struct Symbol * symbol;
638 struct FunctionDefinition * function;
639 struct ClassDefinition * _class;
640 struct Declaration * declaration;
642 struct Identifier * id;
643 struct DBTableDef * table;
644 } __attribute__ ((gcc_struct));
646 } __attribute__ ((gcc_struct));
648 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
652 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
656 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
661 struct Symbol * parent;
662 struct Symbol * left;
663 struct Symbol * right;
668 struct __ecereNameSpace__ecere__com__Method * method;
669 struct __ecereNameSpace__ecere__com__Property * _property;
670 struct __ecereNameSpace__ecere__com__Class * registered;
671 } __attribute__ ((gcc_struct));
678 struct External * pointerExternal;
679 struct External * structExternal;
680 } __attribute__ ((gcc_struct));
683 struct External * externalGet;
684 struct External * externalSet;
685 struct External * externalPtr;
686 struct External * externalIsSet;
687 } __attribute__ ((gcc_struct));
690 struct External * methodExternal;
691 struct External * methodCodeExternal;
692 } __attribute__ ((gcc_struct));
693 } __attribute__ ((gcc_struct));
694 unsigned int imported;
695 unsigned int declaredStructSym;
696 struct __ecereNameSpace__ecere__com__Class * _class;
697 unsigned int declaredStruct;
698 unsigned int needConstructor;
699 unsigned int needDestructor;
700 char * constructorName;
703 char * destructorName;
704 struct ModuleImport * module;
705 struct ClassImport * _import;
706 struct Location nameLoc;
707 unsigned int isParam;
708 unsigned int isRemote;
709 unsigned int isStruct;
710 unsigned int fireWatchersDone;
712 unsigned int classData;
713 unsigned int isStatic;
715 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
716 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
717 struct Context * ctx;
719 struct Expression * propCategory;
720 } __attribute__ ((gcc_struct));
722 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
731 struct Symbol * _class;
734 struct __ecereNameSpace__ecere__sys__OldList members;
736 } __attribute__ ((gcc_struct));
739 struct Type * returnType;
740 struct __ecereNameSpace__ecere__sys__OldList params;
741 struct Symbol * thisClass;
742 unsigned int staticMethod;
743 struct TemplateParameter * thisClassTemplate;
744 } __attribute__ ((gcc_struct));
747 struct __ecereNameSpace__ecere__com__Method * method;
748 struct __ecereNameSpace__ecere__com__Class * methodClass;
749 struct __ecereNameSpace__ecere__com__Class * usedClass;
750 } __attribute__ ((gcc_struct));
753 struct Type * arrayType;
755 struct Expression * arraySizeExp;
756 unsigned int freeExp;
757 struct Symbol * enumClass;
758 } __attribute__ ((gcc_struct));
760 struct TemplateParameter * templateParameter;
761 } __attribute__ ((gcc_struct));
771 unsigned int isSigned : 1;
772 unsigned int constant : 1;
773 unsigned int truth : 1;
774 unsigned int byReference : 1;
775 unsigned int extraParam : 1;
776 unsigned int directClassAccess : 1;
777 unsigned int computing : 1;
778 unsigned int keepCast : 1;
779 unsigned int passAsTemplate : 1;
780 unsigned int dllExport : 1;
781 unsigned int attrStdcall : 1;
782 unsigned int declaredWithStruct : 1;
783 unsigned int typedByReference : 1;
784 } __attribute__ ((gcc_struct));
786 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
788 struct __ecereNameSpace__ecere__com__Class
790 struct __ecereNameSpace__ecere__com__Class * prev;
791 struct __ecereNameSpace__ecere__com__Class * next;
797 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
798 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
801 struct __ecereNameSpace__ecere__com__Class * base;
802 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
803 struct __ecereNameSpace__ecere__sys__BinaryTree members;
804 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
805 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
806 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
807 struct __ecereNameSpace__ecere__sys__OldList derivatives;
811 struct __ecereNameSpace__ecere__com__Instance * module;
812 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
813 char * dataTypeString;
814 struct Type * dataType;
816 int defaultAlignment;
817 void (* Initialize)();
819 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
820 char * designerClass;
821 unsigned int noExpansion;
822 char * defaultProperty;
823 unsigned int comRedefinition;
826 unsigned int internalDecl;
828 unsigned int computeSize;
830 int destructionWatchOffset;
832 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
833 int inheritanceAccess;
836 struct __ecereNameSpace__ecere__sys__OldList conversions;
837 struct __ecereNameSpace__ecere__sys__OldList templateParams;
838 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
839 struct __ecereNameSpace__ecere__com__Class * templateClass;
840 struct __ecereNameSpace__ecere__sys__OldList templatized;
842 unsigned int isInstanceClass;
843 unsigned int byValueSystemClass;
844 } __attribute__ ((gcc_struct));
846 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name);
848 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, long long value);
850 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
852 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, char * name, void * function);
854 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
856 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
858 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
860 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
862 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
864 struct __ecereNameSpace__ecere__com__Instance
867 struct __ecereNameSpace__ecere__com__Class * _class;
869 } __attribute__ ((gcc_struct));
871 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
873 struct __ecereNameSpace__ecere__com__DataMember
875 struct __ecereNameSpace__ecere__com__DataMember * prev;
876 struct __ecereNameSpace__ecere__com__DataMember * next;
878 unsigned int isProperty;
881 struct __ecereNameSpace__ecere__com__Class * _class;
882 char * dataTypeString;
883 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
884 struct Type * dataType;
888 struct __ecereNameSpace__ecere__sys__OldList members;
889 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
892 } __attribute__ ((gcc_struct));
894 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
896 struct __ecereNameSpace__ecere__com__SerialBuffer
898 unsigned char * _buffer;
902 } __attribute__ ((gcc_struct));
904 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
906 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
912 char * dataTypeString;
913 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
914 } __attribute__ ((gcc_struct));
915 struct __ecereNameSpace__ecere__com__DataValue expression;
921 struct __ecereNameSpace__ecere__com__DataMember * member;
922 struct __ecereNameSpace__ecere__com__Property * prop;
923 struct __ecereNameSpace__ecere__com__Method * method;
924 } __attribute__ ((gcc_struct));
925 } __attribute__ ((gcc_struct));
926 } __attribute__ ((gcc_struct));
927 } __attribute__ ((gcc_struct));
931 IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
934 typedef union YYSTYPE
939 struct Identifier * id;
940 struct Expression * exp;
941 struct Specifier * specifier;
942 struct __ecereNameSpace__ecere__sys__OldList * list;
943 struct Enumerator * enumerator;
944 struct Declarator * declarator;
945 struct Pointer * pointer;
946 struct Initializer * initializer;
947 struct InitDeclarator * initDeclarator;
948 struct TypeName * typeName;
949 struct Declaration * declaration;
950 struct Statement * stmt;
951 struct FunctionDefinition * function;
952 struct External * external;
953 struct Context * context;
954 struct AsmField * asmField;
955 struct Attrib * attrib;
956 struct ExtDecl * extDecl;
957 struct Attribute * attribute;
958 struct Instantiation * instance;
959 struct MembersInit * membersInit;
960 struct MemberInit * memberInit;
961 struct ClassFunction * classFunction;
962 struct ClassDefinition * _class;
963 struct ClassDef * classDef;
964 struct PropertyDef * prop;
966 struct Symbol * symbol;
967 struct PropertyWatch * propertyWatch;
968 struct TemplateParameter * templateParameter;
969 struct TemplateArgument * templateArgument;
970 struct TemplateDatatype * templateDatatype;
971 struct DBTableEntry * dbtableEntry;
972 struct DBIndexItem * dbindexItem;
973 struct DBTableDef * dbtableDef;
974 } __attribute__ ((gcc_struct)) YYSTYPE;
976 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
980 struct Enumerator * prev;
981 struct Enumerator * next;
983 struct Identifier * id;
984 struct Expression * exp;
985 } __attribute__ ((gcc_struct));
987 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
989 struct InitDeclarator
991 struct InitDeclarator * prev;
992 struct InitDeclarator * next;
994 struct Declarator * declarator;
995 struct Initializer * initializer;
996 } __attribute__ ((gcc_struct));
998 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
1002 struct AsmField * prev;
1003 struct AsmField * next;
1004 struct Location loc;
1006 struct Expression * expression;
1007 struct Identifier * symbolic;
1008 } __attribute__ ((gcc_struct));
1010 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
1014 struct Attribute * prev;
1015 struct Attribute * next;
1016 struct Location loc;
1018 struct Expression * exp;
1019 } __attribute__ ((gcc_struct));
1021 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
1023 struct ClassFunction
1025 struct ClassFunction * prev;
1026 struct ClassFunction * next;
1027 struct Location loc;
1028 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1029 struct Declarator * declarator;
1030 struct __ecereNameSpace__ecere__sys__OldList * declarations;
1031 struct Statement * body;
1032 struct __ecereNameSpace__ecere__com__Class * _class;
1033 struct __ecereNameSpace__ecere__sys__OldList attached;
1036 struct Symbol * propSet;
1037 unsigned int isVirtual;
1038 unsigned int isConstructor;
1039 unsigned int isDestructor;
1040 unsigned int dontMangle;
1043 } __attribute__ ((gcc_struct));
1045 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
1049 struct MembersInit * prev;
1050 struct MembersInit * next;
1051 struct Location loc;
1055 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
1056 struct ClassFunction * function;
1057 } __attribute__ ((gcc_struct));
1058 } __attribute__ ((gcc_struct));
1060 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
1064 struct MemberInit * prev;
1065 struct MemberInit * next;
1066 struct Location loc;
1067 struct Location realLoc;
1068 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
1069 struct Initializer * initializer;
1071 unsigned int variable;
1072 unsigned int takeOutExp;
1073 } __attribute__ ((gcc_struct));
1075 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1079 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1081 struct PropertyWatch;
1083 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1087 struct ClassDef * prev;
1088 struct ClassDef * next;
1089 struct Location loc;
1093 struct Declaration * decl;
1094 struct ClassFunction * function;
1095 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
1096 struct PropertyDef * propertyDef;
1097 struct PropertyWatch * propertyWatch;
1099 struct Identifier * defaultProperty;
1102 struct Identifier * id;
1103 struct Initializer * initializer;
1104 } __attribute__ ((gcc_struct));
1105 } __attribute__ ((gcc_struct));
1108 } __attribute__ ((gcc_struct));
1110 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
1112 struct DBTableEntry;
1114 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
1118 extern YYSTYPE yylval;
1120 extern struct Location yylloc;
1124 unsigned int memoryGuard = 0x0;
1126 void SetMemoryGuard(unsigned int b)
1131 unsigned int GetMemoryGuard()
1136 extern int strcmp(const char * , const char * );
1138 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
1140 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1142 static void OutputIdentifier(struct Identifier * id, struct __ecereNameSpace__ecere__com__Instance * f)
1148 if(id->_class->type == 8)
1150 if(id->_class->templateParameter && id->_class->templateParameter->identifier && id->_class->templateParameter->identifier->string)
1151 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1152 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1154 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1155 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->templateParameter->identifier->string);
1159 if(id->_class->name)
1161 if(!strcmp(id->_class->name, "class"))
1162 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1163 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1165 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1166 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
1168 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1169 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1171 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1172 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->name);
1175 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1176 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1178 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1179 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "::");
1182 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1183 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1185 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1186 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (id && id->string) ? id->string : "(null identifier)");
1189 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
1191 static void OutputOperator(int op, struct __ecereNameSpace__ecere__com__Instance * f)
1196 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1197 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1199 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1200 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "++");
1203 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1204 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1206 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1207 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "--");
1210 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1211 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1213 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1214 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof ");
1217 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1218 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1220 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1221 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<");
1224 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1225 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1227 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1228 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>");
1231 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1232 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1234 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1235 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<=");
1238 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1239 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1241 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1242 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">=");
1245 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1246 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1248 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1249 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "==");
1252 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1253 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1255 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1256 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "!=");
1259 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1260 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1262 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1263 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&&");
1266 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1267 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1269 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1270 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "||");
1273 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1274 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1276 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1277 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*=");
1280 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1281 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1283 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1284 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "/=");
1287 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1288 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1290 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1291 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "%=");
1294 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1295 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1297 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1298 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "+=");
1301 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1302 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1304 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1305 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "-=");
1308 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1309 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1311 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1312 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<=");
1315 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1316 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1318 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1319 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>=");
1322 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1323 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1325 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1326 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&=");
1329 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1330 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1332 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1333 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "^=");
1336 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1337 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1339 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1340 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "|=");
1355 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))__extension__ ({
1356 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1358 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1359 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc])(f, (char)op);
1362 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1363 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1365 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1366 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "delete ");
1371 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1373 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1375 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
1377 if(type->qualifiers)
1379 struct Specifier * spec;
1381 for(spec = (*type->qualifiers).first; spec; spec = spec->next)
1383 OutputSpecifier(spec, f, typeName);
1385 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1386 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1388 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1389 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1392 if(type->declarator)
1394 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1395 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1397 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1398 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1399 OutputDeclarator(type->declarator, f);
1401 if(!type->qualifiers && !type->declarator)
1402 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1403 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1405 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1406 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "...");
1409 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f);
1411 extern unsigned int inCompiler;
1413 extern unsigned int outputLineNumbers;
1415 static void GetSourceName(char * name, const char * src);
1417 extern char * GetIncludeFileFromID(int id);
1419 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f);
1421 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f);
1423 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, char * format, ...);
1425 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f)
1430 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1431 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1433 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1434 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class(");
1435 if(exp->_classExp.specifiers)
1437 struct Specifier * spec;
1439 for(spec = (*exp->_classExp.specifiers).first; spec; spec = spec->next)
1441 OutputSpecifier(spec, f, 0x0);
1443 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1444 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1446 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1447 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1449 if(exp->_classExp.decl)
1451 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1452 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1454 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1455 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1456 OutputDeclarator(exp->_classExp.decl, f);
1458 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1459 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1461 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1462 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1466 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1467 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1469 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1470 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1471 OutputStatement(exp->compound, f);
1472 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1473 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1475 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1476 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1477 if(inCompiler && outputLineNumbers && exp->loc.end.line)
1479 char name[274] = "";
1481 GetSourceName(name, exp->loc.end.included ? GetIncludeFileFromID(exp->loc.end.included) : (((void *)0)));
1482 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", exp->loc.end.line, name);
1487 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1488 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1490 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1491 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new ");
1492 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1493 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1495 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1496 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1497 OutputTypeName(exp->_renew.typeName, f, 0x0);
1498 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1499 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1501 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1502 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1503 OutputExpression(exp->_renew.size, f);
1504 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1505 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1507 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1508 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1511 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1512 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1514 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1515 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new0 ");
1516 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1517 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1519 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1520 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1521 OutputTypeName(exp->_renew.typeName, f, 0x0);
1522 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1523 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1525 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1526 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1527 OutputExpression(exp->_renew.size, f);
1528 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1529 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1531 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1532 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1535 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1536 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1538 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1539 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew ");
1540 OutputExpression(exp->_renew.exp, f);
1541 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1542 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1544 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1545 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1546 OutputTypeName(exp->_renew.typeName, f, 0x0);
1547 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1548 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1550 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1551 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1552 OutputExpression(exp->_renew.size, f);
1553 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1554 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1556 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1557 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1560 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1561 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1563 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1564 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew0 ");
1565 OutputExpression(exp->_renew.exp, f);
1566 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1567 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1569 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1570 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1571 OutputTypeName(exp->_renew.typeName, f, 0x0);
1572 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1573 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1575 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1576 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1577 OutputExpression(exp->_renew.size, f);
1578 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1579 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1581 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1582 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1586 OutputIdentifier(exp->identifier, f);
1590 OutputInstance(exp->instance, f);
1594 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1595 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1597 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1598 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->constant);
1602 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1603 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1605 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1606 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->string);
1611 OutputExpression(exp->op.exp1, f);
1613 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1614 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1616 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1617 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1619 OutputOperator(exp->op.op, f);
1622 if(exp->op.exp1 || (exp->op.exp2->type == 4 && !exp->op.exp2->op.exp1 && exp->op.exp2->op.op == exp->op.op))
1623 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1624 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1626 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1627 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1628 OutputExpression(exp->op.exp2, f);
1634 struct Expression * expression;
1637 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1638 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1640 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1641 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1642 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1643 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1645 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1646 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1649 for(expression = (*exp->list).first; expression; expression = expression->next)
1651 OutputExpression(expression, f);
1652 if(expression->next)
1653 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1654 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1656 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1657 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1660 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1661 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1663 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1664 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1669 struct Expression * expression;
1672 OutputExpression(exp->index.exp, f);
1673 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1674 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1676 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1677 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1678 if(exp->index.index)
1679 for(expression = (*exp->index.index).first; expression; expression = expression->next)
1681 OutputExpression(expression, f);
1682 if(expression->next)
1683 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1684 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1686 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1687 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1689 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1690 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1692 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1693 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1698 OutputExpression(exp->call.exp, f);
1699 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1700 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1702 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1703 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1704 if(exp->call.arguments)
1706 struct Expression * expression;
1708 for(expression = (*exp->call.arguments).first; expression; expression = expression->next)
1710 OutputExpression(expression, f);
1711 if(expression->next)
1712 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1713 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1715 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1716 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1719 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1720 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1722 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1723 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1728 OutputExpression(exp->member.exp, f);
1729 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1730 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1732 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1733 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
1734 if(exp->member.member)
1735 OutputIdentifier(exp->member.member, f);
1738 OutputExpression(exp->member.exp, f);
1739 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1740 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1742 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1743 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "->");
1744 OutputIdentifier(exp->member.member, f);
1747 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1748 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1750 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1751 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof(");
1752 OutputTypeName(exp->typeName, f, 0x0);
1753 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1754 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1756 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1757 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1760 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1761 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1763 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1764 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__alignof__(");
1765 OutputTypeName(exp->typeName, f, 0x0);
1766 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1767 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1769 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1770 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1773 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1774 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1776 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1777 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1778 if(exp->initializer.typeName)
1779 OutputTypeName(exp->initializer.typeName, f, 0x0);
1780 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1781 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1783 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1784 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1785 if(exp->initializer.initializer)
1786 OutputInitializer(exp->initializer.initializer, f);
1789 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1790 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1792 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1793 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1794 OutputTypeName(exp->cast.typeName, f, 0x0);
1795 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1796 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1798 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1799 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1801 OutputExpression(exp->cast.exp, f);
1804 OutputExpression(exp->cond.cond, f);
1805 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1806 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1808 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1809 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ? ");
1811 struct Expression * expression;
1813 for(expression = (*exp->cond.exp).first; expression; expression = expression->next)
1815 OutputExpression(expression, f);
1816 if(expression->next)
1817 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1818 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1820 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1821 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1824 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1825 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1827 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1828 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1829 if(exp->cond.elseExp)
1830 OutputExpression(exp->cond.elseExp, f);
1833 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1834 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1836 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1837 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_arg(");
1838 OutputExpression(exp->vaArg.exp, f);
1839 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1840 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1842 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1843 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1844 OutputTypeName(exp->vaArg.typeName, f, 0x0);
1845 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1846 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1848 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1849 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1852 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1853 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1855 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1856 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1859 struct Expression * expression;
1861 for(expression = (*exp->list).first; expression; expression = expression->next)
1863 OutputExpression(expression, f);
1864 if(expression->next)
1865 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1866 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1868 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1869 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1872 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1873 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1875 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1876 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1881 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1885 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1886 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1888 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1889 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1890 OutputIdentifier(field->symbolic, f);
1891 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1892 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1894 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1895 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1897 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1898 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1900 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1901 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, field->command);
1902 if(field->expression)
1904 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1905 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1907 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1908 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1909 OutputExpression(field->expression, f);
1910 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1911 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1913 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1914 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1918 extern char * strchr(const char * , int);
1920 extern char * __ecereNameSpace__ecere__sys__StripLastDirectory(char * string, char * output);
1922 extern char * sourceFile;
1924 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, char * addedPath);
1926 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
1928 static void GetSourceName(char * name, const char * src)
1933 if(!strchr(src, '/') && !strchr(src, '\\'))
1934 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
1935 __ecereNameSpace__ecere__sys__PathCat(name, src);
1938 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
1939 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
1942 extern char * outputFile;
1944 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1946 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
1948 extern struct Declarator * SpecDeclFromString(char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
1950 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1952 extern struct Identifier * MkIdentifier(char * string);
1954 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
1956 extern struct Specifier * CopySpecifier(struct Specifier * spec);
1958 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
1960 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
1962 extern struct Specifier * MkSpecifierName(char * name);
1964 extern void PrintTypeNoConst(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
1966 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
1968 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
1970 extern void FreeTypeName(struct TypeName * typeName);
1972 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
1974 char name[274] = "";
1975 char origName[274] = "";
1979 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
1980 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1981 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1983 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
1985 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
1991 OutputDeclaration(stmt->decl, f);
1994 OutputIdentifier(stmt->labeled.id, f);
1995 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1996 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1998 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1999 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2001 if(stmt->labeled.stmt)
2003 if(stmt->labeled.stmt->type == 14)
2004 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2005 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2007 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2008 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2009 OutputStatement(stmt->labeled.stmt, f);
2013 if(stmt->caseStmt.exp)
2015 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2016 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2018 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2019 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "case ");
2020 OutputExpression(stmt->caseStmt.exp, f);
2021 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2022 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2024 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2025 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2030 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2031 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2033 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2034 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
2037 if(stmt->caseStmt.stmt)
2039 if(stmt->caseStmt.stmt->type == 14)
2040 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2041 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2043 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2044 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2045 OutputStatement(stmt->caseStmt.stmt, f);
2050 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2051 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2053 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2054 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
2056 if(stmt->compound.declarations)
2058 struct Declaration * decl;
2060 for(decl = (*stmt->compound.declarations).first; decl; decl = decl->next)
2062 OutputDeclaration(decl, f);
2065 if(stmt->compound.statements)
2067 struct Statement * statement;
2069 if(stmt->compound.declarations)
2071 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2072 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2074 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2075 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2078 for(statement = (*stmt->compound.statements).first; statement; statement = statement->next)
2080 OutputStatement(statement, f);
2081 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2082 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2084 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2085 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2089 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2091 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2094 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2095 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2097 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2098 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2103 if(stmt->expressions)
2105 struct Expression * exp;
2107 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2109 OutputExpression(exp, f);
2111 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2112 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2114 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2115 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2118 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2119 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2121 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2122 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2127 struct Expression * exp;
2129 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2130 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2132 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2133 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "if(");
2134 for(exp = (*stmt->ifStmt.exp).first; exp; exp = exp->next)
2136 OutputExpression(exp, f);
2138 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2139 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2141 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2142 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2144 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2145 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2147 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2148 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2150 if(stmt->ifStmt.stmt)
2151 OutputStatement(stmt->ifStmt.stmt, f);
2152 if(stmt->ifStmt.elseStmt)
2154 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2155 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2157 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2158 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2160 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2161 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2163 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2164 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "else");
2165 if(stmt->ifStmt.elseStmt->type != 4)
2167 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2168 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2170 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2171 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2175 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2176 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2178 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2179 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2180 OutputStatement(stmt->ifStmt.elseStmt, f);
2186 struct Expression * exp;
2188 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2189 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2191 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2192 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "switch(");
2193 if(stmt->switchStmt.exp)
2195 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2197 OutputExpression(exp, f);
2199 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2200 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2202 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2203 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2206 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2207 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2209 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2210 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2212 OutputStatement(stmt->switchStmt.stmt, f);
2217 struct Expression * exp;
2219 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2220 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2222 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2223 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2224 if(stmt->switchStmt.exp)
2226 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2228 OutputExpression(exp, f);
2230 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2231 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2233 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2234 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2237 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2238 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2240 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2241 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2243 OutputStatement(stmt->whileStmt.stmt, f);
2248 struct Expression * exp;
2250 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2251 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2253 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2254 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "do\n");
2256 OutputStatement(stmt->whileStmt.stmt, f);
2257 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2258 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2260 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2261 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2262 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2264 OutputExpression(exp, f);
2266 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2267 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2269 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2270 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2272 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2273 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2275 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2276 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");");
2281 struct Expression * exp;
2283 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2284 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2286 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2287 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "for(");
2288 OutputStatement(stmt->forStmt.init, f);
2289 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2290 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2292 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2293 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2294 OutputStatement(stmt->forStmt.check, f);
2295 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2296 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2298 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2299 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2300 if(stmt->forStmt.increment)
2302 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2304 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2307 for(exp = (*stmt->forStmt.increment).first; exp; exp = exp->next)
2309 OutputExpression(exp, f);
2311 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2312 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2314 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2315 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2318 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2319 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2321 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2322 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2324 OutputStatement(stmt->forStmt.stmt, f);
2329 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2330 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2332 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2333 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "goto ");
2334 OutputIdentifier(stmt->gotoStmt.id, f);
2335 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2336 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2338 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2339 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2343 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2344 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2346 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2347 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "continue;");
2350 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2351 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2353 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2354 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "break;");
2358 struct Expression * exp;
2360 if(inCompiler && memoryGuard)
2362 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2364 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
2365 if(exp && exp->expType && exp->expType->kind != 0)
2367 char string[1024] = "";
2368 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
2369 struct Declarator * decl;
2370 struct TypeName * typeName;
2372 if(exp->expType->kind == 20)
2374 if(exp->expType->templateParameter->dataTypeString)
2375 decl = SpecDeclFromString(exp->expType->templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2376 else if(exp->expType->templateParameter->dataType)
2378 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
2379 specs = CopyList(exp->expType->templateParameter->dataType->specifiers, CopySpecifier);
2380 decl = PlugDeclarator(exp->expType->templateParameter->dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2384 ListAdd(specs, MkSpecifierName("uint64"));
2385 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
2390 PrintTypeNoConst(exp->expType, string, exp->expType->kind == 18 ? 0x1 : 0x0, 0x1);
2391 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2393 typeName = MkTypeName(specs, decl);
2394 InstDeclPassTypeName(typeName, 0x0);
2395 OutputTypeName(typeName, f, 0x0);
2396 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
2397 FreeTypeName(typeName);
2401 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2402 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2404 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2405 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "return ");
2408 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2410 if(exp && exp->expType && exp->expType->kind != 0)
2411 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
2413 if(stmt->expressions)
2415 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2417 OutputExpression(exp, f);
2419 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2420 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2422 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2423 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2426 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2427 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2429 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2430 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2431 if(inCompiler && memoryGuard)
2433 struct Expression * exp = stmt->expressions ? (struct Expression *)(*stmt->expressions).last : (((void *)0));
2435 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
2436 if(exp && exp->expType && exp->expType->kind != 0)
2437 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
2439 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
2440 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
2446 struct AsmField * field;
2448 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2449 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2451 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2452 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__asm__ ");
2453 if(stmt->asmStmt.spec)
2454 OutputSpecifier(stmt->asmStmt.spec, f, 0x0);
2455 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2456 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2458 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2459 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2460 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2461 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2463 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2464 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, stmt->asmStmt.statements);
2465 if(stmt->asmStmt.inputFields || stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
2467 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2468 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2470 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2471 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2472 if(stmt->asmStmt.inputFields)
2474 for(field = (*stmt->asmStmt.inputFields).first; field; field = field->next)
2477 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2478 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2480 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2481 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2482 OutputAsmField(field, f);
2486 if(stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
2488 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2489 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2491 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2492 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2493 if(stmt->asmStmt.outputFields)
2495 for(field = (*stmt->asmStmt.outputFields).first; field; field = field->next)
2498 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2499 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2501 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2502 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2503 OutputAsmField(field, f);
2507 if(stmt->asmStmt.clobberedFields)
2509 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2510 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2512 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2513 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2514 for(field = (*stmt->asmStmt.clobberedFields).first; field; field = field->next)
2517 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2518 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2520 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2521 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2522 OutputAsmField(field, f);
2525 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2526 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2528 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2529 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");\n");
2534 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
2536 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
2541 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
2543 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2544 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2546 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2547 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*");
2550 struct Specifier * spec;
2552 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2553 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2555 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2556 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2557 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
2559 OutputSpecifier(spec, f, 0x0);
2561 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2562 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2564 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2565 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2570 OutputPointer(ptr->pointer, f);
2574 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f);
2576 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f);
2578 extern void ProcessExpressionType(struct Expression * exp);
2580 extern void ComputeExpression(struct Expression * exp);
2582 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2587 if(decl->declarator)
2589 OutputDeclarator(decl->declarator, f);
2591 if(decl->structDecl.exp)
2593 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2594 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2596 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2597 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2598 OutputExpression(decl->structDecl.exp, f);
2600 if(decl->structDecl.posExp)
2602 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2603 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2605 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2606 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2607 OutputExpression(decl->structDecl.posExp, f);
2609 if(decl->structDecl.attrib)
2611 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2612 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2614 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2615 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2616 OutputAttrib(decl->structDecl.attrib, f);
2620 OutputIdentifier(decl->identifier, f);
2623 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2624 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2626 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2627 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2628 OutputDeclarator(decl->declarator, f);
2629 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2630 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2632 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2633 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2636 if(decl->extended.extended)
2637 OutputExtDecl(decl->extended.extended, f);
2638 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2639 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2641 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2642 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2643 OutputDeclarator(decl->declarator, f);
2646 OutputDeclarator(decl->declarator, f);
2647 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2648 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2650 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2651 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2652 if(decl->extended.extended)
2653 OutputExtDecl(decl->extended.extended, f);
2656 if(decl->declarator)
2658 OutputDeclarator(decl->declarator, f);
2660 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2661 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2663 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2664 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
2667 ProcessExpressionType(decl->array.exp);
2668 ComputeExpression(decl->array.exp);
2669 OutputExpression(decl->array.exp, f);
2671 else if(decl->array.enumClass)
2673 struct Symbol * _class = decl->array.enumClass->symbol;
2675 if(_class && _class->registered)
2677 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->registered, "enumSize"));
2680 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2681 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2683 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2684 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
2688 struct TypeName * param;
2690 if(decl->declarator)
2691 OutputDeclarator(decl->declarator, f);
2692 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2693 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2695 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2696 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2697 if(decl->function.parameters && (*decl->function.parameters).first)
2699 for(param = (*decl->function.parameters).first; param; param = param->next)
2701 OutputTypeName(param, f, 0x0);
2703 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2704 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2706 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2707 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2710 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2711 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2713 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2714 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2718 if(decl->pointer.pointer)
2719 OutputPointer(decl->pointer.pointer, f);
2720 if(decl->declarator)
2722 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2723 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2725 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2726 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2727 OutputDeclarator(decl->declarator, f);
2733 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
2735 OutputIdentifier(enumerator->id, f);
2738 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2739 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2741 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2742 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
2743 OutputExpression(enumerator->exp, f);
2747 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2750 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2751 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2753 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2754 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, attr->attr);
2757 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2758 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2760 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2761 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2762 OutputExpression(attr->exp, f);
2766 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2771 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2772 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2774 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2775 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute__((");
2778 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2779 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2781 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2782 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute((");
2785 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2786 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2788 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2789 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute_deprecated__((");
2794 struct Attribute * attrib;
2796 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
2799 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2800 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2802 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2803 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2804 OutputAttribute(attrib, f);
2807 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2808 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2810 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2811 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "))");
2814 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
2816 if(extDecl->type == 0 && extDecl->s)
2817 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2818 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2820 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2821 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, extDecl->s);
2822 else if(extDecl->type == 1)
2823 OutputAttrib(extDecl->attr, f);
2826 extern struct Symbol * FindClass(char * name);
2828 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f);
2830 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2835 switch(spec->specifier)
2838 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2839 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2841 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2842 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef");
2845 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2846 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2848 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2849 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "extern");
2852 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2853 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2855 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2856 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static");
2859 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2860 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2862 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2863 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "auto");
2866 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2867 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2869 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2870 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "register");
2873 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2874 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2876 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2877 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__thread");
2880 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2881 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2883 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2884 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "const");
2887 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2888 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2890 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2891 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "volatile");
2894 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2895 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2897 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2898 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "void");
2901 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2902 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2904 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2905 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "char");
2909 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2910 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2912 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2913 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Bool");
2916 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2917 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2919 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2920 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Complex");
2923 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2924 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2926 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2927 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Imaginary");
2930 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2931 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2933 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2934 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "restrict");
2937 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2938 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2940 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2941 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "short");
2944 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2945 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2947 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2948 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "int");
2951 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2952 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2954 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2955 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "uint" : "unsigned int");
2958 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2959 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2961 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2962 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "int64" : "long long");
2965 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2966 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2968 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2969 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_list");
2972 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2973 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2975 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2976 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "long");
2979 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2980 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2982 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2983 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "float");
2986 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2987 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2989 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2990 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "double");
2993 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2994 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2996 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2997 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "signed");
3000 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3001 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3003 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3004 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "unsigned");
3007 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3008 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3010 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3011 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
3014 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3015 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3017 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3018 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "any_object");
3021 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3022 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3024 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3025 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class");
3028 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3029 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3031 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3032 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "thisclass");
3038 OutputExtDecl(spec->extDecl, f);
3041 if(spec->name && !strcmp(spec->name, "class"))
3043 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3044 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3046 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3047 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
3051 struct Symbol * symbol = spec->symbol;
3053 if(!symbol && spec->name)
3054 symbol = FindClass(spec->name);
3057 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3058 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3060 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3061 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, symbol->string ? symbol->string : "(null)");
3064 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3065 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3067 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3068 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, spec->name);
3073 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3074 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3076 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3077 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "enum");
3080 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3081 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3083 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3084 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3085 OutputIdentifier(spec->id, f);
3089 struct Enumerator * enumerator;
3091 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3092 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3094 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3095 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3097 for(enumerator = (*spec->list).first; enumerator; enumerator = enumerator->next)
3099 OutputEnumerator(enumerator, f);
3100 if(enumerator->next)
3101 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3102 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3104 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3105 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3107 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3108 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3110 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3111 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3119 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3120 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3122 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3123 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (spec->type == 3) ? "struct" : "union");
3124 if(spec->extDeclStruct)
3126 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3127 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3129 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3130 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3131 OutputExtDecl(spec->extDeclStruct, f);
3135 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3136 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3138 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3139 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3140 OutputIdentifier(spec->id, f);
3142 if(spec->definitions)
3144 struct ClassDef * def;
3146 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3147 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3149 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3150 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3152 for(def = (*spec->definitions).first; def; def = def->next)
3154 OutputClassDef(def, f);
3156 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3157 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3159 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3160 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "} __attribute__ ((gcc_struct))");
3165 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3166 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3168 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3169 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__typeof(");
3170 OutputExpression(spec->expression, f);
3171 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3172 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3174 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3175 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3178 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3179 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3181 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3182 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "subclass(");
3183 OutputSpecifier(spec->_class, f, 0x0);
3184 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3185 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3187 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3188 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3191 OutputIdentifier(spec->templateParameter->identifier, f);
3196 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
3198 char name[274] = "";
3199 char origName[274] = "";
3203 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
3204 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3205 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3207 if(initializer->type == 1)
3208 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3209 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3211 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3212 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3215 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3216 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3218 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3219 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3220 OutputIdentifier(initializer->id, f);
3221 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3222 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3224 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3225 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
3227 switch(initializer->type)
3231 struct Initializer * init;
3234 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3235 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3237 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3238 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3239 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3240 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3242 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3243 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
3245 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3247 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3250 for(init = (*initializer->list).first; init; init = init->next)
3252 OutputInitializer(init, f);
3254 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3255 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3257 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3258 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, init->next->type == 1 ? "," : ", ");
3260 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3261 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3263 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3264 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3265 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3267 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3275 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3276 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3278 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3279 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3280 if(initializer->exp)
3281 OutputExpression(initializer->exp, f);
3286 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3288 OutputDeclarator(decl->declarator, f);
3289 if(decl->initializer)
3291 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3292 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3294 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3295 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
3296 if(decl->initializer->type == 0)
3297 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3298 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3300 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3301 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3302 OutputInitializer(decl->initializer, f);
3306 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3308 struct Specifier * spec;
3309 char origName[274] = "";
3315 struct InitDeclarator * d;
3319 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3320 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3322 if(decl->declarators && (*decl->declarators).first)
3324 for(d = (*decl->declarators).first; d; d = d->next)
3327 char name[274] = "";
3329 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
3330 if(inCompiler && outputLineNumbers && decl->loc.start.line)
3332 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
3338 if(decl->specifiers)
3340 unsigned int inTypeDef = 0x0;
3342 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3344 if(spec->type == 0 && spec->specifier == TYPEDEF)
3346 OutputSpecifier(spec, f, inTypeDef && !spec->next);
3348 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3349 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3351 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3352 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3355 if(decl->declarators && (*decl->declarators).first)
3357 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3358 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3360 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3361 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3362 for(d = (*decl->declarators).first; d; d = d->next)
3364 OutputInitDeclarator(d, f);
3366 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3367 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3369 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3370 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3377 if(decl->specifiers)
3379 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3381 OutputSpecifier(spec, f, 0x0);
3383 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3384 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3386 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3387 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3390 if(decl->declarators)
3392 struct Declarator * d;
3394 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3395 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3397 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3398 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3399 for(d = (*decl->declarators).first; d; d = d->next)
3401 OutputDeclarator(d, f);
3403 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3404 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3406 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3407 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3410 if(decl->extStorage)
3412 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3413 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3415 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3416 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3417 OutputSpecifier(decl->extStorage, f, 0x0);
3424 OutputInstance(decl->inst, f);
3430 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3431 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3433 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3434 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3436 if(inCompiler && outputLineNumbers && decl->loc.start.line && decl->type == 1)
3438 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3443 static struct FunctionDefinition * curFunction;
3445 extern struct Identifier * GetDeclId(struct Declarator * decl);
3447 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
3449 struct FunctionDefinition * oldFunc = curFunction;
3452 if(func->specifiers)
3454 struct Specifier * spec;
3456 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3458 OutputSpecifier(spec, f, 0x0);
3460 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3461 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3463 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3464 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3466 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3467 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3469 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3470 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3472 if(func->declarator)
3473 OutputDeclarator(func->declarator, f);
3474 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3475 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3477 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3478 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3480 if(func->declarations)
3482 struct Declaration * decl;
3484 for(decl = (*func->declarations).first; decl; decl = decl->next)
3486 OutputDeclaration(decl, f);
3488 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3489 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3491 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3492 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3497 if(inCompiler && memoryGuard)
3499 char name[1024] = "";
3500 struct Identifier * id = GetDeclId(func->declarator);
3502 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
3503 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
3504 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
3507 OutputStatement(func->body, f);
3508 if(inCompiler && memoryGuard)
3510 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
3511 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
3514 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3515 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3517 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3518 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3521 curFunction = oldFunc;
3524 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3526 if(init->identifiers)
3528 if((*init->identifiers).count > 1)
3530 struct Identifier * id;
3532 for(id = (*init->identifiers).first; id; id = id->next)
3534 OutputIdentifier(id, f);
3536 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3537 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3539 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3540 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3543 else if((*init->identifiers).first)
3544 OutputIdentifier((*init->identifiers).first, f);
3545 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3546 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3548 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3549 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
3550 if(init->initializer && init->initializer->type == 0)
3551 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3552 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3554 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3555 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3557 if(init->initializer)
3558 OutputInitializer(init->initializer, f);
3561 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f);
3563 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3569 struct MemberInit * member;
3571 if(init->dataMembers)
3573 for(member = (*init->dataMembers).first; member; member = member->next)
3575 OutputMemberInit(member, f);
3577 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3578 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3580 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3581 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3587 OutputClassFunction(init->function, f);
3592 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
3595 OutputSpecifier(inst->_class, f, 0x0);
3598 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3599 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3601 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3602 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3603 OutputExpression(inst->exp, f);
3605 if(inst->members && (*inst->members).count > 1)
3607 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3608 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3610 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3611 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3614 else if(inst->members)
3615 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3616 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3618 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3619 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " { ");
3621 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3622 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3624 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3625 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{");
3628 struct MembersInit * init;
3630 for(init = (*inst->members).first; init; init = init->next)
3632 OutputMembersInit(init, f);
3633 if(init->type == 0 && init->next)
3635 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3636 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3638 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3639 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3645 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3646 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3648 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3649 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }");
3651 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3652 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3654 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3655 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
3658 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
3660 if(func->specifiers)
3662 struct Specifier * spec;
3664 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3666 OutputSpecifier(spec, f, 0x0);
3668 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3669 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3671 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3672 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3674 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3675 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3677 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3678 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3680 if(func->declarator)
3681 OutputDeclarator(func->declarator, f);
3682 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3683 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3685 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3686 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3688 if(func->declarations)
3690 struct Declaration * decl;
3692 for(decl = (*func->declarations).first; decl; decl = decl->next)
3694 OutputDeclaration(decl, f);
3696 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3697 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3699 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3700 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3705 OutputStatement(func->body, f);
3706 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3707 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3709 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3710 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3714 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3715 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3717 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3718 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3721 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
3728 OutputDeclaration(def->decl, f);
3729 if(def->next && def->next->type != 2)
3731 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3732 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3734 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3735 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3742 struct MemberInit * init;
3744 for(init = (*def->defProperties).first; init; init = init->next)
3746 OutputMemberInit(init, f);
3748 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3749 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3751 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3752 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3754 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3755 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3757 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3758 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n\n");
3763 OutputClassFunction(def->function, f);
3764 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3765 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3767 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3768 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3774 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
3776 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3777 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3779 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3780 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class ");
3781 OutputSpecifier(_class->_class, f, 0x0);
3782 if(_class->baseSpecs)
3784 struct Specifier * spec;
3786 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3787 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3789 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3790 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
3791 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
3793 OutputSpecifier(spec, f, 0x0);
3796 if(_class->definitions)
3798 struct ClassDef * def;
3800 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3801 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3803 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3804 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3806 for(def = (*_class->definitions).first; def; def = def->next)
3808 OutputClassDef(def, f);
3810 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3811 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3813 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3814 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
3818 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3819 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3821 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3822 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3825 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
3827 struct External * external;
3830 for(external = ast->first; external; external = external->next)
3832 switch(external->type)
3835 OutputFunction(external->function, f);
3836 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3837 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3839 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3840 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3844 if(external->declaration)
3845 OutputDeclaration(external->declaration, f);
3846 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3847 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3849 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3850 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3854 OutputClass(external->_class, f);
3855 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3856 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3858 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3859 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3866 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
3868 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
3870 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
3872 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
3874 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
3876 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
3878 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
3880 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
3883 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
3884 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
3887 typeName->qualifiers = specs;
3888 typeName->declarator = decl;
3889 OutputTypeName(typeName, f, 0x1);
3890 ((typeName ? (__ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor((void *)typeName) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(typeName)) : 0), typeName = 0);
3891 size = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
3892 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3894 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3895 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(f);
3896 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
3897 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3898 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3900 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3901 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, 0, 0);
3902 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
3903 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3905 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3906 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, string, 1, (unsigned int)size);
3907 string[size] = '\0';
3908 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
3909 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
3913 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
3915 struct __ecereNameSpace__ecere__com__GlobalFunction;
3917 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
3919 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3921 struct __ecereNameSpace__ecere__com__Class * class;
3923 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
3924 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
3925 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
3926 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
3927 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
3928 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
3931 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)