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 if(exp->cond.elseExp)
1820 OutputExpression(exp->cond.elseExp, f);
1823 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1824 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1826 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1827 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_arg(");
1828 OutputExpression(exp->vaArg.exp, f);
1829 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1830 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1832 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1833 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1834 OutputTypeName(exp->vaArg.typeName, f, 0x0);
1835 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1836 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1838 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1839 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1842 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1843 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1845 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1846 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1849 struct Expression * expression;
1851 for(expression = (*exp->list).first; expression; expression = expression->next)
1853 OutputExpression(expression, f);
1854 if(expression->next)
1855 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1856 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1858 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1859 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1862 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1863 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1865 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1866 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1871 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1875 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1876 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1878 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1879 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1880 OutputIdentifier(field->symbolic, f);
1881 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1882 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1884 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1885 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1887 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1888 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1890 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1891 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, field->command);
1892 if(field->expression)
1894 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1895 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1897 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1898 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1899 OutputExpression(field->expression, f);
1900 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1901 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1903 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1904 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1908 extern char * strchr(const char * , int);
1910 extern char * __ecereNameSpace__ecere__sys__StripLastDirectory(char * string, char * output);
1912 extern char * sourceFile;
1914 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, char * addedPath);
1916 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
1918 static void GetSourceName(char * name, const char * src)
1923 if(!strchr(src, '/') && !strchr(src, '\\'))
1924 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
1925 __ecereNameSpace__ecere__sys__PathCat(name, src);
1928 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
1929 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
1932 extern char * outputFile;
1934 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1936 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
1938 extern struct Declarator * SpecDeclFromString(char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
1940 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1942 extern struct Identifier * MkIdentifier(char * string);
1944 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
1946 extern struct Specifier * CopySpecifier(struct Specifier * spec);
1948 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
1950 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
1952 extern struct Specifier * MkSpecifierName(char * name);
1954 extern void PrintTypeNoConst(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
1956 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
1958 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
1960 extern void FreeTypeName(struct TypeName * typeName);
1962 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
1964 char name[274] = "";
1965 char origName[274] = "";
1969 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
1970 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1971 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1973 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
1975 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
1981 OutputDeclaration(stmt->decl, f);
1984 OutputIdentifier(stmt->labeled.id, f);
1985 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1986 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1988 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1989 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
1991 if(stmt->labeled.stmt)
1993 if(stmt->labeled.stmt->type == 14)
1994 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1995 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1997 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1998 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
1999 OutputStatement(stmt->labeled.stmt, f);
2003 if(stmt->caseStmt.exp)
2005 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2006 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2008 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2009 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "case ");
2010 OutputExpression(stmt->caseStmt.exp, f);
2011 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2012 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2014 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2015 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2020 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2021 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2023 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2024 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
2027 if(stmt->caseStmt.stmt)
2029 if(stmt->caseStmt.stmt->type == 14)
2030 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2031 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2033 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2034 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2035 OutputStatement(stmt->caseStmt.stmt, f);
2040 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2041 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2043 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2044 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
2046 if(stmt->compound.declarations)
2048 struct Declaration * decl;
2050 for(decl = (*stmt->compound.declarations).first; decl; decl = decl->next)
2052 OutputDeclaration(decl, f);
2055 if(stmt->compound.statements)
2057 struct Statement * statement;
2059 if(stmt->compound.declarations)
2061 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2062 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2064 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2065 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2068 for(statement = (*stmt->compound.statements).first; statement; statement = statement->next)
2070 OutputStatement(statement, f);
2071 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2072 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2074 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2075 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2079 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2081 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2084 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2085 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2087 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2088 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2093 if(stmt->expressions)
2095 struct Expression * exp;
2097 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2099 OutputExpression(exp, f);
2101 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2102 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2104 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2105 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2108 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2109 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2111 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2112 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2117 struct Expression * exp;
2119 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2120 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2122 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2123 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "if(");
2124 for(exp = (*stmt->ifStmt.exp).first; exp; exp = exp->next)
2126 OutputExpression(exp, f);
2128 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2129 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2131 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2132 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2134 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2135 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2137 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2138 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2140 if(stmt->ifStmt.stmt)
2141 OutputStatement(stmt->ifStmt.stmt, f);
2142 if(stmt->ifStmt.elseStmt)
2144 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2145 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2147 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2148 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2150 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2151 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2153 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2154 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "else");
2155 if(stmt->ifStmt.elseStmt->type != 4)
2157 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2158 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2160 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2161 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2165 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2166 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2168 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2169 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2170 OutputStatement(stmt->ifStmt.elseStmt, f);
2176 struct Expression * exp;
2178 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2179 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2181 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2182 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "switch(");
2183 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2185 OutputExpression(exp, f);
2187 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2188 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2190 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2191 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2193 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2194 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2196 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2197 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2199 OutputStatement(stmt->switchStmt.stmt, f);
2204 struct Expression * exp;
2206 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2207 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2209 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2210 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2211 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2213 OutputExpression(exp, f);
2215 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2216 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2218 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2219 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2221 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2222 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2224 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2225 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2227 OutputStatement(stmt->whileStmt.stmt, f);
2232 struct Expression * exp;
2234 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2235 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2237 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2238 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "do\n");
2240 OutputStatement(stmt->whileStmt.stmt, f);
2241 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2242 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2244 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2245 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2246 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2248 OutputExpression(exp, f);
2250 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2251 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2253 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2254 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2256 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2257 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2259 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2260 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");");
2265 struct Expression * exp;
2267 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2268 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2270 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2271 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "for(");
2272 OutputStatement(stmt->forStmt.init, f);
2273 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2274 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2276 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2277 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2278 OutputStatement(stmt->forStmt.check, f);
2279 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2280 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2282 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2283 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2284 if(stmt->forStmt.increment)
2286 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2288 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2291 for(exp = (*stmt->forStmt.increment).first; exp; exp = exp->next)
2293 OutputExpression(exp, f);
2295 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2296 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2298 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2299 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2302 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2303 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2305 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2306 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2308 OutputStatement(stmt->forStmt.stmt, f);
2313 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2314 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2316 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2317 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "goto ");
2318 OutputIdentifier(stmt->gotoStmt.id, f);
2319 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2320 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2322 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2323 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2327 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2328 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2330 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2331 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "continue;");
2334 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2335 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2337 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2338 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "break;");
2342 struct Expression * exp;
2344 if(inCompiler && memoryGuard)
2346 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2348 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
2349 if(exp && exp->expType && exp->expType->kind != 0)
2351 char string[1024] = "";
2352 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
2353 struct Declarator * decl;
2354 struct TypeName * typeName;
2356 if(exp->expType->kind == 20)
2358 if(exp->expType->templateParameter->dataTypeString)
2359 decl = SpecDeclFromString(exp->expType->templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2360 else if(exp->expType->templateParameter->dataType)
2362 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
2363 specs = CopyList(exp->expType->templateParameter->dataType->specifiers, CopySpecifier);
2364 decl = PlugDeclarator(exp->expType->templateParameter->dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2368 ListAdd(specs, MkSpecifierName("uint64"));
2369 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
2374 PrintTypeNoConst(exp->expType, string, exp->expType->kind == 18 ? 0x1 : 0x0, 0x1);
2375 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2377 typeName = MkTypeName(specs, decl);
2378 InstDeclPassTypeName(typeName, 0x0);
2379 OutputTypeName(typeName, f, 0x0);
2380 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
2381 FreeTypeName(typeName);
2385 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2386 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2388 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2389 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "return ");
2392 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2394 if(exp && exp->expType && exp->expType->kind != 0)
2395 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
2397 if(stmt->expressions)
2399 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2401 OutputExpression(exp, f);
2403 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2404 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2406 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2407 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2410 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2411 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2413 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2414 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2415 if(inCompiler && memoryGuard)
2417 struct Expression * exp = stmt->expressions ? (struct Expression *)(*stmt->expressions).last : (((void *)0));
2419 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
2420 if(exp && exp->expType && exp->expType->kind != 0)
2421 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
2423 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
2424 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
2430 struct AsmField * field;
2432 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2433 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2435 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2436 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__asm__ ");
2437 if(stmt->asmStmt.spec)
2438 OutputSpecifier(stmt->asmStmt.spec, f, 0x0);
2439 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2440 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2442 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2443 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2444 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2445 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2447 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2448 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, stmt->asmStmt.statements);
2449 if(stmt->asmStmt.inputFields || stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
2451 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2452 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2454 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2455 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2456 if(stmt->asmStmt.inputFields)
2458 for(field = (*stmt->asmStmt.inputFields).first; field; field = field->next)
2461 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2462 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2464 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2465 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2466 OutputAsmField(field, f);
2470 if(stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
2472 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2473 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2475 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2476 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2477 if(stmt->asmStmt.outputFields)
2479 for(field = (*stmt->asmStmt.outputFields).first; field; field = field->next)
2482 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2483 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2485 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2486 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2487 OutputAsmField(field, f);
2491 if(stmt->asmStmt.clobberedFields)
2493 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2494 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2496 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2497 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2498 for(field = (*stmt->asmStmt.clobberedFields).first; field; field = field->next)
2501 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2502 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2504 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2505 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2506 OutputAsmField(field, f);
2509 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2510 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2512 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2513 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");\n");
2518 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
2520 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
2525 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
2527 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2528 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2530 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2531 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*");
2534 struct Specifier * spec;
2536 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2537 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2539 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2540 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2541 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
2543 OutputSpecifier(spec, f, 0x0);
2545 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2546 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2548 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2549 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2554 OutputPointer(ptr->pointer, f);
2558 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f);
2560 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f);
2562 extern void ProcessExpressionType(struct Expression * exp);
2564 extern void ComputeExpression(struct Expression * exp);
2566 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2571 if(decl->declarator)
2573 OutputDeclarator(decl->declarator, f);
2575 if(decl->structDecl.exp)
2577 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2578 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2580 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2581 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2582 OutputExpression(decl->structDecl.exp, f);
2584 if(decl->structDecl.posExp)
2586 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2587 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2589 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2590 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2591 OutputExpression(decl->structDecl.posExp, f);
2593 if(decl->structDecl.attrib)
2595 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2596 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2598 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2599 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2600 OutputAttrib(decl->structDecl.attrib, f);
2604 OutputIdentifier(decl->identifier, f);
2607 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2608 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2610 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2611 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2612 OutputDeclarator(decl->declarator, f);
2613 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2614 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2616 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2617 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2620 if(decl->extended.extended)
2621 OutputExtDecl(decl->extended.extended, f);
2622 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2623 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2625 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2626 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2627 OutputDeclarator(decl->declarator, f);
2630 OutputDeclarator(decl->declarator, f);
2631 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2632 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2634 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2635 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2636 if(decl->extended.extended)
2637 OutputExtDecl(decl->extended.extended, f);
2640 if(decl->declarator)
2642 OutputDeclarator(decl->declarator, f);
2644 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2645 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2647 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2648 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
2651 ProcessExpressionType(decl->array.exp);
2652 ComputeExpression(decl->array.exp);
2653 OutputExpression(decl->array.exp, f);
2655 else if(decl->array.enumClass)
2657 struct Symbol * _class = decl->array.enumClass->symbol;
2659 if(_class && _class->registered)
2661 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->registered, "enumSize"));
2664 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2665 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2667 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2668 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
2672 struct TypeName * param;
2674 if(decl->declarator)
2675 OutputDeclarator(decl->declarator, f);
2676 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2677 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2679 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2680 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2681 if(decl->function.parameters && (*decl->function.parameters).first)
2683 for(param = (*decl->function.parameters).first; param; param = param->next)
2685 OutputTypeName(param, f, 0x0);
2687 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2688 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2690 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2691 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2694 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2695 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2697 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2698 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2702 if(decl->pointer.pointer)
2703 OutputPointer(decl->pointer.pointer, f);
2704 if(decl->declarator)
2706 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2707 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2709 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2710 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2711 OutputDeclarator(decl->declarator, f);
2717 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
2719 OutputIdentifier(enumerator->id, f);
2722 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2723 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2725 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2726 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
2727 OutputExpression(enumerator->exp, f);
2731 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2734 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2735 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2737 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2738 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, attr->attr);
2741 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2742 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2744 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2745 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2746 OutputExpression(attr->exp, f);
2750 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2755 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2756 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2758 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2759 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute__((");
2762 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2763 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2765 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2766 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute((");
2769 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2770 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2772 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2773 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute_deprecated__((");
2778 struct Attribute * attrib;
2780 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
2783 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2784 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2786 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2787 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2788 OutputAttribute(attrib, f);
2791 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2792 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2794 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2795 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "))");
2798 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
2800 if(extDecl->type == 0 && extDecl->s)
2801 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2802 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2804 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2805 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, extDecl->s);
2806 else if(extDecl->type == 1)
2807 OutputAttrib(extDecl->attr, f);
2810 extern struct Symbol * FindClass(char * name);
2812 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f);
2814 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2819 switch(spec->specifier)
2822 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2823 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2825 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2826 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef");
2829 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2830 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2832 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2833 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "extern");
2836 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2837 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2839 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2840 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static");
2843 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2844 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2846 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2847 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "auto");
2850 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2851 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2853 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2854 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "register");
2857 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2858 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2860 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2861 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__thread");
2864 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2865 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2867 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2868 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "const");
2871 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2872 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2874 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2875 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "volatile");
2878 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2879 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2881 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2882 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "void");
2885 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2886 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2888 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2889 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "char");
2893 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2894 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2896 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2897 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Bool");
2900 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2901 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2903 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2904 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Complex");
2907 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2908 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2910 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2911 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Imaginary");
2914 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2915 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2917 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2918 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "restrict");
2921 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2922 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2924 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2925 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "short");
2928 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2929 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2931 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2932 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "int");
2935 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2936 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2938 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2939 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "uint" : "unsigned int");
2942 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2943 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2945 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2946 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "int64" : "long long");
2949 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2950 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2952 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2953 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_list");
2956 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2957 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2959 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2960 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "long");
2963 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2964 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2966 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2967 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "float");
2970 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2971 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2973 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2974 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "double");
2977 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2978 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2980 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2981 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "signed");
2984 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2985 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2987 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2988 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "unsigned");
2991 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2992 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2994 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2995 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
2998 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2999 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3001 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3002 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "any_object");
3005 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3006 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3008 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3009 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class");
3012 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3013 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3015 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3016 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "thisclass");
3022 OutputExtDecl(spec->extDecl, f);
3025 if(spec->name && !strcmp(spec->name, "class"))
3027 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3028 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3030 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3031 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
3035 struct Symbol * symbol = spec->symbol;
3037 if(!symbol && spec->name)
3038 symbol = FindClass(spec->name);
3041 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3042 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3044 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3045 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, symbol->string ? symbol->string : "(null)");
3048 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3049 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3051 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3052 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, spec->name);
3057 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3058 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3060 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3061 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "enum");
3064 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3065 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3067 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3068 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3069 OutputIdentifier(spec->id, f);
3073 struct Enumerator * enumerator;
3075 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3076 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3078 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3079 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3081 for(enumerator = (*spec->list).first; enumerator; enumerator = enumerator->next)
3083 OutputEnumerator(enumerator, f);
3084 if(enumerator->next)
3085 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3086 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3088 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3089 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3091 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3092 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3094 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3095 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3103 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3104 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3106 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3107 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (spec->type == 3) ? "struct" : "union");
3108 if(spec->extDeclStruct)
3110 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3111 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3113 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3114 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3115 OutputExtDecl(spec->extDeclStruct, f);
3119 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3120 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3122 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3123 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3124 OutputIdentifier(spec->id, f);
3126 if(spec->definitions)
3128 struct ClassDef * def;
3130 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3131 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3133 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3134 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3136 for(def = (*spec->definitions).first; def; def = def->next)
3138 OutputClassDef(def, f);
3140 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3141 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3143 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3144 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "} __attribute__ ((gcc_struct))");
3149 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3150 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3152 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3153 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__typeof(");
3154 OutputExpression(spec->expression, f);
3155 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3156 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3158 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3159 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3162 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3163 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3165 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3166 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "subclass(");
3167 OutputSpecifier(spec->_class, f, 0x0);
3168 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3169 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3171 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3172 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3175 OutputIdentifier(spec->templateParameter->identifier, f);
3180 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
3182 char name[274] = "";
3183 char origName[274] = "";
3187 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
3188 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3189 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3191 switch(initializer->type)
3195 struct Initializer * init;
3197 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3198 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3200 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3201 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3203 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3205 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3208 for(init = (*initializer->list).first; init; init = init->next)
3210 OutputInitializer(init, f);
3212 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3213 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3215 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3216 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3218 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3219 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3221 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3222 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3223 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3225 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3232 if(initializer->exp)
3233 OutputExpression(initializer->exp, f);
3238 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3240 OutputDeclarator(decl->declarator, f);
3241 if(decl->initializer)
3243 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3244 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3246 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3247 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
3248 OutputInitializer(decl->initializer, f);
3252 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3254 struct Specifier * spec;
3255 char origName[274] = "";
3261 struct InitDeclarator * d;
3265 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3266 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3268 if(decl->declarators && (*decl->declarators).first)
3270 for(d = (*decl->declarators).first; d; d = d->next)
3273 char name[274] = "";
3275 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
3276 if(inCompiler && outputLineNumbers && decl->loc.start.line)
3278 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
3284 if(decl->specifiers)
3286 unsigned int inTypeDef = 0x0;
3288 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3290 if(spec->type == 0 && spec->specifier == TYPEDEF)
3292 OutputSpecifier(spec, f, inTypeDef && !spec->next);
3294 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3295 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3297 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3298 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3301 if(decl->declarators && (*decl->declarators).first)
3303 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3304 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3306 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3307 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3308 for(d = (*decl->declarators).first; d; d = d->next)
3310 OutputInitDeclarator(d, f);
3312 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3313 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3315 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3316 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3323 if(decl->specifiers)
3325 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3327 OutputSpecifier(spec, f, 0x0);
3329 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3330 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3332 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3333 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3336 if(decl->declarators)
3338 struct Declarator * d;
3340 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3341 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3343 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3344 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3345 for(d = (*decl->declarators).first; d; d = d->next)
3347 OutputDeclarator(d, f);
3349 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3350 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3352 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3353 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3356 if(decl->extStorage)
3358 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3359 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3361 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3362 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3363 OutputSpecifier(decl->extStorage, f, 0x0);
3370 OutputInstance(decl->inst, f);
3376 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3377 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3379 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3380 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3382 if(inCompiler && outputLineNumbers && decl->loc.start.line && decl->type == 1)
3384 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3389 static struct FunctionDefinition * curFunction;
3391 extern struct Identifier * GetDeclId(struct Declarator * decl);
3393 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
3395 struct FunctionDefinition * oldFunc = curFunction;
3398 if(func->specifiers)
3400 struct Specifier * spec;
3402 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3404 OutputSpecifier(spec, f, 0x0);
3406 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3407 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3409 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3410 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3412 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3413 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3415 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3416 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3418 if(func->declarator)
3419 OutputDeclarator(func->declarator, f);
3420 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3421 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3423 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3424 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3426 if(func->declarations)
3428 struct Declaration * decl;
3430 for(decl = (*func->declarations).first; decl; decl = decl->next)
3432 OutputDeclaration(decl, f);
3434 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3435 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3437 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3438 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3443 if(inCompiler && memoryGuard)
3445 char name[1024] = "";
3446 struct Identifier * id = GetDeclId(func->declarator);
3448 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
3449 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
3450 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
3453 OutputStatement(func->body, f);
3454 if(inCompiler && memoryGuard)
3456 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
3457 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
3460 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3461 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3463 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3464 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3467 curFunction = oldFunc;
3470 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3472 if(init->identifiers)
3474 if((*init->identifiers).count > 1)
3476 struct Identifier * id;
3478 for(id = (*init->identifiers).first; id; id = id->next)
3480 OutputIdentifier(id, f);
3482 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3483 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3485 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3486 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3489 else if((*init->identifiers).first)
3490 OutputIdentifier((*init->identifiers).first, f);
3491 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3492 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3494 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3495 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
3497 if(init->initializer)
3498 OutputInitializer(init->initializer, f);
3501 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f);
3503 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3509 struct MemberInit * member;
3511 if(init->dataMembers)
3513 for(member = (*init->dataMembers).first; member; member = member->next)
3515 OutputMemberInit(member, f);
3517 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3518 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3520 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3521 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3527 OutputClassFunction(init->function, f);
3532 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
3535 OutputSpecifier(inst->_class, f, 0x0);
3538 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3539 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3541 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3542 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3543 OutputExpression(inst->exp, f);
3545 if(inst->members && (*inst->members).count > 1)
3547 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3548 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3550 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3551 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3554 else if(inst->members)
3555 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3556 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3558 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3559 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " { ");
3561 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3562 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3564 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3565 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{");
3568 struct MembersInit * init;
3570 for(init = (*inst->members).first; init; init = init->next)
3572 OutputMembersInit(init, f);
3573 if(init->type == 0 && init->next)
3575 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3576 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3578 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3579 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3585 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3586 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3588 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3589 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }");
3591 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3592 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3594 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3595 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
3598 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
3600 if(func->specifiers)
3602 struct Specifier * spec;
3604 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3606 OutputSpecifier(spec, f, 0x0);
3608 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3609 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3611 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3612 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3614 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3615 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3617 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3618 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3620 if(func->declarator)
3621 OutputDeclarator(func->declarator, f);
3622 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3623 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3625 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3626 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3628 if(func->declarations)
3630 struct Declaration * decl;
3632 for(decl = (*func->declarations).first; decl; decl = decl->next)
3634 OutputDeclaration(decl, f);
3636 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3637 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3639 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3640 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3645 OutputStatement(func->body, f);
3646 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3647 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3649 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3650 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3654 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3655 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3657 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3658 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3661 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
3668 OutputDeclaration(def->decl, f);
3669 if(def->next && def->next->type != 2)
3671 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3672 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3674 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3675 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3682 struct MemberInit * init;
3684 for(init = (*def->defProperties).first; init; init = init->next)
3686 OutputMemberInit(init, f);
3688 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3689 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3691 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3692 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3694 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3695 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3697 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3698 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n\n");
3703 OutputClassFunction(def->function, f);
3704 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3705 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3707 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3708 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3714 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
3716 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3717 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3719 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3720 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class ");
3721 OutputSpecifier(_class->_class, f, 0x0);
3722 if(_class->baseSpecs)
3724 struct Specifier * spec;
3726 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3727 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3729 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3730 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
3731 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
3733 OutputSpecifier(spec, f, 0x0);
3736 if(_class->definitions)
3738 struct ClassDef * def;
3740 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3741 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3743 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3744 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3746 for(def = (*_class->definitions).first; def; def = def->next)
3748 OutputClassDef(def, f);
3750 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3751 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3753 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3754 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
3758 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3759 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3761 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3762 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3765 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
3767 struct External * external;
3770 for(external = ast->first; external; external = external->next)
3772 switch(external->type)
3775 OutputFunction(external->function, f);
3776 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3777 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3779 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3780 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3784 OutputDeclaration(external->declaration, f);
3785 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3786 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3788 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3789 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3793 OutputClass(external->_class, f);
3794 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3795 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3797 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3798 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3805 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
3807 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
3809 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
3811 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
3813 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
3815 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
3817 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
3819 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
3822 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
3823 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
3826 typeName->qualifiers = specs;
3827 typeName->declarator = decl;
3828 OutputTypeName(typeName, f, 0x1);
3829 ((typeName ? (__ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor(typeName) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(typeName)) : 0), typeName = 0);
3830 size = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
3831 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3833 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3834 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(f);
3835 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
3836 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3837 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3839 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3840 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, 0, 0);
3841 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
3842 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3844 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3845 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, string, 1, (unsigned int)size);
3846 string[size] = '\0';
3847 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
3848 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
3852 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
3854 struct __ecereNameSpace__ecere__com__GlobalFunction;
3856 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);
3858 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3860 struct __ecereNameSpace__ecere__com__Class * class;
3862 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
3863 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
3864 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
3865 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
3866 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
3867 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
3870 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)