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 } __attribute__ ((gcc_struct));
337 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
339 struct __ecereNameSpace__ecere__com__DataValue
354 } __attribute__ ((gcc_struct));
355 } __attribute__ ((gcc_struct));
357 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
361 struct Expression * prev;
362 struct Expression * next;
370 struct Identifier * identifier;
371 } __attribute__ ((gcc_struct));
372 struct Statement * compound;
373 struct Instantiation * instance;
377 unsigned int intlString;
378 } __attribute__ ((gcc_struct));
379 struct __ecereNameSpace__ecere__sys__OldList * list;
382 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
383 struct Declarator * decl;
384 } __attribute__ ((gcc_struct)) _classExp;
387 struct Identifier * id;
388 } __attribute__ ((gcc_struct)) classData;
391 struct Expression * exp;
392 struct __ecereNameSpace__ecere__sys__OldList * arguments;
393 struct Location argLoc;
394 } __attribute__ ((gcc_struct)) call;
397 struct Expression * exp;
398 struct __ecereNameSpace__ecere__sys__OldList * index;
399 } __attribute__ ((gcc_struct)) index;
402 struct Expression * exp;
403 struct Identifier * member;
405 unsigned int thisPtr;
406 } __attribute__ ((gcc_struct)) member;
410 struct Expression * exp1;
411 struct Expression * exp2;
412 } __attribute__ ((gcc_struct)) op;
413 struct TypeName * typeName;
414 struct Specifier * _class;
417 struct TypeName * typeName;
418 struct Expression * exp;
419 } __attribute__ ((gcc_struct)) cast;
422 struct Expression * cond;
423 struct __ecereNameSpace__ecere__sys__OldList * exp;
424 struct Expression * elseExp;
425 } __attribute__ ((gcc_struct)) cond;
428 struct TypeName * typeName;
429 struct Expression * size;
430 } __attribute__ ((gcc_struct)) _new;
433 struct TypeName * typeName;
434 struct Expression * size;
435 struct Expression * exp;
436 } __attribute__ ((gcc_struct)) _renew;
440 struct Identifier * id;
441 } __attribute__ ((gcc_struct)) db;
444 struct Expression * ds;
445 struct Expression * name;
446 } __attribute__ ((gcc_struct)) dbopen;
449 struct TypeName * typeName;
450 struct Initializer * initializer;
451 } __attribute__ ((gcc_struct)) initializer;
454 struct Expression * exp;
455 struct TypeName * typeName;
456 } __attribute__ ((gcc_struct)) vaArg;
457 } __attribute__ ((gcc_struct));
458 unsigned int debugValue;
459 struct __ecereNameSpace__ecere__com__DataValue val;
461 unsigned int hasAddress;
462 struct Type * expType;
463 struct Type * destType;
466 unsigned int byReference;
467 unsigned int isConstant;
468 unsigned int addedThis;
469 unsigned int needCast;
470 unsigned int thisPtr;
471 } __attribute__ ((gcc_struct));
473 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
475 struct TemplateDatatype
477 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
478 struct Declarator * decl;
479 } __attribute__ ((gcc_struct));
481 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
483 struct TemplateArgument;
485 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
487 struct TemplateParameter
489 struct TemplateParameter * prev;
490 struct TemplateParameter * next;
493 struct Identifier * identifier;
496 struct TemplateDatatype * dataType;
498 } __attribute__ ((gcc_struct));
499 struct TemplateArgument * defaultArgument;
500 char * dataTypeString;
501 struct Type * baseType;
502 } __attribute__ ((gcc_struct));
504 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
508 struct Specifier * prev;
509 struct Specifier * next;
517 struct ExtDecl * extDecl;
519 struct Symbol * symbol;
520 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
521 } __attribute__ ((gcc_struct));
524 struct Identifier * id;
525 struct __ecereNameSpace__ecere__sys__OldList * list;
526 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
527 struct __ecereNameSpace__ecere__sys__OldList * definitions;
528 unsigned int addNameSpace;
529 struct Context * ctx;
530 struct ExtDecl * extDeclStruct;
531 } __attribute__ ((gcc_struct));
532 struct Expression * expression;
533 struct Specifier * _class;
534 struct TemplateParameter * templateParameter;
535 } __attribute__ ((gcc_struct));
536 } __attribute__ ((gcc_struct));
538 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
542 struct Identifier * prev;
543 struct Identifier * next;
545 struct Symbol * classSym;
546 struct Specifier * _class;
548 struct Identifier * badID;
549 } __attribute__ ((gcc_struct));
551 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
555 struct Pointer * prev;
556 struct Pointer * next;
558 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
559 struct Pointer * pointer;
560 } __attribute__ ((gcc_struct));
562 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
566 struct Declarator * prev;
567 struct Declarator * next;
570 struct Symbol * symbol;
571 struct Declarator * declarator;
574 struct Identifier * identifier;
577 struct Expression * exp;
578 struct Expression * posExp;
579 struct Attrib * attrib;
580 } __attribute__ ((gcc_struct)) structDecl;
583 struct Expression * exp;
584 struct Specifier * enumClass;
585 } __attribute__ ((gcc_struct)) array;
588 struct __ecereNameSpace__ecere__sys__OldList * parameters;
589 } __attribute__ ((gcc_struct)) function;
592 struct Pointer * pointer;
593 } __attribute__ ((gcc_struct)) pointer;
596 struct ExtDecl * extended;
597 } __attribute__ ((gcc_struct)) extended;
598 } __attribute__ ((gcc_struct));
599 } __attribute__ ((gcc_struct));
601 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
603 struct FunctionDefinition
605 struct FunctionDefinition * prev;
606 struct FunctionDefinition * next;
608 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
609 struct Declarator * declarator;
610 struct __ecereNameSpace__ecere__sys__OldList * declarations;
611 struct Statement * body;
612 struct __ecereNameSpace__ecere__com__Class * _class;
613 struct __ecereNameSpace__ecere__sys__OldList attached;
616 struct Symbol * propSet;
618 unsigned int propertyNoThis;
619 } __attribute__ ((gcc_struct));
621 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
625 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
629 struct External * prev;
630 struct External * next;
633 struct Symbol * symbol;
636 struct FunctionDefinition * function;
637 struct ClassDefinition * _class;
638 struct Declaration * declaration;
640 struct Identifier * id;
641 struct DBTableDef * table;
642 } __attribute__ ((gcc_struct));
644 } __attribute__ ((gcc_struct));
646 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
650 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
654 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
659 struct Symbol * parent;
660 struct Symbol * left;
661 struct Symbol * right;
666 struct __ecereNameSpace__ecere__com__Method * method;
667 struct __ecereNameSpace__ecere__com__Property * _property;
668 struct __ecereNameSpace__ecere__com__Class * registered;
669 } __attribute__ ((gcc_struct));
676 struct External * pointerExternal;
677 struct External * structExternal;
678 } __attribute__ ((gcc_struct));
681 struct External * externalGet;
682 struct External * externalSet;
683 struct External * externalPtr;
684 struct External * externalIsSet;
685 } __attribute__ ((gcc_struct));
688 struct External * methodExternal;
689 struct External * methodCodeExternal;
690 } __attribute__ ((gcc_struct));
691 } __attribute__ ((gcc_struct));
692 unsigned int imported;
693 unsigned int declaredStructSym;
694 struct __ecereNameSpace__ecere__com__Class * _class;
695 unsigned int declaredStruct;
696 unsigned int needConstructor;
697 unsigned int needDestructor;
698 char * constructorName;
701 char * destructorName;
702 struct ModuleImport * module;
703 struct ClassImport * _import;
704 struct Location nameLoc;
705 unsigned int isParam;
706 unsigned int isRemote;
707 unsigned int isStruct;
708 unsigned int fireWatchersDone;
710 unsigned int classData;
711 unsigned int isStatic;
713 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
714 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
715 struct Context * ctx;
717 struct Expression * propCategory;
718 } __attribute__ ((gcc_struct));
720 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
729 struct Symbol * _class;
732 struct __ecereNameSpace__ecere__sys__OldList members;
734 } __attribute__ ((gcc_struct));
737 struct Type * returnType;
738 struct __ecereNameSpace__ecere__sys__OldList params;
739 struct Symbol * thisClass;
740 unsigned int staticMethod;
741 struct TemplateParameter * thisClassTemplate;
742 } __attribute__ ((gcc_struct));
745 struct __ecereNameSpace__ecere__com__Method * method;
746 struct __ecereNameSpace__ecere__com__Class * methodClass;
747 struct __ecereNameSpace__ecere__com__Class * usedClass;
748 } __attribute__ ((gcc_struct));
751 struct Type * arrayType;
753 struct Expression * arraySizeExp;
754 unsigned int freeExp;
755 struct Symbol * enumClass;
756 } __attribute__ ((gcc_struct));
758 struct TemplateParameter * templateParameter;
759 } __attribute__ ((gcc_struct));
769 unsigned int isSigned : 1;
770 unsigned int constant : 1;
771 unsigned int truth : 1;
772 unsigned int byReference : 1;
773 unsigned int extraParam : 1;
774 unsigned int directClassAccess : 1;
775 unsigned int computing : 1;
776 unsigned int keepCast : 1;
777 unsigned int passAsTemplate : 1;
778 unsigned int dllExport : 1;
779 unsigned int attrStdcall : 1;
780 unsigned int declaredWithStruct : 1;
781 unsigned int typedByReference : 1;
782 } __attribute__ ((gcc_struct));
784 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
786 struct __ecereNameSpace__ecere__com__Class
788 struct __ecereNameSpace__ecere__com__Class * prev;
789 struct __ecereNameSpace__ecere__com__Class * next;
795 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
796 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
799 struct __ecereNameSpace__ecere__com__Class * base;
800 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
801 struct __ecereNameSpace__ecere__sys__BinaryTree members;
802 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
803 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
804 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
805 struct __ecereNameSpace__ecere__sys__OldList derivatives;
809 struct __ecereNameSpace__ecere__com__Instance * module;
810 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
811 char * dataTypeString;
812 struct Type * dataType;
814 int defaultAlignment;
815 void (* Initialize)();
817 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
818 char * designerClass;
819 unsigned int noExpansion;
820 char * defaultProperty;
821 unsigned int comRedefinition;
823 unsigned int isRemote;
824 unsigned int internalDecl;
826 unsigned int computeSize;
828 int destructionWatchOffset;
830 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
831 int inheritanceAccess;
834 struct __ecereNameSpace__ecere__sys__OldList conversions;
835 struct __ecereNameSpace__ecere__sys__OldList templateParams;
836 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
837 struct __ecereNameSpace__ecere__com__Class * templateClass;
838 struct __ecereNameSpace__ecere__sys__OldList templatized;
840 unsigned int isInstanceClass;
841 unsigned int byValueSystemClass;
842 } __attribute__ ((gcc_struct));
844 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name);
846 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
848 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
850 struct __ecereNameSpace__ecere__com__Instance
853 struct __ecereNameSpace__ecere__com__Class * _class;
855 } __attribute__ ((gcc_struct));
857 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
859 struct __ecereNameSpace__ecere__com__DataMember
861 struct __ecereNameSpace__ecere__com__DataMember * prev;
862 struct __ecereNameSpace__ecere__com__DataMember * next;
864 unsigned int isProperty;
867 struct __ecereNameSpace__ecere__com__Class * _class;
868 char * dataTypeString;
869 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
870 struct Type * dataType;
874 struct __ecereNameSpace__ecere__sys__OldList members;
875 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
878 } __attribute__ ((gcc_struct));
880 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
882 struct __ecereNameSpace__ecere__com__SerialBuffer
884 unsigned char * _buffer;
888 } __attribute__ ((gcc_struct));
890 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
892 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
898 char * dataTypeString;
899 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
900 } __attribute__ ((gcc_struct));
901 struct __ecereNameSpace__ecere__com__DataValue expression;
907 struct __ecereNameSpace__ecere__com__DataMember * member;
908 struct __ecereNameSpace__ecere__com__Property * prop;
909 struct __ecereNameSpace__ecere__com__Method * method;
910 } __attribute__ ((gcc_struct));
911 } __attribute__ ((gcc_struct));
912 } __attribute__ ((gcc_struct));
913 } __attribute__ ((gcc_struct));
917 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
920 typedef union YYSTYPE
925 struct Identifier * id;
926 struct Expression * exp;
927 struct Specifier * specifier;
928 struct __ecereNameSpace__ecere__sys__OldList * list;
929 struct Enumerator * enumerator;
930 struct Declarator * declarator;
931 struct Pointer * pointer;
932 struct Initializer * initializer;
933 struct InitDeclarator * initDeclarator;
934 struct TypeName * typeName;
935 struct Declaration * declaration;
936 struct Statement * stmt;
937 struct FunctionDefinition * function;
938 struct External * external;
939 struct Context * context;
940 struct AsmField * asmField;
941 struct Attrib * attrib;
942 struct ExtDecl * extDecl;
943 struct Attribute * attribute;
944 struct Instantiation * instance;
945 struct MembersInit * membersInit;
946 struct MemberInit * memberInit;
947 struct ClassFunction * classFunction;
948 struct ClassDefinition * _class;
949 struct ClassDef * classDef;
950 struct PropertyDef * prop;
952 struct Symbol * symbol;
953 struct PropertyWatch * propertyWatch;
954 struct TemplateParameter * templateParameter;
955 struct TemplateArgument * templateArgument;
956 struct TemplateDatatype * templateDatatype;
957 struct DBTableEntry * dbtableEntry;
958 struct DBIndexItem * dbindexItem;
959 struct DBTableDef * dbtableDef;
960 } __attribute__ ((gcc_struct)) YYSTYPE;
962 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
966 struct Enumerator * prev;
967 struct Enumerator * next;
969 struct Identifier * id;
970 struct Expression * exp;
971 } __attribute__ ((gcc_struct));
973 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
975 struct InitDeclarator
977 struct InitDeclarator * prev;
978 struct InitDeclarator * next;
980 struct Declarator * declarator;
981 struct Initializer * initializer;
982 } __attribute__ ((gcc_struct));
984 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
988 struct AsmField * prev;
989 struct AsmField * next;
992 struct Expression * expression;
993 struct Identifier * symbolic;
994 } __attribute__ ((gcc_struct));
996 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
1000 struct Attribute * prev;
1001 struct Attribute * next;
1002 struct Location loc;
1004 struct Expression * exp;
1005 } __attribute__ ((gcc_struct));
1007 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
1009 struct ClassFunction
1011 struct ClassFunction * prev;
1012 struct ClassFunction * next;
1013 struct Location loc;
1014 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1015 struct Declarator * declarator;
1016 struct __ecereNameSpace__ecere__sys__OldList * declarations;
1017 struct Statement * body;
1018 struct __ecereNameSpace__ecere__com__Class * _class;
1019 struct __ecereNameSpace__ecere__sys__OldList attached;
1022 struct Symbol * propSet;
1023 unsigned int isVirtual;
1024 unsigned int isConstructor;
1025 unsigned int isDestructor;
1026 unsigned int dontMangle;
1029 } __attribute__ ((gcc_struct));
1031 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
1035 struct MembersInit * prev;
1036 struct MembersInit * next;
1037 struct Location loc;
1041 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
1042 struct ClassFunction * function;
1043 } __attribute__ ((gcc_struct));
1044 } __attribute__ ((gcc_struct));
1046 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
1050 struct MemberInit * prev;
1051 struct MemberInit * next;
1052 struct Location loc;
1053 struct Location realLoc;
1054 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
1055 struct Initializer * initializer;
1057 unsigned int variable;
1058 unsigned int takeOutExp;
1059 } __attribute__ ((gcc_struct));
1061 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1065 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1067 struct PropertyWatch;
1069 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1073 struct ClassDef * prev;
1074 struct ClassDef * next;
1075 struct Location loc;
1079 struct Declaration * decl;
1080 struct ClassFunction * function;
1081 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
1082 struct PropertyDef * propertyDef;
1083 struct PropertyWatch * propertyWatch;
1085 struct Identifier * defaultProperty;
1088 struct Identifier * id;
1089 struct Initializer * initializer;
1090 } __attribute__ ((gcc_struct));
1091 } __attribute__ ((gcc_struct));
1094 } __attribute__ ((gcc_struct));
1096 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
1098 struct DBTableEntry;
1100 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
1104 extern YYSTYPE yylval;
1106 extern struct Location yylloc;
1110 unsigned int memoryGuard = 0x0;
1112 void SetMemoryGuard(unsigned int b)
1117 unsigned int GetMemoryGuard()
1122 extern int strcmp(const char * , const char * );
1124 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
1126 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1128 static void OutputIdentifier(struct Identifier * id, struct __ecereNameSpace__ecere__com__Instance * f)
1134 if(id->_class->type == 8)
1136 if(id->_class->templateParameter && id->_class->templateParameter->identifier && id->_class->templateParameter->identifier->string)
1137 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1138 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1140 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1141 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->templateParameter->identifier->string);
1145 if(id->_class->name)
1147 if(!strcmp(id->_class->name, "class"))
1148 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1149 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1151 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1152 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
1154 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1155 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1157 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1158 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->name);
1161 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1162 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1164 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1165 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "::");
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 && id->string) ? id->string : "(null identifier)");
1175 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
1177 static void OutputOperator(int op, struct __ecereNameSpace__ecere__com__Instance * 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, "++");
1189 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1190 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1192 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1193 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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, "sizeof ");
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, ">>");
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, "|=");
1341 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))__extension__ ({
1342 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1344 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1345 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc])(f, (char)op);
1348 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1349 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1351 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1352 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "delete ");
1357 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1359 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1361 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
1363 if(type->qualifiers)
1365 struct Specifier * spec;
1367 for(spec = (*type->qualifiers).first; spec; spec = spec->next)
1369 OutputSpecifier(spec, f, typeName);
1371 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1372 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1374 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1375 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1378 if(type->declarator)
1380 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1381 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1383 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1384 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1385 OutputDeclarator(type->declarator, f);
1387 if(!type->qualifiers && !type->declarator)
1388 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1389 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1391 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1392 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "...");
1395 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f);
1397 extern unsigned int inCompiler;
1399 extern unsigned int outputLineNumbers;
1401 static void GetSourceName(char * name, const char * src);
1403 extern char * GetIncludeFileFromID(int id);
1405 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f);
1407 extern int printf(char * , ...);
1409 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f);
1411 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, char * format, ...);
1413 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f)
1418 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1419 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1421 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1422 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class(");
1423 if(exp->_classExp.specifiers)
1425 struct Specifier * spec;
1427 for(spec = (*exp->_classExp.specifiers).first; spec; spec = spec->next)
1429 OutputSpecifier(spec, f, 0x0);
1431 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1432 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1434 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1435 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1437 if(exp->_classExp.decl)
1439 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1440 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1442 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1443 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1444 OutputDeclarator(exp->_classExp.decl, f);
1446 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1447 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1449 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1450 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1454 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1455 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1457 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1458 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1459 OutputStatement(exp->compound, f);
1460 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1461 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1463 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1464 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1465 if(inCompiler && outputLineNumbers && exp->loc.end.line)
1467 char name[274] = "";
1469 GetSourceName(name, exp->loc.end.included ? GetIncludeFileFromID(exp->loc.end.included) : (((void *)0)));
1470 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", exp->loc.end.line, name);
1475 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1476 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1478 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1479 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new ");
1480 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1481 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1483 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1484 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1485 OutputTypeName(exp->_renew.typeName, f, 0x0);
1486 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1487 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1489 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1490 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1491 OutputExpression(exp->_renew.size, f);
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, "]");
1499 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1500 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1502 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1503 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new0 ");
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, " ");
1509 OutputTypeName(exp->_renew.typeName, f, 0x0);
1510 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1511 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1513 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1514 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1515 OutputExpression(exp->_renew.size, f);
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, "]");
1523 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1524 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1526 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1527 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew ");
1528 OutputExpression(exp->_renew.exp, f);
1529 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1530 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1532 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1533 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1534 OutputTypeName(exp->_renew.typeName, f, 0x0);
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, "[");
1540 OutputExpression(exp->_renew.size, 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, "]");
1548 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1549 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1551 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1552 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew0 ");
1553 OutputExpression(exp->_renew.exp, f);
1554 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1555 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1557 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1558 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1559 OutputTypeName(exp->_renew.typeName, f, 0x0);
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, "[");
1565 OutputExpression(exp->_renew.size, 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, "]");
1574 OutputIdentifier(exp->identifier, f);
1578 OutputInstance(exp->instance, f);
1582 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1583 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1585 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1586 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->constant);
1592 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1593 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1595 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1596 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->string);
1601 OutputExpression(exp->op.exp1, f);
1603 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1604 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1606 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1607 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1609 OutputOperator(exp->op.op, f);
1612 if(exp->op.exp1 || (exp->op.exp2->type == 4 && !exp->op.exp2->op.exp1 && exp->op.exp2->op.op == exp->op.op))
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, " ");
1618 OutputExpression(exp->op.exp2, f);
1624 struct Expression * expression;
1627 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1628 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1630 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1631 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1632 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1633 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1635 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1636 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1639 for(expression = (*exp->list).first; expression; expression = expression->next)
1641 OutputExpression(expression, f);
1642 if(expression->next)
1643 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1644 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1646 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1647 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1650 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1651 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1653 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1654 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1659 struct Expression * expression;
1662 OutputExpression(exp->index.exp, f);
1663 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1664 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1666 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1667 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1668 if(exp->index.index)
1669 for(expression = (*exp->index.index).first; expression; expression = expression->next)
1671 OutputExpression(expression, f);
1672 if(expression->next)
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, ", ");
1679 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1680 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1682 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1683 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1688 OutputExpression(exp->call.exp, 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, "(");
1694 if(exp->call.arguments)
1696 struct Expression * expression;
1698 for(expression = (*exp->call.arguments).first; expression; expression = expression->next)
1700 OutputExpression(expression, f);
1701 if(expression->next)
1702 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1703 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1705 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1706 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1709 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1710 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1712 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1713 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1718 OutputExpression(exp->member.exp, 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, ".");
1724 if(exp->member.member)
1725 OutputIdentifier(exp->member.member, 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 OutputIdentifier(exp->member.member, f);
1737 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1738 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1740 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1741 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof(");
1742 OutputTypeName(exp->typeName, f, 0x0);
1743 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1744 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1746 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1747 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1750 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1751 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1753 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1754 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__alignof__(");
1755 OutputTypeName(exp->typeName, f, 0x0);
1756 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1757 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1759 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1760 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1763 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1764 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1766 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1767 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1768 if(exp->initializer.typeName)
1769 OutputTypeName(exp->initializer.typeName, f, 0x0);
1770 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1771 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1773 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1774 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1775 if(exp->initializer.initializer)
1776 OutputInitializer(exp->initializer.initializer, f);
1779 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1780 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1782 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1783 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1784 OutputTypeName(exp->cast.typeName, f, 0x0);
1785 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1786 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1788 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1789 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1791 OutputExpression(exp->cast.exp, f);
1794 OutputExpression(exp->cond.cond, f);
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 struct Expression * expression;
1803 for(expression = (*exp->cond.exp).first; expression; expression = expression->next)
1805 OutputExpression(expression, f);
1806 if(expression->next)
1807 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1808 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1810 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1811 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1814 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1815 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1817 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1818 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1819 OutputExpression(exp->cond.elseExp, f);
1822 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1823 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1825 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1826 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_arg(");
1827 OutputExpression(exp->vaArg.exp, f);
1828 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1829 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1831 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1832 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1833 OutputTypeName(exp->vaArg.typeName, f, 0x0);
1834 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1835 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1837 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1838 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1841 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1842 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1844 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1845 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1848 struct Expression * expression;
1850 for(expression = (*exp->list).first; expression; expression = expression->next)
1852 OutputExpression(expression, f);
1853 if(expression->next)
1854 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1855 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1857 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1858 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1861 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1862 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1864 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1865 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1870 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1874 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1875 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1877 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1878 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1879 OutputIdentifier(field->symbolic, f);
1880 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1881 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1883 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1884 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1886 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1887 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1889 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1890 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, field->command);
1891 if(field->expression)
1893 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1894 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1896 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1897 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1898 OutputExpression(field->expression, f);
1899 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1900 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1902 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1903 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1907 extern char * strchr(const char * , int);
1909 extern char * __ecereNameSpace__ecere__sys__StripLastDirectory(char * string, char * output);
1911 extern char * sourceFile;
1913 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, char * addedPath);
1915 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
1917 static void GetSourceName(char * name, const char * src)
1922 if(!strchr(src, '/') && !strchr(src, '\\'))
1923 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
1924 __ecereNameSpace__ecere__sys__PathCat(name, src);
1927 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
1928 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
1931 extern char * outputFile;
1933 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1935 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
1937 extern struct Declarator * SpecDeclFromString(char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
1939 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1941 extern struct Identifier * MkIdentifier(char * string);
1943 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
1945 extern struct Specifier * CopySpecifier(struct Specifier * spec);
1947 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
1949 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
1951 extern struct Specifier * MkSpecifierName(char * name);
1953 extern void PrintTypeNoConst(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
1955 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
1957 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
1959 extern void FreeTypeName(struct TypeName * typeName);
1961 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
1963 char name[274] = "";
1964 char origName[274] = "";
1968 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
1969 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1970 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1972 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
1974 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
1980 OutputDeclaration(stmt->decl, f);
1983 OutputIdentifier(stmt->labeled.id, f);
1984 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1985 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1987 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1988 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
1990 if(stmt->labeled.stmt)
1992 if(stmt->labeled.stmt->type == 14)
1993 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1994 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1996 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1997 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
1998 OutputStatement(stmt->labeled.stmt, f);
2002 if(stmt->caseStmt.exp)
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, "case ");
2009 OutputExpression(stmt->caseStmt.exp, f);
2010 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2011 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2013 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2014 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2019 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2020 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2022 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2023 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
2026 if(stmt->caseStmt.stmt)
2028 if(stmt->caseStmt.stmt->type == 14)
2029 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2030 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2032 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2033 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2034 OutputStatement(stmt->caseStmt.stmt, f);
2039 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2040 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2042 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2043 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
2045 if(stmt->compound.declarations)
2047 struct Declaration * decl;
2049 for(decl = (*stmt->compound.declarations).first; decl; decl = decl->next)
2051 OutputDeclaration(decl, f);
2054 if(stmt->compound.statements)
2056 struct Statement * statement;
2058 if(stmt->compound.declarations)
2060 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2061 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2063 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2064 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2067 for(statement = (*stmt->compound.statements).first; statement; statement = statement->next)
2069 OutputStatement(statement, f);
2070 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2071 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2073 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2074 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2078 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2080 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2083 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2084 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2086 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2087 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2092 if(stmt->expressions)
2094 struct Expression * exp;
2096 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2098 OutputExpression(exp, f);
2100 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2101 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2103 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2104 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2107 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2108 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2110 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2111 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2116 struct Expression * exp;
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, "if(");
2123 for(exp = (*stmt->ifStmt.exp).first; exp; exp = exp->next)
2125 OutputExpression(exp, f);
2127 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2128 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2130 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2131 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2133 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2134 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2136 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2137 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2139 if(stmt->ifStmt.stmt)
2140 OutputStatement(stmt->ifStmt.stmt, f);
2141 if(stmt->ifStmt.elseStmt)
2143 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2144 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2146 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2147 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2149 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2150 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2152 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2153 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "else");
2154 if(stmt->ifStmt.elseStmt->type != 4)
2156 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2157 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2159 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2160 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2164 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2165 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2167 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2168 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2169 OutputStatement(stmt->ifStmt.elseStmt, f);
2175 struct Expression * exp;
2177 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2178 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2180 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2181 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "switch(");
2182 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2184 OutputExpression(exp, f);
2186 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2187 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2189 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2190 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2192 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2193 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2195 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2196 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2198 OutputStatement(stmt->switchStmt.stmt, f);
2203 struct Expression * exp;
2205 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2206 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2208 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2209 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2210 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2212 OutputExpression(exp, f);
2214 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2215 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2217 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2218 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2220 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2221 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2223 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2224 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2226 OutputStatement(stmt->whileStmt.stmt, f);
2231 struct Expression * exp;
2233 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2234 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2236 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2237 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "do\n");
2239 OutputStatement(stmt->whileStmt.stmt, f);
2240 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2241 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2243 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2244 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2245 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2247 OutputExpression(exp, f);
2249 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2250 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2252 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2253 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2255 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2256 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2258 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2259 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");");
2264 struct Expression * exp;
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, "for(");
2271 OutputStatement(stmt->forStmt.init, 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, " ");
2277 OutputStatement(stmt->forStmt.check, f);
2278 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2279 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2281 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2282 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2283 if(stmt->forStmt.increment)
2285 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2287 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2290 for(exp = (*stmt->forStmt.increment).first; exp; exp = exp->next)
2292 OutputExpression(exp, f);
2294 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2295 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2297 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2298 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2301 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2302 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2304 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2305 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2307 OutputStatement(stmt->forStmt.stmt, f);
2312 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2313 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2315 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2316 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "goto ");
2317 OutputIdentifier(stmt->gotoStmt.id, 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, ";");
2326 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2327 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2329 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2330 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "continue;");
2333 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2334 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2336 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2337 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "break;");
2341 struct Expression * exp;
2343 if(inCompiler && memoryGuard)
2345 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2347 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
2348 if(exp && exp->expType && exp->expType->kind != 0)
2350 char string[1024] = "";
2351 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
2352 struct Declarator * decl;
2353 struct TypeName * typeName;
2355 if(exp->expType->kind == 20)
2357 if(exp->expType->templateParameter->dataTypeString)
2358 decl = SpecDeclFromString(exp->expType->templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2359 else if(exp->expType->templateParameter->dataType)
2361 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
2362 specs = CopyList(exp->expType->templateParameter->dataType->specifiers, CopySpecifier);
2363 decl = PlugDeclarator(exp->expType->templateParameter->dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2367 ListAdd(specs, MkSpecifierName("uint64"));
2368 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
2373 PrintTypeNoConst(exp->expType, string, exp->expType->kind == 18 ? 0x1 : 0x0, 0x1);
2374 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2376 typeName = MkTypeName(specs, decl);
2377 InstDeclPassTypeName(typeName, 0x0);
2378 OutputTypeName(typeName, f, 0x0);
2379 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
2380 FreeTypeName(typeName);
2384 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2385 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2387 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2388 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "return ");
2391 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2393 if(exp && exp->expType && exp->expType->kind != 0)
2394 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
2396 if(stmt->expressions)
2398 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2400 OutputExpression(exp, f);
2402 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2403 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2405 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2406 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2409 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2410 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2412 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2413 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2414 if(inCompiler && memoryGuard)
2416 struct Expression * exp = stmt->expressions ? (struct Expression *)(*stmt->expressions).last : (((void *)0));
2418 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
2419 if(exp && exp->expType && exp->expType->kind != 0)
2420 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
2422 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
2423 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
2429 struct AsmField * field;
2431 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2432 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2434 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2435 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__asm__ ");
2436 if(stmt->asmStmt.spec)
2437 OutputSpecifier(stmt->asmStmt.spec, f, 0x0);
2438 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2439 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2441 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2442 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2443 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2444 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2446 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2447 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, stmt->asmStmt.statements);
2448 if(stmt->asmStmt.inputFields || stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
2450 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2451 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2453 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2454 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2455 if(stmt->asmStmt.inputFields)
2457 for(field = (*stmt->asmStmt.inputFields).first; field; field = field->next)
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, ",");
2465 OutputAsmField(field, f);
2469 if(stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
2471 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2472 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2474 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2475 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2476 if(stmt->asmStmt.outputFields)
2478 for(field = (*stmt->asmStmt.outputFields).first; field; field = field->next)
2481 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2482 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2484 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2485 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2486 OutputAsmField(field, f);
2490 if(stmt->asmStmt.clobberedFields)
2492 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2493 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2495 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2496 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2497 for(field = (*stmt->asmStmt.clobberedFields).first; field; field = field->next)
2500 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2501 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2503 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2504 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2505 OutputAsmField(field, f);
2508 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2509 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2511 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2512 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");\n");
2517 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
2519 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
2524 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
2526 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2527 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2529 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2530 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*");
2533 struct Specifier * spec;
2535 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2536 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2538 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2539 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2540 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
2542 OutputSpecifier(spec, f, 0x0);
2544 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2545 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2547 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2548 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2553 OutputPointer(ptr->pointer, f);
2557 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f);
2559 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f);
2561 extern void ProcessExpressionType(struct Expression * exp);
2563 extern void ComputeExpression(struct Expression * exp);
2565 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2570 if(decl->declarator)
2572 OutputDeclarator(decl->declarator, f);
2574 if(decl->structDecl.exp)
2576 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2577 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2579 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2580 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2581 OutputExpression(decl->structDecl.exp, f);
2583 if(decl->structDecl.posExp)
2585 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2586 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2588 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2589 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2590 OutputExpression(decl->structDecl.posExp, f);
2592 if(decl->structDecl.attrib)
2594 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2595 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2597 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2598 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2599 OutputAttrib(decl->structDecl.attrib, f);
2603 OutputIdentifier(decl->identifier, f);
2606 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2607 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2609 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2610 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2611 OutputDeclarator(decl->declarator, f);
2612 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2613 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2615 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2616 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2619 if(decl->extended.extended)
2620 OutputExtDecl(decl->extended.extended, f);
2621 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2622 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2624 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2625 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2626 OutputDeclarator(decl->declarator, f);
2629 OutputDeclarator(decl->declarator, f);
2630 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2631 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2633 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2634 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2635 if(decl->extended.extended)
2636 OutputExtDecl(decl->extended.extended, f);
2639 if(decl->declarator)
2641 OutputDeclarator(decl->declarator, f);
2643 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2644 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2646 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2647 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
2650 ProcessExpressionType(decl->array.exp);
2651 ComputeExpression(decl->array.exp);
2652 OutputExpression(decl->array.exp, f);
2654 else if(decl->array.enumClass)
2656 struct Symbol * _class = decl->array.enumClass->symbol;
2658 if(_class && _class->registered)
2660 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->registered, "enumSize"));
2663 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2664 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2666 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2667 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
2671 struct TypeName * param;
2673 if(decl->declarator)
2674 OutputDeclarator(decl->declarator, f);
2675 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2676 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2678 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2679 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2680 if(decl->function.parameters && (*decl->function.parameters).first)
2682 for(param = (*decl->function.parameters).first; param; param = param->next)
2684 OutputTypeName(param, f, 0x0);
2686 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2687 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2689 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2690 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2693 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2694 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2696 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2697 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2701 if(decl->pointer.pointer)
2702 OutputPointer(decl->pointer.pointer, f);
2703 if(decl->declarator)
2705 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2706 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2708 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2709 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2710 OutputDeclarator(decl->declarator, f);
2716 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
2718 OutputIdentifier(enumerator->id, f);
2721 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2722 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2724 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2725 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
2726 OutputExpression(enumerator->exp, f);
2730 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2733 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2734 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2736 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2737 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, attr->attr);
2740 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2741 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2743 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2744 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2745 OutputExpression(attr->exp, f);
2749 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2754 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2755 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2757 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2758 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute__((");
2761 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2762 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2764 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2765 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute((");
2768 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2769 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2771 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2772 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute_deprecated__((");
2777 struct Attribute * attrib;
2779 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
2782 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2783 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2785 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2786 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2787 OutputAttribute(attrib, f);
2790 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2791 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2793 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2794 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "))");
2797 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
2799 if(extDecl->type == 0 && extDecl->s)
2800 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2801 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2803 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2804 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, extDecl->s);
2805 else if(extDecl->type == 1)
2806 OutputAttrib(extDecl->attr, f);
2809 extern struct Symbol * FindClass(char * name);
2811 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f);
2813 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2818 switch(spec->specifier)
2821 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2822 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2824 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2825 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef");
2828 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2829 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2831 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2832 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "extern");
2835 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2836 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2838 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2839 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static");
2842 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2843 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2845 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2846 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "auto");
2849 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2850 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2852 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2853 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "register");
2856 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2857 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2859 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2860 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__thread");
2863 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2864 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2866 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2867 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "const");
2870 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2871 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2873 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2874 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "volatile");
2877 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2878 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2880 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2881 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "void");
2884 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2885 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2887 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2888 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "char");
2892 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2893 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2895 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2896 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Bool");
2899 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2900 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2902 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2903 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Complex");
2906 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2907 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2909 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2910 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Imaginary");
2913 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2914 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2916 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2917 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "restrict");
2920 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2921 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2923 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2924 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "short");
2927 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2928 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2930 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2931 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "int");
2934 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2935 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2937 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2938 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "uint" : "unsigned int");
2941 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2942 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2944 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2945 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "int64" : "long long");
2948 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2949 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2951 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2952 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_list");
2955 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2956 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2958 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2959 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "long");
2962 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2963 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2965 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2966 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "float");
2969 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2970 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2972 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2973 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "double");
2976 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2977 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2979 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2980 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "signed");
2983 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2984 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2986 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2987 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "unsigned");
2990 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2991 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2993 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2994 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
2997 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2998 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3000 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3001 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "any_object");
3004 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3005 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3007 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3008 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class");
3011 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3012 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3014 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3015 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "thisclass");
3021 OutputExtDecl(spec->extDecl, f);
3024 if(spec->name && !strcmp(spec->name, "class"))
3026 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3027 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3029 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3030 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
3034 struct Symbol * symbol = spec->symbol;
3036 if(!symbol && spec->name)
3037 symbol = FindClass(spec->name);
3040 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3041 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3043 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3044 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, symbol->string ? symbol->string : "(null)");
3047 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3048 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3050 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3051 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, spec->name);
3056 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3057 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3059 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3060 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "enum");
3063 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3064 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3066 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3067 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3068 OutputIdentifier(spec->id, f);
3072 struct Enumerator * enumerator;
3074 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3075 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3077 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3078 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3080 for(enumerator = (*spec->list).first; enumerator; enumerator = enumerator->next)
3082 OutputEnumerator(enumerator, f);
3083 if(enumerator->next)
3084 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3085 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3087 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3088 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3090 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3091 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3093 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3094 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3102 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3103 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3105 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3106 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (spec->type == 3) ? "struct" : "union");
3107 if(spec->extDeclStruct)
3109 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3110 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3112 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3113 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3114 OutputExtDecl(spec->extDeclStruct, f);
3118 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3119 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3121 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3122 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3123 OutputIdentifier(spec->id, f);
3125 if(spec->definitions)
3127 struct ClassDef * def;
3129 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3130 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3132 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3133 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3135 for(def = (*spec->definitions).first; def; def = def->next)
3137 OutputClassDef(def, f);
3139 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3140 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3142 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3143 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "} __attribute__ ((gcc_struct))");
3148 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3149 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3151 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3152 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__typeof(");
3153 OutputExpression(spec->expression, f);
3154 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3155 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3157 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3158 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3161 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3162 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3164 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3165 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "subclass(");
3166 OutputSpecifier(spec->_class, f, 0x0);
3167 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3168 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3170 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3171 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3174 OutputIdentifier(spec->templateParameter->identifier, f);
3179 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
3181 char name[274] = "";
3182 char origName[274] = "";
3186 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
3187 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3188 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3190 switch(initializer->type)
3194 struct Initializer * init;
3196 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3197 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3199 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3200 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3202 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3204 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3207 for(init = (*initializer->list).first; init; init = init->next)
3209 OutputInitializer(init, f);
3211 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3212 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3214 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3215 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3217 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3218 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3220 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3221 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3222 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3224 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3231 if(initializer->exp)
3232 OutputExpression(initializer->exp, f);
3237 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3239 OutputDeclarator(decl->declarator, f);
3240 if(decl->initializer)
3242 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3243 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3245 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3246 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
3247 OutputInitializer(decl->initializer, f);
3251 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3253 struct Specifier * spec;
3254 char origName[274] = "";
3260 struct InitDeclarator * d;
3264 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3265 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3267 if(decl->declarators && (*decl->declarators).first)
3269 for(d = (*decl->declarators).first; d; d = d->next)
3272 char name[274] = "";
3274 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
3275 if(inCompiler && outputLineNumbers && decl->loc.start.line)
3277 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
3283 if(decl->specifiers)
3285 unsigned int inTypeDef = 0x0;
3287 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3289 if(spec->type == 0 && spec->specifier == TYPEDEF)
3291 OutputSpecifier(spec, f, inTypeDef && !spec->next);
3293 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3294 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3296 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3297 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3300 if(decl->declarators && (*decl->declarators).first)
3302 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3303 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3305 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3306 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3307 for(d = (*decl->declarators).first; d; d = d->next)
3309 OutputInitDeclarator(d, f);
3311 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3312 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3314 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3315 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3322 if(decl->specifiers)
3324 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3326 OutputSpecifier(spec, f, 0x0);
3328 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3329 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3331 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3332 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3335 if(decl->declarators)
3337 struct Declarator * d;
3339 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3340 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3342 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3343 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3344 for(d = (*decl->declarators).first; d; d = d->next)
3346 OutputDeclarator(d, f);
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->extStorage)
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 OutputSpecifier(decl->extStorage, f, 0x0);
3369 OutputInstance(decl->inst, f);
3375 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3376 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3378 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3379 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3381 if(inCompiler && outputLineNumbers && decl->loc.start.line && decl->type == 1)
3383 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3388 static struct FunctionDefinition * curFunction;
3390 extern struct Identifier * GetDeclId(struct Declarator * decl);
3392 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
3394 struct FunctionDefinition * oldFunc = curFunction;
3397 if(func->specifiers)
3399 struct Specifier * spec;
3401 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3403 OutputSpecifier(spec, f, 0x0);
3405 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3406 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3408 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3409 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3411 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3412 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3414 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3415 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3417 if(func->declarator)
3418 OutputDeclarator(func->declarator, f);
3419 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3420 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3422 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3423 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3425 if(func->declarations)
3427 struct Declaration * decl;
3429 for(decl = (*func->declarations).first; decl; decl = decl->next)
3431 OutputDeclaration(decl, f);
3433 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3434 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3436 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3437 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3442 if(inCompiler && memoryGuard)
3444 char name[1024] = "";
3445 struct Identifier * id = GetDeclId(func->declarator);
3447 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
3448 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
3449 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
3452 OutputStatement(func->body, f);
3453 if(inCompiler && memoryGuard)
3455 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
3456 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
3459 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3460 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3462 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3463 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3466 curFunction = oldFunc;
3469 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3471 if(init->identifiers)
3473 if((*init->identifiers).count > 1)
3475 struct Identifier * id;
3477 for(id = (*init->identifiers).first; id; id = id->next)
3479 OutputIdentifier(id, f);
3481 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3482 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3484 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3485 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3488 else if((*init->identifiers).first)
3489 OutputIdentifier((*init->identifiers).first, f);
3490 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3491 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3493 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3494 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
3496 if(init->initializer)
3497 OutputInitializer(init->initializer, f);
3500 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f);
3502 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3508 struct MemberInit * member;
3510 if(init->dataMembers)
3512 for(member = (*init->dataMembers).first; member; member = member->next)
3514 OutputMemberInit(member, f);
3516 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3517 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3519 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3520 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3526 OutputClassFunction(init->function, f);
3531 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
3534 OutputSpecifier(inst->_class, f, 0x0);
3537 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3538 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3540 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3541 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3542 OutputExpression(inst->exp, f);
3544 if(inst->members && (*inst->members).count > 1)
3546 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3547 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3549 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3550 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3553 else if(inst->members)
3554 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3555 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3557 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3558 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " { ");
3560 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3561 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3563 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3564 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{");
3567 struct MembersInit * init;
3569 for(init = (*inst->members).first; init; init = init->next)
3571 OutputMembersInit(init, f);
3572 if(init->type == 0 && init->next)
3574 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3575 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3577 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3578 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3584 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3585 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3587 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3588 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }");
3590 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3591 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3593 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3594 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
3597 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
3599 if(func->specifiers)
3601 struct Specifier * spec;
3603 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3605 OutputSpecifier(spec, f, 0x0);
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, " ");
3613 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3614 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3616 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3617 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3619 if(func->declarator)
3620 OutputDeclarator(func->declarator, 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, "\n");
3627 if(func->declarations)
3629 struct Declaration * decl;
3631 for(decl = (*func->declarations).first; decl; decl = decl->next)
3633 OutputDeclaration(decl, f);
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");
3644 OutputStatement(func->body, f);
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, "\n");
3653 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3654 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3656 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3657 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3660 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
3667 OutputDeclaration(def->decl, f);
3668 if(def->next && def->next->type != 2)
3670 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3671 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3673 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3674 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3681 struct MemberInit * init;
3683 for(init = (*def->defProperties).first; init; init = init->next)
3685 OutputMemberInit(init, f);
3687 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3688 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3690 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3691 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3693 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3694 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3696 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3697 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n\n");
3702 OutputClassFunction(def->function, f);
3703 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3704 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3706 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3707 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3713 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
3715 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3716 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3718 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3719 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class ");
3720 OutputSpecifier(_class->_class, f, 0x0);
3721 if(_class->baseSpecs)
3723 struct Specifier * spec;
3725 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3726 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3728 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3729 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
3730 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
3732 OutputSpecifier(spec, f, 0x0);
3735 if(_class->definitions)
3737 struct ClassDef * def;
3739 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3740 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3742 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3743 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3745 for(def = (*_class->definitions).first; def; def = def->next)
3747 OutputClassDef(def, f);
3749 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3750 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3752 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3753 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
3757 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3758 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3760 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3761 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3764 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
3766 struct External * external;
3769 for(external = ast->first; external; external = external->next)
3771 switch(external->type)
3774 OutputFunction(external->function, f);
3775 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3776 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3778 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3779 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3783 OutputDeclaration(external->declaration, f);
3784 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3785 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3787 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3788 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3792 OutputClass(external->_class, f);
3793 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3794 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3796 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3797 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3804 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
3806 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
3808 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
3810 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
3812 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
3814 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
3816 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
3818 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
3821 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
3822 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
3825 typeName->qualifiers = specs;
3826 typeName->declarator = decl;
3827 OutputTypeName(typeName, f, 0x1);
3828 ((typeName ? (__ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor(typeName) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(typeName)) : 0), typeName = 0);
3829 size = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
3830 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3832 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3833 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(f);
3834 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
3835 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3836 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3838 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3839 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, 0, 0);
3840 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
3841 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3843 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3844 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, string, 1, (unsigned int)size);
3845 string[size] = '\0';
3846 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
3847 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
3851 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
3853 struct __ecereNameSpace__ecere__com__GlobalFunction;
3855 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);
3857 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3859 struct __ecereNameSpace__ecere__com__Class * class;
3861 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
3862 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
3863 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
3864 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
3865 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
3866 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
3869 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)