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 unsigned int opDestType;
472 } __attribute__ ((gcc_struct));
474 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
476 struct TemplateDatatype
478 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
479 struct Declarator * decl;
480 } __attribute__ ((gcc_struct));
482 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
484 struct TemplateArgument;
486 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
488 struct TemplateParameter
490 struct TemplateParameter * prev;
491 struct TemplateParameter * next;
494 struct Identifier * identifier;
497 struct TemplateDatatype * dataType;
499 } __attribute__ ((gcc_struct));
500 struct TemplateArgument * defaultArgument;
501 char * dataTypeString;
502 struct Type * baseType;
503 } __attribute__ ((gcc_struct));
505 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
509 struct Specifier * prev;
510 struct Specifier * next;
518 struct ExtDecl * extDecl;
520 struct Symbol * symbol;
521 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
522 } __attribute__ ((gcc_struct));
525 struct Identifier * id;
526 struct __ecereNameSpace__ecere__sys__OldList * list;
527 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
528 struct __ecereNameSpace__ecere__sys__OldList * definitions;
529 unsigned int addNameSpace;
530 struct Context * ctx;
531 struct ExtDecl * extDeclStruct;
532 } __attribute__ ((gcc_struct));
533 struct Expression * expression;
534 struct Specifier * _class;
535 struct TemplateParameter * templateParameter;
536 } __attribute__ ((gcc_struct));
537 } __attribute__ ((gcc_struct));
539 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
543 struct Identifier * prev;
544 struct Identifier * next;
546 struct Symbol * classSym;
547 struct Specifier * _class;
549 struct Identifier * badID;
550 } __attribute__ ((gcc_struct));
552 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
556 struct Pointer * prev;
557 struct Pointer * next;
559 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
560 struct Pointer * pointer;
561 } __attribute__ ((gcc_struct));
563 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
567 struct Declarator * prev;
568 struct Declarator * next;
571 struct Symbol * symbol;
572 struct Declarator * declarator;
575 struct Identifier * identifier;
578 struct Expression * exp;
579 struct Expression * posExp;
580 struct Attrib * attrib;
581 } __attribute__ ((gcc_struct)) structDecl;
584 struct Expression * exp;
585 struct Specifier * enumClass;
586 } __attribute__ ((gcc_struct)) array;
589 struct __ecereNameSpace__ecere__sys__OldList * parameters;
590 } __attribute__ ((gcc_struct)) function;
593 struct Pointer * pointer;
594 } __attribute__ ((gcc_struct)) pointer;
597 struct ExtDecl * extended;
598 } __attribute__ ((gcc_struct)) extended;
599 } __attribute__ ((gcc_struct));
600 } __attribute__ ((gcc_struct));
602 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
604 struct FunctionDefinition
606 struct FunctionDefinition * prev;
607 struct FunctionDefinition * next;
609 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
610 struct Declarator * declarator;
611 struct __ecereNameSpace__ecere__sys__OldList * declarations;
612 struct Statement * body;
613 struct __ecereNameSpace__ecere__com__Class * _class;
614 struct __ecereNameSpace__ecere__sys__OldList attached;
617 struct Symbol * propSet;
619 unsigned int propertyNoThis;
620 } __attribute__ ((gcc_struct));
622 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
626 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
630 struct External * prev;
631 struct External * next;
634 struct Symbol * symbol;
637 struct FunctionDefinition * function;
638 struct ClassDefinition * _class;
639 struct Declaration * declaration;
641 struct Identifier * id;
642 struct DBTableDef * table;
643 } __attribute__ ((gcc_struct));
645 } __attribute__ ((gcc_struct));
647 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
651 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
655 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
660 struct Symbol * parent;
661 struct Symbol * left;
662 struct Symbol * right;
667 struct __ecereNameSpace__ecere__com__Method * method;
668 struct __ecereNameSpace__ecere__com__Property * _property;
669 struct __ecereNameSpace__ecere__com__Class * registered;
670 } __attribute__ ((gcc_struct));
677 struct External * pointerExternal;
678 struct External * structExternal;
679 } __attribute__ ((gcc_struct));
682 struct External * externalGet;
683 struct External * externalSet;
684 struct External * externalPtr;
685 struct External * externalIsSet;
686 } __attribute__ ((gcc_struct));
689 struct External * methodExternal;
690 struct External * methodCodeExternal;
691 } __attribute__ ((gcc_struct));
692 } __attribute__ ((gcc_struct));
693 unsigned int imported;
694 unsigned int declaredStructSym;
695 struct __ecereNameSpace__ecere__com__Class * _class;
696 unsigned int declaredStruct;
697 unsigned int needConstructor;
698 unsigned int needDestructor;
699 char * constructorName;
702 char * destructorName;
703 struct ModuleImport * module;
704 struct ClassImport * _import;
705 struct Location nameLoc;
706 unsigned int isParam;
707 unsigned int isRemote;
708 unsigned int isStruct;
709 unsigned int fireWatchersDone;
711 unsigned int classData;
712 unsigned int isStatic;
714 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
715 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
716 struct Context * ctx;
718 struct Expression * propCategory;
719 } __attribute__ ((gcc_struct));
721 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
730 struct Symbol * _class;
733 struct __ecereNameSpace__ecere__sys__OldList members;
735 } __attribute__ ((gcc_struct));
738 struct Type * returnType;
739 struct __ecereNameSpace__ecere__sys__OldList params;
740 struct Symbol * thisClass;
741 unsigned int staticMethod;
742 struct TemplateParameter * thisClassTemplate;
743 } __attribute__ ((gcc_struct));
746 struct __ecereNameSpace__ecere__com__Method * method;
747 struct __ecereNameSpace__ecere__com__Class * methodClass;
748 struct __ecereNameSpace__ecere__com__Class * usedClass;
749 } __attribute__ ((gcc_struct));
752 struct Type * arrayType;
754 struct Expression * arraySizeExp;
755 unsigned int freeExp;
756 struct Symbol * enumClass;
757 } __attribute__ ((gcc_struct));
759 struct TemplateParameter * templateParameter;
760 } __attribute__ ((gcc_struct));
770 unsigned int isSigned : 1;
771 unsigned int constant : 1;
772 unsigned int truth : 1;
773 unsigned int byReference : 1;
774 unsigned int extraParam : 1;
775 unsigned int directClassAccess : 1;
776 unsigned int computing : 1;
777 unsigned int keepCast : 1;
778 unsigned int passAsTemplate : 1;
779 unsigned int dllExport : 1;
780 unsigned int attrStdcall : 1;
781 unsigned int declaredWithStruct : 1;
782 unsigned int typedByReference : 1;
783 } __attribute__ ((gcc_struct));
785 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
787 struct __ecereNameSpace__ecere__com__Class
789 struct __ecereNameSpace__ecere__com__Class * prev;
790 struct __ecereNameSpace__ecere__com__Class * next;
796 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
797 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
800 struct __ecereNameSpace__ecere__com__Class * base;
801 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
802 struct __ecereNameSpace__ecere__sys__BinaryTree members;
803 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
804 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
805 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
806 struct __ecereNameSpace__ecere__sys__OldList derivatives;
810 struct __ecereNameSpace__ecere__com__Instance * module;
811 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
812 char * dataTypeString;
813 struct Type * dataType;
815 int defaultAlignment;
816 void (* Initialize)();
818 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
819 char * designerClass;
820 unsigned int noExpansion;
821 char * defaultProperty;
822 unsigned int comRedefinition;
825 unsigned int internalDecl;
827 unsigned int computeSize;
829 int destructionWatchOffset;
831 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
832 int inheritanceAccess;
835 struct __ecereNameSpace__ecere__sys__OldList conversions;
836 struct __ecereNameSpace__ecere__sys__OldList templateParams;
837 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
838 struct __ecereNameSpace__ecere__com__Class * templateClass;
839 struct __ecereNameSpace__ecere__sys__OldList templatized;
841 unsigned int isInstanceClass;
842 unsigned int byValueSystemClass;
843 } __attribute__ ((gcc_struct));
845 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name);
847 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
849 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
851 struct __ecereNameSpace__ecere__com__Instance
854 struct __ecereNameSpace__ecere__com__Class * _class;
856 } __attribute__ ((gcc_struct));
858 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
860 struct __ecereNameSpace__ecere__com__DataMember
862 struct __ecereNameSpace__ecere__com__DataMember * prev;
863 struct __ecereNameSpace__ecere__com__DataMember * next;
865 unsigned int isProperty;
868 struct __ecereNameSpace__ecere__com__Class * _class;
869 char * dataTypeString;
870 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
871 struct Type * dataType;
875 struct __ecereNameSpace__ecere__sys__OldList members;
876 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
879 } __attribute__ ((gcc_struct));
881 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
883 struct __ecereNameSpace__ecere__com__SerialBuffer
885 unsigned char * _buffer;
889 } __attribute__ ((gcc_struct));
891 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
893 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
899 char * dataTypeString;
900 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
901 } __attribute__ ((gcc_struct));
902 struct __ecereNameSpace__ecere__com__DataValue expression;
908 struct __ecereNameSpace__ecere__com__DataMember * member;
909 struct __ecereNameSpace__ecere__com__Property * prop;
910 struct __ecereNameSpace__ecere__com__Method * method;
911 } __attribute__ ((gcc_struct));
912 } __attribute__ ((gcc_struct));
913 } __attribute__ ((gcc_struct));
914 } __attribute__ ((gcc_struct));
918 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
921 typedef union YYSTYPE
926 struct Identifier * id;
927 struct Expression * exp;
928 struct Specifier * specifier;
929 struct __ecereNameSpace__ecere__sys__OldList * list;
930 struct Enumerator * enumerator;
931 struct Declarator * declarator;
932 struct Pointer * pointer;
933 struct Initializer * initializer;
934 struct InitDeclarator * initDeclarator;
935 struct TypeName * typeName;
936 struct Declaration * declaration;
937 struct Statement * stmt;
938 struct FunctionDefinition * function;
939 struct External * external;
940 struct Context * context;
941 struct AsmField * asmField;
942 struct Attrib * attrib;
943 struct ExtDecl * extDecl;
944 struct Attribute * attribute;
945 struct Instantiation * instance;
946 struct MembersInit * membersInit;
947 struct MemberInit * memberInit;
948 struct ClassFunction * classFunction;
949 struct ClassDefinition * _class;
950 struct ClassDef * classDef;
951 struct PropertyDef * prop;
953 struct Symbol * symbol;
954 struct PropertyWatch * propertyWatch;
955 struct TemplateParameter * templateParameter;
956 struct TemplateArgument * templateArgument;
957 struct TemplateDatatype * templateDatatype;
958 struct DBTableEntry * dbtableEntry;
959 struct DBIndexItem * dbindexItem;
960 struct DBTableDef * dbtableDef;
961 } __attribute__ ((gcc_struct)) YYSTYPE;
963 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
967 struct Enumerator * prev;
968 struct Enumerator * next;
970 struct Identifier * id;
971 struct Expression * exp;
972 } __attribute__ ((gcc_struct));
974 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
976 struct InitDeclarator
978 struct InitDeclarator * prev;
979 struct InitDeclarator * next;
981 struct Declarator * declarator;
982 struct Initializer * initializer;
983 } __attribute__ ((gcc_struct));
985 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
989 struct AsmField * prev;
990 struct AsmField * next;
993 struct Expression * expression;
994 struct Identifier * symbolic;
995 } __attribute__ ((gcc_struct));
997 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
1001 struct Attribute * prev;
1002 struct Attribute * next;
1003 struct Location loc;
1005 struct Expression * exp;
1006 } __attribute__ ((gcc_struct));
1008 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
1010 struct ClassFunction
1012 struct ClassFunction * prev;
1013 struct ClassFunction * next;
1014 struct Location loc;
1015 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1016 struct Declarator * declarator;
1017 struct __ecereNameSpace__ecere__sys__OldList * declarations;
1018 struct Statement * body;
1019 struct __ecereNameSpace__ecere__com__Class * _class;
1020 struct __ecereNameSpace__ecere__sys__OldList attached;
1023 struct Symbol * propSet;
1024 unsigned int isVirtual;
1025 unsigned int isConstructor;
1026 unsigned int isDestructor;
1027 unsigned int dontMangle;
1030 } __attribute__ ((gcc_struct));
1032 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
1036 struct MembersInit * prev;
1037 struct MembersInit * next;
1038 struct Location loc;
1042 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
1043 struct ClassFunction * function;
1044 } __attribute__ ((gcc_struct));
1045 } __attribute__ ((gcc_struct));
1047 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
1051 struct MemberInit * prev;
1052 struct MemberInit * next;
1053 struct Location loc;
1054 struct Location realLoc;
1055 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
1056 struct Initializer * initializer;
1058 unsigned int variable;
1059 unsigned int takeOutExp;
1060 } __attribute__ ((gcc_struct));
1062 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1066 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1068 struct PropertyWatch;
1070 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1074 struct ClassDef * prev;
1075 struct ClassDef * next;
1076 struct Location loc;
1080 struct Declaration * decl;
1081 struct ClassFunction * function;
1082 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
1083 struct PropertyDef * propertyDef;
1084 struct PropertyWatch * propertyWatch;
1086 struct Identifier * defaultProperty;
1089 struct Identifier * id;
1090 struct Initializer * initializer;
1091 } __attribute__ ((gcc_struct));
1092 } __attribute__ ((gcc_struct));
1095 } __attribute__ ((gcc_struct));
1097 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
1099 struct DBTableEntry;
1101 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
1105 extern YYSTYPE yylval;
1107 extern struct Location yylloc;
1111 unsigned int memoryGuard = 0x0;
1113 void SetMemoryGuard(unsigned int b)
1118 unsigned int GetMemoryGuard()
1123 extern int strcmp(const char * , const char * );
1125 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
1127 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1129 static void OutputIdentifier(struct Identifier * id, struct __ecereNameSpace__ecere__com__Instance * f)
1135 if(id->_class->type == 8)
1137 if(id->_class->templateParameter && id->_class->templateParameter->identifier && id->_class->templateParameter->identifier->string)
1138 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1139 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1141 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1142 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->templateParameter->identifier->string);
1146 if(id->_class->name)
1148 if(!strcmp(id->_class->name, "class"))
1149 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1150 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1152 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1153 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
1155 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1156 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1158 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1159 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->name);
1162 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1163 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1165 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1166 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "::");
1169 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1170 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1172 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1173 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (id && id->string) ? id->string : "(null identifier)");
1176 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
1178 static void OutputOperator(int op, struct __ecereNameSpace__ecere__com__Instance * f)
1183 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1184 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1186 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1187 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "++");
1190 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1191 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1193 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1194 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "--");
1197 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1198 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1200 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1201 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof ");
1204 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1205 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1207 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1208 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<");
1211 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1212 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1214 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1215 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>");
1218 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1219 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1221 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1222 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<=");
1225 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1226 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1228 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1229 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">=");
1232 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1233 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1235 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1236 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "==");
1239 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1240 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1242 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1243 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "!=");
1246 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1247 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1249 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1250 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&&");
1253 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1254 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1256 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1257 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "||");
1260 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1261 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1263 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1264 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*=");
1267 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1268 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1270 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1271 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "/=");
1274 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1275 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1277 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1278 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "%=");
1281 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1282 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1284 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1285 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "+=");
1288 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1289 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1291 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1292 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "-=");
1295 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1296 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1298 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1299 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<=");
1302 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1303 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1305 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1306 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>=");
1309 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1310 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1312 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1313 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&=");
1316 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1317 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1319 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1320 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "^=");
1323 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1324 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1326 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1327 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "|=");
1342 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))__extension__ ({
1343 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1345 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1346 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc])(f, (char)op);
1349 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1350 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1352 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1353 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "delete ");
1358 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1360 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1362 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
1364 if(type->qualifiers)
1366 struct Specifier * spec;
1368 for(spec = (*type->qualifiers).first; spec; spec = spec->next)
1370 OutputSpecifier(spec, f, typeName);
1372 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1373 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1375 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1376 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1379 if(type->declarator)
1381 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1382 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1384 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1385 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1386 OutputDeclarator(type->declarator, f);
1388 if(!type->qualifiers && !type->declarator)
1389 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1390 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1392 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1393 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "...");
1396 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f);
1398 extern unsigned int inCompiler;
1400 extern unsigned int outputLineNumbers;
1402 static void GetSourceName(char * name, const char * src);
1404 extern char * GetIncludeFileFromID(int id);
1406 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f);
1408 extern int printf(char * , ...);
1410 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f);
1412 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, char * format, ...);
1414 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f)
1419 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1420 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1422 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1423 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class(");
1424 if(exp->_classExp.specifiers)
1426 struct Specifier * spec;
1428 for(spec = (*exp->_classExp.specifiers).first; spec; spec = spec->next)
1430 OutputSpecifier(spec, f, 0x0);
1432 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1433 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1435 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1436 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1438 if(exp->_classExp.decl)
1440 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1441 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1443 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1444 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1445 OutputDeclarator(exp->_classExp.decl, f);
1447 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1448 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1450 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1451 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1455 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1456 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1458 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1459 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1460 OutputStatement(exp->compound, f);
1461 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1462 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1464 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1465 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1466 if(inCompiler && outputLineNumbers && exp->loc.end.line)
1468 char name[274] = "";
1470 GetSourceName(name, exp->loc.end.included ? GetIncludeFileFromID(exp->loc.end.included) : (((void *)0)));
1471 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", exp->loc.end.line, name);
1476 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1477 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1479 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1480 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new ");
1481 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1482 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1484 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1485 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1486 OutputTypeName(exp->_renew.typeName, f, 0x0);
1487 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1488 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1490 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1491 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1492 OutputExpression(exp->_renew.size, f);
1493 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1494 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1496 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1497 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1500 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1501 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1503 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1504 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new0 ");
1505 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1506 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1508 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1509 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1510 OutputTypeName(exp->_renew.typeName, f, 0x0);
1511 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1512 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1514 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1515 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1516 OutputExpression(exp->_renew.size, f);
1517 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1518 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1520 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1521 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1524 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1525 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1527 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1528 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew ");
1529 OutputExpression(exp->_renew.exp, f);
1530 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1531 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1533 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1534 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1535 OutputTypeName(exp->_renew.typeName, f, 0x0);
1536 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1537 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1539 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1540 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1541 OutputExpression(exp->_renew.size, f);
1542 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1543 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1545 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1546 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1549 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1550 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1552 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1553 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew0 ");
1554 OutputExpression(exp->_renew.exp, f);
1555 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1556 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1558 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1559 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1560 OutputTypeName(exp->_renew.typeName, f, 0x0);
1561 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1562 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1564 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1565 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1566 OutputExpression(exp->_renew.size, f);
1567 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1568 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1570 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1571 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1575 OutputIdentifier(exp->identifier, f);
1579 OutputInstance(exp->instance, f);
1583 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1584 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1586 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1587 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->constant);
1593 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1594 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1596 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1597 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->string);
1602 OutputExpression(exp->op.exp1, f);
1604 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1605 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1607 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1608 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1610 OutputOperator(exp->op.op, f);
1613 if(exp->op.exp1 || (exp->op.exp2->type == 4 && !exp->op.exp2->op.exp1 && exp->op.exp2->op.op == exp->op.op))
1614 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1615 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1617 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1618 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1619 OutputExpression(exp->op.exp2, f);
1625 struct Expression * expression;
1628 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1629 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1631 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1632 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1633 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1634 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1636 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1637 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1640 for(expression = (*exp->list).first; expression; expression = expression->next)
1642 OutputExpression(expression, f);
1643 if(expression->next)
1644 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1645 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1647 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1648 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1651 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1652 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1654 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1655 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1660 struct Expression * expression;
1663 OutputExpression(exp->index.exp, f);
1664 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1665 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1667 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1668 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1669 if(exp->index.index)
1670 for(expression = (*exp->index.index).first; expression; expression = expression->next)
1672 OutputExpression(expression, f);
1673 if(expression->next)
1674 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1675 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1677 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1678 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1680 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1681 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1683 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1684 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1689 OutputExpression(exp->call.exp, f);
1690 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1691 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1693 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1694 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1695 if(exp->call.arguments)
1697 struct Expression * expression;
1699 for(expression = (*exp->call.arguments).first; expression; expression = expression->next)
1701 OutputExpression(expression, f);
1702 if(expression->next)
1703 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1704 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1706 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1707 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1710 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1711 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1713 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1714 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1719 OutputExpression(exp->member.exp, f);
1720 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1721 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1723 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1724 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
1725 if(exp->member.member)
1726 OutputIdentifier(exp->member.member, f);
1729 OutputExpression(exp->member.exp, f);
1730 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1731 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1733 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1734 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "->");
1735 OutputIdentifier(exp->member.member, f);
1738 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1739 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1741 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1742 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof(");
1743 OutputTypeName(exp->typeName, f, 0x0);
1744 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1745 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1747 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1748 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1751 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1752 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1754 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1755 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__alignof__(");
1756 OutputTypeName(exp->typeName, f, 0x0);
1757 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1758 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1760 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1761 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1764 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1765 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1767 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1768 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1769 if(exp->initializer.typeName)
1770 OutputTypeName(exp->initializer.typeName, f, 0x0);
1771 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1772 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1774 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1775 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1776 if(exp->initializer.initializer)
1777 OutputInitializer(exp->initializer.initializer, f);
1780 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1781 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1783 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1784 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1785 OutputTypeName(exp->cast.typeName, f, 0x0);
1786 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1787 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1789 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1790 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1792 OutputExpression(exp->cast.exp, f);
1795 OutputExpression(exp->cond.cond, f);
1796 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1797 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1799 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1800 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ? ");
1802 struct Expression * expression;
1804 for(expression = (*exp->cond.exp).first; expression; expression = expression->next)
1806 OutputExpression(expression, f);
1807 if(expression->next)
1808 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1809 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1811 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1812 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1815 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1816 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1818 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1819 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1820 if(exp->cond.elseExp)
1821 OutputExpression(exp->cond.elseExp, f);
1824 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1825 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1827 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1828 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_arg(");
1829 OutputExpression(exp->vaArg.exp, f);
1830 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1831 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1833 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1834 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1835 OutputTypeName(exp->vaArg.typeName, f, 0x0);
1836 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1837 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1839 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1840 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1843 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1844 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1846 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1847 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1850 struct Expression * expression;
1852 for(expression = (*exp->list).first; expression; expression = expression->next)
1854 OutputExpression(expression, f);
1855 if(expression->next)
1856 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1857 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1859 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1860 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1863 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1864 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1866 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1867 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1872 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1876 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1877 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1879 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1880 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1881 OutputIdentifier(field->symbolic, f);
1882 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1883 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1885 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1886 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1888 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1889 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1891 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1892 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, field->command);
1893 if(field->expression)
1895 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1896 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1898 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1899 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1900 OutputExpression(field->expression, f);
1901 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1902 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1904 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1905 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1909 extern char * strchr(const char * , int);
1911 extern char * __ecereNameSpace__ecere__sys__StripLastDirectory(char * string, char * output);
1913 extern char * sourceFile;
1915 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, char * addedPath);
1917 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
1919 static void GetSourceName(char * name, const char * src)
1924 if(!strchr(src, '/') && !strchr(src, '\\'))
1925 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
1926 __ecereNameSpace__ecere__sys__PathCat(name, src);
1929 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
1930 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
1933 extern char * outputFile;
1935 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1937 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
1939 extern struct Declarator * SpecDeclFromString(char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
1941 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1943 extern struct Identifier * MkIdentifier(char * string);
1945 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
1947 extern struct Specifier * CopySpecifier(struct Specifier * spec);
1949 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
1951 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
1953 extern struct Specifier * MkSpecifierName(char * name);
1955 extern void PrintTypeNoConst(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
1957 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
1959 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
1961 extern void FreeTypeName(struct TypeName * typeName);
1963 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
1965 char name[274] = "";
1966 char origName[274] = "";
1970 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
1971 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1972 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1974 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
1976 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
1982 OutputDeclaration(stmt->decl, f);
1985 OutputIdentifier(stmt->labeled.id, f);
1986 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1987 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1989 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1990 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
1992 if(stmt->labeled.stmt)
1994 if(stmt->labeled.stmt->type == 14)
1995 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1996 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1998 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1999 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2000 OutputStatement(stmt->labeled.stmt, f);
2004 if(stmt->caseStmt.exp)
2006 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2007 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2009 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2010 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "case ");
2011 OutputExpression(stmt->caseStmt.exp, f);
2012 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2013 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2015 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2016 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2021 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2022 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2024 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2025 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
2028 if(stmt->caseStmt.stmt)
2030 if(stmt->caseStmt.stmt->type == 14)
2031 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2032 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2034 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2035 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2036 OutputStatement(stmt->caseStmt.stmt, f);
2041 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2042 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2044 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2045 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
2047 if(stmt->compound.declarations)
2049 struct Declaration * decl;
2051 for(decl = (*stmt->compound.declarations).first; decl; decl = decl->next)
2053 OutputDeclaration(decl, f);
2056 if(stmt->compound.statements)
2058 struct Statement * statement;
2060 if(stmt->compound.declarations)
2062 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2063 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2065 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2066 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2069 for(statement = (*stmt->compound.statements).first; statement; statement = statement->next)
2071 OutputStatement(statement, f);
2072 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2073 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2075 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2076 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2080 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2082 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2085 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2086 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2088 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2089 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2094 if(stmt->expressions)
2096 struct Expression * exp;
2098 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2100 OutputExpression(exp, f);
2102 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2103 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2105 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2106 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2109 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2110 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2112 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2113 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2118 struct Expression * exp;
2120 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2121 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2123 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2124 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "if(");
2125 for(exp = (*stmt->ifStmt.exp).first; exp; exp = exp->next)
2127 OutputExpression(exp, f);
2129 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2130 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2132 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2133 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2135 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2136 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2138 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2139 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2141 if(stmt->ifStmt.stmt)
2142 OutputStatement(stmt->ifStmt.stmt, f);
2143 if(stmt->ifStmt.elseStmt)
2145 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2146 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2148 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2149 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2151 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2152 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2154 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2155 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "else");
2156 if(stmt->ifStmt.elseStmt->type != 4)
2158 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2159 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2161 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2162 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2166 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2167 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2169 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2170 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2171 OutputStatement(stmt->ifStmt.elseStmt, f);
2177 struct Expression * exp;
2179 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2180 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2182 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2183 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "switch(");
2184 if(stmt->switchStmt.exp)
2186 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2188 OutputExpression(exp, f);
2190 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2191 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2193 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2194 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2197 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2198 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2200 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2201 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2203 OutputStatement(stmt->switchStmt.stmt, f);
2208 struct Expression * exp;
2210 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2211 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2213 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2214 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2215 if(stmt->switchStmt.exp)
2217 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2219 OutputExpression(exp, 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, ", ");
2228 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2229 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2231 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2232 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2234 OutputStatement(stmt->whileStmt.stmt, f);
2239 struct Expression * exp;
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, "do\n");
2247 OutputStatement(stmt->whileStmt.stmt, f);
2248 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2249 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2251 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2252 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2253 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2255 OutputExpression(exp, f);
2257 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2258 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2260 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2261 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2263 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2264 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2266 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2267 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");");
2272 struct Expression * exp;
2274 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2275 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2277 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2278 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "for(");
2279 OutputStatement(stmt->forStmt.init, f);
2280 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2281 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2283 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2284 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2285 OutputStatement(stmt->forStmt.check, f);
2286 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2287 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2289 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2290 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2291 if(stmt->forStmt.increment)
2293 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2295 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2298 for(exp = (*stmt->forStmt.increment).first; exp; exp = exp->next)
2300 OutputExpression(exp, 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, ", ");
2309 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2310 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2312 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2313 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2315 OutputStatement(stmt->forStmt.stmt, f);
2320 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2321 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2323 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2324 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "goto ");
2325 OutputIdentifier(stmt->gotoStmt.id, f);
2326 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2327 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2329 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2330 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
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, "continue;");
2341 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2342 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2344 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2345 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "break;");
2349 struct Expression * exp;
2351 if(inCompiler && memoryGuard)
2353 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2355 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
2356 if(exp && exp->expType && exp->expType->kind != 0)
2358 char string[1024] = "";
2359 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
2360 struct Declarator * decl;
2361 struct TypeName * typeName;
2363 if(exp->expType->kind == 20)
2365 if(exp->expType->templateParameter->dataTypeString)
2366 decl = SpecDeclFromString(exp->expType->templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2367 else if(exp->expType->templateParameter->dataType)
2369 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
2370 specs = CopyList(exp->expType->templateParameter->dataType->specifiers, CopySpecifier);
2371 decl = PlugDeclarator(exp->expType->templateParameter->dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2375 ListAdd(specs, MkSpecifierName("uint64"));
2376 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
2381 PrintTypeNoConst(exp->expType, string, exp->expType->kind == 18 ? 0x1 : 0x0, 0x1);
2382 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2384 typeName = MkTypeName(specs, decl);
2385 InstDeclPassTypeName(typeName, 0x0);
2386 OutputTypeName(typeName, f, 0x0);
2387 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
2388 FreeTypeName(typeName);
2392 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2393 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2395 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2396 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "return ");
2399 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2401 if(exp && exp->expType && exp->expType->kind != 0)
2402 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
2404 if(stmt->expressions)
2406 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2408 OutputExpression(exp, 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, ", ");
2417 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2418 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2420 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2421 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2422 if(inCompiler && memoryGuard)
2424 struct Expression * exp = stmt->expressions ? (struct Expression *)(*stmt->expressions).last : (((void *)0));
2426 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
2427 if(exp && exp->expType && exp->expType->kind != 0)
2428 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
2430 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
2431 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
2437 struct AsmField * field;
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, "__asm__ ");
2444 if(stmt->asmStmt.spec)
2445 OutputSpecifier(stmt->asmStmt.spec, f, 0x0);
2446 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2447 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2449 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2450 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
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, stmt->asmStmt.statements);
2456 if(stmt->asmStmt.inputFields || stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
2458 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2459 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2461 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2462 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2463 if(stmt->asmStmt.inputFields)
2465 for(field = (*stmt->asmStmt.inputFields).first; field; field = field->next)
2468 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2469 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2471 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2472 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2473 OutputAsmField(field, f);
2477 if(stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
2479 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2480 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2482 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2483 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2484 if(stmt->asmStmt.outputFields)
2486 for(field = (*stmt->asmStmt.outputFields).first; field; field = field->next)
2489 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2490 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2492 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2493 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2494 OutputAsmField(field, f);
2498 if(stmt->asmStmt.clobberedFields)
2500 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2501 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2503 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2504 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2505 for(field = (*stmt->asmStmt.clobberedFields).first; field; field = field->next)
2508 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2509 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2511 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2512 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2513 OutputAsmField(field, f);
2516 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2517 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2519 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2520 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");\n");
2525 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
2527 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
2532 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
2534 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2535 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2537 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2538 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*");
2541 struct Specifier * spec;
2543 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2544 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2546 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2547 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2548 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
2550 OutputSpecifier(spec, f, 0x0);
2552 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2553 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2555 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2556 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2561 OutputPointer(ptr->pointer, f);
2565 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f);
2567 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f);
2569 extern void ProcessExpressionType(struct Expression * exp);
2571 extern void ComputeExpression(struct Expression * exp);
2573 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2578 if(decl->declarator)
2580 OutputDeclarator(decl->declarator, f);
2582 if(decl->structDecl.exp)
2584 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2585 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2587 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2588 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2589 OutputExpression(decl->structDecl.exp, f);
2591 if(decl->structDecl.posExp)
2593 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2594 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2596 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2597 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2598 OutputExpression(decl->structDecl.posExp, f);
2600 if(decl->structDecl.attrib)
2602 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2603 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2605 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2606 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2607 OutputAttrib(decl->structDecl.attrib, f);
2611 OutputIdentifier(decl->identifier, f);
2614 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2615 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2617 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2618 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2619 OutputDeclarator(decl->declarator, f);
2620 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2621 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2623 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2624 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2627 if(decl->extended.extended)
2628 OutputExtDecl(decl->extended.extended, f);
2629 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2630 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2632 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2633 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2634 OutputDeclarator(decl->declarator, f);
2637 OutputDeclarator(decl->declarator, f);
2638 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2639 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2641 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2642 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2643 if(decl->extended.extended)
2644 OutputExtDecl(decl->extended.extended, f);
2647 if(decl->declarator)
2649 OutputDeclarator(decl->declarator, f);
2651 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2652 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2654 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2655 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
2658 ProcessExpressionType(decl->array.exp);
2659 ComputeExpression(decl->array.exp);
2660 OutputExpression(decl->array.exp, f);
2662 else if(decl->array.enumClass)
2664 struct Symbol * _class = decl->array.enumClass->symbol;
2666 if(_class && _class->registered)
2668 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->registered, "enumSize"));
2671 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2672 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2674 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2675 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
2679 struct TypeName * param;
2681 if(decl->declarator)
2682 OutputDeclarator(decl->declarator, f);
2683 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2684 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2686 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2687 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2688 if(decl->function.parameters && (*decl->function.parameters).first)
2690 for(param = (*decl->function.parameters).first; param; param = param->next)
2692 OutputTypeName(param, f, 0x0);
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, ", ");
2701 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2702 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2704 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2705 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2709 if(decl->pointer.pointer)
2710 OutputPointer(decl->pointer.pointer, f);
2711 if(decl->declarator)
2713 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2714 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2716 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2717 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2718 OutputDeclarator(decl->declarator, f);
2724 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
2726 OutputIdentifier(enumerator->id, f);
2729 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2730 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2732 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2733 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
2734 OutputExpression(enumerator->exp, f);
2738 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
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, attr->attr);
2748 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2749 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2751 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2752 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2753 OutputExpression(attr->exp, f);
2757 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
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((");
2776 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2777 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2779 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2780 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute_deprecated__((");
2785 struct Attribute * attrib;
2787 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
2790 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2791 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2793 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2794 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2795 OutputAttribute(attrib, f);
2798 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2799 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2801 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2802 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "))");
2805 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
2807 if(extDecl->type == 0 && extDecl->s)
2808 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2809 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2811 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2812 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, extDecl->s);
2813 else if(extDecl->type == 1)
2814 OutputAttrib(extDecl->attr, f);
2817 extern struct Symbol * FindClass(char * name);
2819 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f);
2821 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2826 switch(spec->specifier)
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, "typedef");
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, "extern");
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, "static");
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, "auto");
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, "register");
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, "__thread");
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, "const");
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, "volatile");
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, "void");
2892 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2893 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2895 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2896 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "char");
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, "_Bool");
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, "_Complex");
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, "_Imaginary");
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, "restrict");
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, "short");
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, "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 ? "uint" : "unsigned int");
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, typeName ? "int64" : "long long");
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, "__builtin_va_list");
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, "long");
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, "float");
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, "double");
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, "signed");
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, "unsigned");
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, "typed_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, "any_object");
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, "class");
3019 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3020 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3022 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3023 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "thisclass");
3029 OutputExtDecl(spec->extDecl, f);
3032 if(spec->name && !strcmp(spec->name, "class"))
3034 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3035 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3037 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3038 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
3042 struct Symbol * symbol = spec->symbol;
3044 if(!symbol && spec->name)
3045 symbol = FindClass(spec->name);
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, symbol->string ? symbol->string : "(null)");
3055 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3056 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3058 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3059 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, spec->name);
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, "enum");
3071 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3072 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3074 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3075 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3076 OutputIdentifier(spec->id, f);
3080 struct Enumerator * enumerator;
3082 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3083 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3085 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3086 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3088 for(enumerator = (*spec->list).first; enumerator; enumerator = enumerator->next)
3090 OutputEnumerator(enumerator, f);
3091 if(enumerator->next)
3092 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3093 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3095 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3096 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3098 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3099 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3101 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3102 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
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, (spec->type == 3) ? "struct" : "union");
3115 if(spec->extDeclStruct)
3117 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3118 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3120 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3121 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3122 OutputExtDecl(spec->extDeclStruct, f);
3126 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3127 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3129 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3130 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3131 OutputIdentifier(spec->id, f);
3133 if(spec->definitions)
3135 struct ClassDef * def;
3137 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3138 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3140 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3141 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3143 for(def = (*spec->definitions).first; def; def = def->next)
3145 OutputClassDef(def, f);
3147 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3148 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3150 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3151 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "} __attribute__ ((gcc_struct))");
3156 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3157 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3159 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3160 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__typeof(");
3161 OutputExpression(spec->expression, 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, ")");
3169 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3170 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3172 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3173 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "subclass(");
3174 OutputSpecifier(spec->_class, f, 0x0);
3175 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3176 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3178 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3179 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3182 OutputIdentifier(spec->templateParameter->identifier, f);
3187 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
3189 char name[274] = "";
3190 char origName[274] = "";
3194 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
3195 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3196 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3198 switch(initializer->type)
3202 struct Initializer * init;
3204 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3205 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3207 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3208 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3210 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3212 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3215 for(init = (*initializer->list).first; init; init = init->next)
3217 OutputInitializer(init, f);
3219 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3220 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3222 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3223 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3225 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3226 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3228 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3229 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3230 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3232 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3239 if(initializer->exp)
3240 OutputExpression(initializer->exp, f);
3245 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3247 OutputDeclarator(decl->declarator, f);
3248 if(decl->initializer)
3250 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3251 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3253 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3254 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
3255 OutputInitializer(decl->initializer, f);
3259 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3261 struct Specifier * spec;
3262 char origName[274] = "";
3268 struct InitDeclarator * d;
3272 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3273 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3275 if(decl->declarators && (*decl->declarators).first)
3277 for(d = (*decl->declarators).first; d; d = d->next)
3280 char name[274] = "";
3282 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
3283 if(inCompiler && outputLineNumbers && decl->loc.start.line)
3285 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
3291 if(decl->specifiers)
3293 unsigned int inTypeDef = 0x0;
3295 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3297 if(spec->type == 0 && spec->specifier == TYPEDEF)
3299 OutputSpecifier(spec, f, inTypeDef && !spec->next);
3301 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3302 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3304 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3305 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3308 if(decl->declarators && (*decl->declarators).first)
3310 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3311 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3313 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3314 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3315 for(d = (*decl->declarators).first; d; d = d->next)
3317 OutputInitDeclarator(d, f);
3319 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3320 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3322 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3323 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3330 if(decl->specifiers)
3332 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3334 OutputSpecifier(spec, f, 0x0);
3336 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3337 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3339 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3340 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3343 if(decl->declarators)
3345 struct Declarator * d;
3347 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3348 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3350 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3351 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3352 for(d = (*decl->declarators).first; d; d = d->next)
3354 OutputDeclarator(d, f);
3356 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3357 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3359 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3360 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3363 if(decl->extStorage)
3365 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3366 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3368 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3369 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3370 OutputSpecifier(decl->extStorage, f, 0x0);
3377 OutputInstance(decl->inst, f);
3383 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3384 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3386 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3387 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3389 if(inCompiler && outputLineNumbers && decl->loc.start.line && decl->type == 1)
3391 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3396 static struct FunctionDefinition * curFunction;
3398 extern struct Identifier * GetDeclId(struct Declarator * decl);
3400 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
3402 struct FunctionDefinition * oldFunc = curFunction;
3405 if(func->specifiers)
3407 struct Specifier * spec;
3409 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3411 OutputSpecifier(spec, f, 0x0);
3413 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3414 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3416 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3417 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3419 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3420 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3422 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3423 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3425 if(func->declarator)
3426 OutputDeclarator(func->declarator, f);
3427 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3428 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3430 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3431 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3433 if(func->declarations)
3435 struct Declaration * decl;
3437 for(decl = (*func->declarations).first; decl; decl = decl->next)
3439 OutputDeclaration(decl, f);
3441 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3442 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3444 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3445 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3450 if(inCompiler && memoryGuard)
3452 char name[1024] = "";
3453 struct Identifier * id = GetDeclId(func->declarator);
3455 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
3456 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
3457 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
3460 OutputStatement(func->body, f);
3461 if(inCompiler && memoryGuard)
3463 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
3464 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
3467 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3468 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3470 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3471 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3474 curFunction = oldFunc;
3477 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3479 if(init->identifiers)
3481 if((*init->identifiers).count > 1)
3483 struct Identifier * id;
3485 for(id = (*init->identifiers).first; id; id = id->next)
3487 OutputIdentifier(id, f);
3489 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3490 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3492 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3493 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3496 else if((*init->identifiers).first)
3497 OutputIdentifier((*init->identifiers).first, f);
3498 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3499 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3501 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3502 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
3504 if(init->initializer)
3505 OutputInitializer(init->initializer, f);
3508 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f);
3510 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3516 struct MemberInit * member;
3518 if(init->dataMembers)
3520 for(member = (*init->dataMembers).first; member; member = member->next)
3522 OutputMemberInit(member, f);
3524 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3525 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3527 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3528 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3534 OutputClassFunction(init->function, f);
3539 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
3542 OutputSpecifier(inst->_class, f, 0x0);
3545 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3546 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3548 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3549 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3550 OutputExpression(inst->exp, f);
3552 if(inst->members && (*inst->members).count > 1)
3554 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3555 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3557 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3558 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3561 else if(inst->members)
3562 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3563 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3565 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3566 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " { ");
3568 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3569 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3571 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3572 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{");
3575 struct MembersInit * init;
3577 for(init = (*inst->members).first; init; init = init->next)
3579 OutputMembersInit(init, f);
3580 if(init->type == 0 && init->next)
3582 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3583 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3585 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3586 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3592 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3593 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3595 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3596 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }");
3598 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3599 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3601 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3602 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
3605 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
3607 if(func->specifiers)
3609 struct Specifier * spec;
3611 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3613 OutputSpecifier(spec, f, 0x0);
3615 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3616 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3618 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3619 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3621 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3622 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3624 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3625 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3627 if(func->declarator)
3628 OutputDeclarator(func->declarator, f);
3629 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3630 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3632 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3633 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3635 if(func->declarations)
3637 struct Declaration * decl;
3639 for(decl = (*func->declarations).first; decl; decl = decl->next)
3641 OutputDeclaration(decl, f);
3643 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3644 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3646 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3647 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3652 OutputStatement(func->body, f);
3653 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3654 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3656 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3657 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3661 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3662 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3664 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3665 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3668 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
3675 OutputDeclaration(def->decl, f);
3676 if(def->next && def->next->type != 2)
3678 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3679 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3681 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3682 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3689 struct MemberInit * init;
3691 for(init = (*def->defProperties).first; init; init = init->next)
3693 OutputMemberInit(init, f);
3695 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3696 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3698 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3699 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3701 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3702 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3704 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3705 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n\n");
3710 OutputClassFunction(def->function, f);
3711 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3712 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3714 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3715 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3721 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
3723 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3724 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3726 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3727 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class ");
3728 OutputSpecifier(_class->_class, f, 0x0);
3729 if(_class->baseSpecs)
3731 struct Specifier * spec;
3733 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3734 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3736 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3737 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
3738 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
3740 OutputSpecifier(spec, f, 0x0);
3743 if(_class->definitions)
3745 struct ClassDef * def;
3747 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3748 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3750 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3751 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3753 for(def = (*_class->definitions).first; def; def = def->next)
3755 OutputClassDef(def, f);
3757 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3758 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3760 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3761 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
3765 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3766 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3768 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3769 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3772 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
3774 struct External * external;
3777 for(external = ast->first; external; external = external->next)
3779 switch(external->type)
3782 OutputFunction(external->function, f);
3783 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3784 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3786 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3787 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3791 if(external->declaration)
3792 OutputDeclaration(external->declaration, f);
3793 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3794 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3796 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3797 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3801 OutputClass(external->_class, f);
3802 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3803 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3805 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3806 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3813 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
3815 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
3817 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
3819 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
3821 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
3823 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
3825 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
3827 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
3830 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
3831 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
3834 typeName->qualifiers = specs;
3835 typeName->declarator = decl;
3836 OutputTypeName(typeName, f, 0x1);
3837 ((typeName ? (__ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor(typeName) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(typeName)) : 0), typeName = 0);
3838 size = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
3839 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3841 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3842 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(f);
3843 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
3844 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3845 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3847 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3848 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, 0, 0);
3849 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
3850 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3852 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3853 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, string, 1, (unsigned int)size);
3854 string[size] = '\0';
3855 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
3856 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
3860 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
3862 struct __ecereNameSpace__ecere__com__GlobalFunction;
3864 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);
3866 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3868 struct __ecereNameSpace__ecere__com__Class * class;
3870 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
3871 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
3872 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
3873 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
3874 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
3875 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
3878 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)