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 const 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 const 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;
109 const char * category;
110 unsigned int compiled;
111 unsigned int selfWatchable;
112 unsigned int isWatchable;
113 } __attribute__ ((gcc_struct));
115 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
123 } __attribute__ ((gcc_struct));
125 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
129 struct CodePosition start;
130 struct CodePosition end;
131 } __attribute__ ((gcc_struct));
133 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
139 struct __ecereNameSpace__ecere__sys__OldList * attribs;
140 } __attribute__ ((gcc_struct));
142 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
151 struct Attrib * attr;
152 } __attribute__ ((gcc_struct));
153 } __attribute__ ((gcc_struct));
155 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
157 struct ClassDefinition
159 struct ClassDefinition * prev;
160 struct ClassDefinition * next;
162 struct Specifier * _class;
163 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
164 struct __ecereNameSpace__ecere__sys__OldList * definitions;
165 struct Symbol * symbol;
166 struct Location blockStart;
167 struct Location nameLoc;
170 unsigned int deleteWatchable;
171 } __attribute__ ((gcc_struct));
173 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
177 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
181 struct Instantiation * prev;
182 struct Instantiation * next;
184 struct Specifier * _class;
185 struct Expression * exp;
186 struct __ecereNameSpace__ecere__sys__OldList * members;
187 struct Symbol * symbol;
188 unsigned int fullSet;
189 unsigned int isConstant;
190 unsigned char * data;
191 struct Location nameLoc;
192 struct Location insideLoc;
194 } __attribute__ ((gcc_struct));
196 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
200 struct Declaration * prev;
201 struct Declaration * next;
208 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
209 struct __ecereNameSpace__ecere__sys__OldList * declarators;
210 } __attribute__ ((gcc_struct));
211 struct Instantiation * inst;
214 struct Identifier * id;
215 struct Expression * exp;
216 } __attribute__ ((gcc_struct));
217 } __attribute__ ((gcc_struct));
218 struct Specifier * extStorage;
219 struct Symbol * symbol;
221 } __attribute__ ((gcc_struct));
223 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
227 struct Statement * prev;
228 struct Statement * next;
233 struct __ecereNameSpace__ecere__sys__OldList * expressions;
236 struct Identifier * id;
237 struct Statement * stmt;
238 } __attribute__ ((gcc_struct)) labeled;
241 struct Expression * exp;
242 struct Statement * stmt;
243 } __attribute__ ((gcc_struct)) caseStmt;
246 struct __ecereNameSpace__ecere__sys__OldList * declarations;
247 struct __ecereNameSpace__ecere__sys__OldList * statements;
248 struct Context * context;
249 unsigned int isSwitch;
250 } __attribute__ ((gcc_struct)) compound;
253 struct __ecereNameSpace__ecere__sys__OldList * exp;
254 struct Statement * stmt;
255 struct Statement * elseStmt;
256 } __attribute__ ((gcc_struct)) ifStmt;
259 struct __ecereNameSpace__ecere__sys__OldList * exp;
260 struct Statement * stmt;
261 } __attribute__ ((gcc_struct)) switchStmt;
264 struct __ecereNameSpace__ecere__sys__OldList * exp;
265 struct Statement * stmt;
266 } __attribute__ ((gcc_struct)) whileStmt;
269 struct __ecereNameSpace__ecere__sys__OldList * exp;
270 struct Statement * stmt;
271 } __attribute__ ((gcc_struct)) doWhile;
274 struct Statement * init;
275 struct Statement * check;
276 struct __ecereNameSpace__ecere__sys__OldList * increment;
277 struct Statement * stmt;
278 } __attribute__ ((gcc_struct)) forStmt;
281 struct Identifier * id;
282 } __attribute__ ((gcc_struct)) gotoStmt;
285 struct Specifier * spec;
287 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
288 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
289 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
290 } __attribute__ ((gcc_struct)) asmStmt;
293 struct Expression * watcher;
294 struct Expression * object;
295 struct __ecereNameSpace__ecere__sys__OldList * watches;
296 } __attribute__ ((gcc_struct)) _watch;
299 struct Identifier * id;
300 struct __ecereNameSpace__ecere__sys__OldList * exp;
301 struct __ecereNameSpace__ecere__sys__OldList * filter;
302 struct Statement * stmt;
303 } __attribute__ ((gcc_struct)) forEachStmt;
304 struct Declaration * decl;
305 } __attribute__ ((gcc_struct));
306 } __attribute__ ((gcc_struct));
308 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
312 struct TypeName * prev;
313 struct TypeName * next;
315 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
316 struct Declarator * declarator;
318 struct Expression * bitCount;
319 } __attribute__ ((gcc_struct));
321 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
325 struct Initializer * prev;
326 struct Initializer * next;
331 struct Expression * exp;
332 struct __ecereNameSpace__ecere__sys__OldList * list;
333 } __attribute__ ((gcc_struct));
334 unsigned int isConstant;
335 struct Identifier * id;
336 } __attribute__ ((gcc_struct));
338 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
340 struct __ecereNameSpace__ecere__com__DataValue
355 } __attribute__ ((gcc_struct));
356 } __attribute__ ((gcc_struct));
358 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
362 struct Expression * prev;
363 struct Expression * next;
371 struct Identifier * identifier;
372 } __attribute__ ((gcc_struct));
373 struct Statement * compound;
374 struct Instantiation * instance;
378 unsigned int intlString;
379 } __attribute__ ((gcc_struct));
380 struct __ecereNameSpace__ecere__sys__OldList * list;
383 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
384 struct Declarator * decl;
385 } __attribute__ ((gcc_struct)) _classExp;
388 struct Identifier * id;
389 } __attribute__ ((gcc_struct)) classData;
392 struct Expression * exp;
393 struct __ecereNameSpace__ecere__sys__OldList * arguments;
394 struct Location argLoc;
395 } __attribute__ ((gcc_struct)) call;
398 struct Expression * exp;
399 struct __ecereNameSpace__ecere__sys__OldList * index;
400 } __attribute__ ((gcc_struct)) index;
403 struct Expression * exp;
404 struct Identifier * member;
406 unsigned int thisPtr;
407 } __attribute__ ((gcc_struct)) member;
411 struct Expression * exp1;
412 struct Expression * exp2;
413 } __attribute__ ((gcc_struct)) op;
414 struct TypeName * typeName;
415 struct Specifier * _class;
418 struct TypeName * typeName;
419 struct Expression * exp;
420 } __attribute__ ((gcc_struct)) cast;
423 struct Expression * cond;
424 struct __ecereNameSpace__ecere__sys__OldList * exp;
425 struct Expression * elseExp;
426 } __attribute__ ((gcc_struct)) cond;
429 struct TypeName * typeName;
430 struct Expression * size;
431 } __attribute__ ((gcc_struct)) _new;
434 struct TypeName * typeName;
435 struct Expression * size;
436 struct Expression * exp;
437 } __attribute__ ((gcc_struct)) _renew;
441 struct Identifier * id;
442 } __attribute__ ((gcc_struct)) db;
445 struct Expression * ds;
446 struct Expression * name;
447 } __attribute__ ((gcc_struct)) dbopen;
450 struct TypeName * typeName;
451 struct Initializer * initializer;
452 } __attribute__ ((gcc_struct)) initializer;
455 struct Expression * exp;
456 struct TypeName * typeName;
457 } __attribute__ ((gcc_struct)) vaArg;
458 } __attribute__ ((gcc_struct));
459 unsigned int debugValue;
460 struct __ecereNameSpace__ecere__com__DataValue val;
462 unsigned int hasAddress;
463 struct Type * expType;
464 struct Type * destType;
467 unsigned int byReference;
468 unsigned int isConstant;
469 unsigned int addedThis;
470 unsigned int needCast;
471 unsigned int thisPtr;
472 unsigned int opDestType;
473 } __attribute__ ((gcc_struct));
475 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
477 struct TemplateDatatype
479 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
480 struct Declarator * decl;
481 } __attribute__ ((gcc_struct));
483 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
485 struct TemplateArgument;
487 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
489 struct TemplateParameter
491 struct TemplateParameter * prev;
492 struct TemplateParameter * next;
495 struct Identifier * identifier;
498 struct TemplateDatatype * dataType;
500 } __attribute__ ((gcc_struct));
501 struct TemplateArgument * defaultArgument;
502 const char * dataTypeString;
503 struct Type * baseType;
504 } __attribute__ ((gcc_struct));
506 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
510 struct Specifier * prev;
511 struct Specifier * next;
519 struct ExtDecl * extDecl;
521 struct Symbol * symbol;
522 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
523 } __attribute__ ((gcc_struct));
526 struct Identifier * id;
527 struct __ecereNameSpace__ecere__sys__OldList * list;
528 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
529 struct __ecereNameSpace__ecere__sys__OldList * definitions;
530 unsigned int addNameSpace;
531 struct Context * ctx;
532 struct ExtDecl * extDeclStruct;
533 } __attribute__ ((gcc_struct));
534 struct Expression * expression;
535 struct Specifier * _class;
536 struct TemplateParameter * templateParameter;
537 } __attribute__ ((gcc_struct));
538 } __attribute__ ((gcc_struct));
540 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
544 struct Identifier * prev;
545 struct Identifier * next;
547 struct Symbol * classSym;
548 struct Specifier * _class;
550 struct Identifier * badID;
551 } __attribute__ ((gcc_struct));
553 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
557 struct Pointer * prev;
558 struct Pointer * next;
560 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
561 struct Pointer * pointer;
562 } __attribute__ ((gcc_struct));
564 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
568 struct Declarator * prev;
569 struct Declarator * next;
572 struct Symbol * symbol;
573 struct Declarator * declarator;
576 struct Identifier * identifier;
579 struct Expression * exp;
580 struct Expression * posExp;
581 struct Attrib * attrib;
582 } __attribute__ ((gcc_struct)) structDecl;
585 struct Expression * exp;
586 struct Specifier * enumClass;
587 } __attribute__ ((gcc_struct)) array;
590 struct __ecereNameSpace__ecere__sys__OldList * parameters;
591 } __attribute__ ((gcc_struct)) function;
594 struct Pointer * pointer;
595 } __attribute__ ((gcc_struct)) pointer;
598 struct ExtDecl * extended;
599 } __attribute__ ((gcc_struct)) extended;
600 } __attribute__ ((gcc_struct));
601 } __attribute__ ((gcc_struct));
603 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
605 struct FunctionDefinition
607 struct FunctionDefinition * prev;
608 struct FunctionDefinition * next;
610 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
611 struct Declarator * declarator;
612 struct __ecereNameSpace__ecere__sys__OldList * declarations;
613 struct Statement * body;
614 struct __ecereNameSpace__ecere__com__Class * _class;
615 struct __ecereNameSpace__ecere__sys__OldList attached;
618 struct Symbol * propSet;
620 unsigned int propertyNoThis;
621 } __attribute__ ((gcc_struct));
623 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
627 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
631 struct External * prev;
632 struct External * next;
635 struct Symbol * symbol;
638 struct FunctionDefinition * function;
639 struct ClassDefinition * _class;
640 struct Declaration * declaration;
642 struct Identifier * id;
643 struct DBTableDef * table;
644 } __attribute__ ((gcc_struct));
646 } __attribute__ ((gcc_struct));
648 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
652 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
656 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
661 struct Symbol * parent;
662 struct Symbol * left;
663 struct Symbol * right;
668 struct __ecereNameSpace__ecere__com__Method * method;
669 struct __ecereNameSpace__ecere__com__Property * _property;
670 struct __ecereNameSpace__ecere__com__Class * registered;
671 } __attribute__ ((gcc_struct));
678 struct External * pointerExternal;
679 struct External * structExternal;
680 } __attribute__ ((gcc_struct));
683 struct External * externalGet;
684 struct External * externalSet;
685 struct External * externalPtr;
686 struct External * externalIsSet;
687 } __attribute__ ((gcc_struct));
690 struct External * methodExternal;
691 struct External * methodCodeExternal;
692 } __attribute__ ((gcc_struct));
693 } __attribute__ ((gcc_struct));
694 unsigned int imported;
695 unsigned int declaredStructSym;
696 struct __ecereNameSpace__ecere__com__Class * _class;
697 unsigned int declaredStruct;
698 unsigned int needConstructor;
699 unsigned int needDestructor;
700 char * constructorName;
703 char * destructorName;
704 struct ModuleImport * module;
705 struct ClassImport * _import;
706 struct Location nameLoc;
707 unsigned int isParam;
708 unsigned int isRemote;
709 unsigned int isStruct;
710 unsigned int fireWatchersDone;
712 unsigned int classData;
713 unsigned int isStatic;
715 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
716 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
717 struct Context * ctx;
719 struct Expression * propCategory;
720 } __attribute__ ((gcc_struct));
722 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
731 struct Symbol * _class;
734 struct __ecereNameSpace__ecere__sys__OldList members;
736 } __attribute__ ((gcc_struct));
739 struct Type * returnType;
740 struct __ecereNameSpace__ecere__sys__OldList params;
741 struct Symbol * thisClass;
742 unsigned int staticMethod;
743 struct TemplateParameter * thisClassTemplate;
744 } __attribute__ ((gcc_struct));
747 struct __ecereNameSpace__ecere__com__Method * method;
748 struct __ecereNameSpace__ecere__com__Class * methodClass;
749 struct __ecereNameSpace__ecere__com__Class * usedClass;
750 } __attribute__ ((gcc_struct));
753 struct Type * arrayType;
755 struct Expression * arraySizeExp;
756 unsigned int freeExp;
757 struct Symbol * enumClass;
758 } __attribute__ ((gcc_struct));
760 struct TemplateParameter * templateParameter;
761 } __attribute__ ((gcc_struct));
771 unsigned int isSigned : 1;
772 unsigned int constant : 1;
773 unsigned int truth : 1;
774 unsigned int byReference : 1;
775 unsigned int extraParam : 1;
776 unsigned int directClassAccess : 1;
777 unsigned int computing : 1;
778 unsigned int keepCast : 1;
779 unsigned int passAsTemplate : 1;
780 unsigned int dllExport : 1;
781 unsigned int attrStdcall : 1;
782 unsigned int declaredWithStruct : 1;
783 unsigned int typedByReference : 1;
784 unsigned int casted : 1;
785 } __attribute__ ((gcc_struct));
787 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
789 struct __ecereNameSpace__ecere__com__Class
791 struct __ecereNameSpace__ecere__com__Class * prev;
792 struct __ecereNameSpace__ecere__com__Class * next;
798 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
799 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
802 struct __ecereNameSpace__ecere__com__Class * base;
803 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
804 struct __ecereNameSpace__ecere__sys__BinaryTree members;
805 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
806 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
807 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
808 struct __ecereNameSpace__ecere__sys__OldList derivatives;
812 struct __ecereNameSpace__ecere__com__Instance * module;
813 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
814 const char * dataTypeString;
815 struct Type * dataType;
817 int defaultAlignment;
818 void (* Initialize)();
820 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
821 const char * designerClass;
822 unsigned int noExpansion;
823 const char * defaultProperty;
824 unsigned int comRedefinition;
827 unsigned int internalDecl;
829 unsigned int computeSize;
831 int destructionWatchOffset;
833 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
834 int inheritanceAccess;
835 const char * fullName;
837 struct __ecereNameSpace__ecere__sys__OldList conversions;
838 struct __ecereNameSpace__ecere__sys__OldList templateParams;
839 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
840 struct __ecereNameSpace__ecere__com__Class * templateClass;
841 struct __ecereNameSpace__ecere__sys__OldList templatized;
843 unsigned int isInstanceClass;
844 unsigned int byValueSystemClass;
845 } __attribute__ ((gcc_struct));
847 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
849 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
851 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
853 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
855 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
857 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
859 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
861 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
863 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
865 struct __ecereNameSpace__ecere__com__Instance
868 struct __ecereNameSpace__ecere__com__Class * _class;
870 } __attribute__ ((gcc_struct));
872 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
874 struct __ecereNameSpace__ecere__com__DataMember
876 struct __ecereNameSpace__ecere__com__DataMember * prev;
877 struct __ecereNameSpace__ecere__com__DataMember * next;
879 unsigned int isProperty;
882 struct __ecereNameSpace__ecere__com__Class * _class;
883 const char * dataTypeString;
884 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
885 struct Type * dataType;
889 struct __ecereNameSpace__ecere__sys__OldList members;
890 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
893 } __attribute__ ((gcc_struct));
895 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
897 struct __ecereNameSpace__ecere__com__SerialBuffer
899 unsigned char * _buffer;
903 } __attribute__ ((gcc_struct));
905 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
907 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
913 const char * dataTypeString;
914 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
915 } __attribute__ ((gcc_struct));
916 struct __ecereNameSpace__ecere__com__DataValue expression;
919 const char * memberString;
922 struct __ecereNameSpace__ecere__com__DataMember * member;
923 struct __ecereNameSpace__ecere__com__Property * prop;
924 struct __ecereNameSpace__ecere__com__Method * method;
925 } __attribute__ ((gcc_struct));
926 } __attribute__ ((gcc_struct));
927 } __attribute__ ((gcc_struct));
928 } __attribute__ ((gcc_struct));
932 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
935 typedef union YYSTYPE
940 struct Identifier * id;
941 struct Expression * exp;
942 struct Specifier * specifier;
943 struct __ecereNameSpace__ecere__sys__OldList * list;
944 struct Enumerator * enumerator;
945 struct Declarator * declarator;
946 struct Pointer * pointer;
947 struct Initializer * initializer;
948 struct InitDeclarator * initDeclarator;
949 struct TypeName * typeName;
950 struct Declaration * declaration;
951 struct Statement * stmt;
952 struct FunctionDefinition * function;
953 struct External * external;
954 struct Context * context;
955 struct AsmField * asmField;
956 struct Attrib * attrib;
957 struct ExtDecl * extDecl;
958 struct Attribute * attribute;
959 struct Instantiation * instance;
960 struct MembersInit * membersInit;
961 struct MemberInit * memberInit;
962 struct ClassFunction * classFunction;
963 struct ClassDefinition * _class;
964 struct ClassDef * classDef;
965 struct PropertyDef * prop;
967 struct Symbol * symbol;
968 struct PropertyWatch * propertyWatch;
969 struct TemplateParameter * templateParameter;
970 struct TemplateArgument * templateArgument;
971 struct TemplateDatatype * templateDatatype;
972 struct DBTableEntry * dbtableEntry;
973 struct DBIndexItem * dbindexItem;
974 struct DBTableDef * dbtableDef;
975 } __attribute__ ((gcc_struct)) YYSTYPE;
977 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
981 struct Enumerator * prev;
982 struct Enumerator * next;
984 struct Identifier * id;
985 struct Expression * exp;
986 } __attribute__ ((gcc_struct));
988 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
990 struct InitDeclarator
992 struct InitDeclarator * prev;
993 struct InitDeclarator * next;
995 struct Declarator * declarator;
996 struct Initializer * initializer;
997 } __attribute__ ((gcc_struct));
999 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
1003 struct AsmField * prev;
1004 struct AsmField * next;
1005 struct Location loc;
1007 struct Expression * expression;
1008 struct Identifier * symbolic;
1009 } __attribute__ ((gcc_struct));
1011 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
1015 struct Attribute * prev;
1016 struct Attribute * next;
1017 struct Location loc;
1019 struct Expression * exp;
1020 } __attribute__ ((gcc_struct));
1022 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
1024 struct ClassFunction
1026 struct ClassFunction * prev;
1027 struct ClassFunction * next;
1028 struct Location loc;
1029 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1030 struct Declarator * declarator;
1031 struct __ecereNameSpace__ecere__sys__OldList * declarations;
1032 struct Statement * body;
1033 struct __ecereNameSpace__ecere__com__Class * _class;
1034 struct __ecereNameSpace__ecere__sys__OldList attached;
1037 struct Symbol * propSet;
1038 unsigned int isVirtual;
1039 unsigned int isConstructor;
1040 unsigned int isDestructor;
1041 unsigned int dontMangle;
1044 } __attribute__ ((gcc_struct));
1046 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
1050 struct MembersInit * prev;
1051 struct MembersInit * next;
1052 struct Location loc;
1056 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
1057 struct ClassFunction * function;
1058 } __attribute__ ((gcc_struct));
1059 } __attribute__ ((gcc_struct));
1061 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
1065 struct MemberInit * prev;
1066 struct MemberInit * next;
1067 struct Location loc;
1068 struct Location realLoc;
1069 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
1070 struct Initializer * initializer;
1072 unsigned int variable;
1073 unsigned int takeOutExp;
1074 } __attribute__ ((gcc_struct));
1076 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1080 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1082 struct PropertyWatch;
1084 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1088 struct ClassDef * prev;
1089 struct ClassDef * next;
1090 struct Location loc;
1094 struct Declaration * decl;
1095 struct ClassFunction * function;
1096 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
1097 struct PropertyDef * propertyDef;
1098 struct PropertyWatch * propertyWatch;
1100 struct Identifier * defaultProperty;
1103 struct Identifier * id;
1104 struct Initializer * initializer;
1105 } __attribute__ ((gcc_struct));
1106 } __attribute__ ((gcc_struct));
1109 } __attribute__ ((gcc_struct));
1111 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
1113 struct DBTableEntry;
1115 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
1119 extern YYSTYPE yylval;
1121 extern struct Location yylloc;
1125 unsigned int memoryGuard = 0x0;
1127 void SetMemoryGuard(unsigned int b)
1132 unsigned int GetMemoryGuard()
1137 extern int strcmp(const char * , const char * );
1139 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
1141 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1143 static void OutputIdentifier(struct Identifier * id, struct __ecereNameSpace__ecere__com__Instance * f)
1149 if(id->_class->type == 8)
1151 if(id->_class->templateParameter && id->_class->templateParameter->identifier && id->_class->templateParameter->identifier->string)
1152 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1153 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1155 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1156 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->templateParameter->identifier->string);
1160 if(id->_class->name)
1162 if(!strcmp(id->_class->name, "class"))
1163 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1164 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1166 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1167 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
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->_class->name);
1176 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1177 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1179 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1180 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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, (id && id->string) ? id->string : "(null identifier)");
1190 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
1192 static void OutputOperator(int op, struct __ecereNameSpace__ecere__com__Instance * 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, "++");
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, "sizeof ");
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, "&=");
1330 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1331 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1333 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1334 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "^=");
1337 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1338 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1340 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1341 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "|=");
1356 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))__extension__ ({
1357 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1359 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1360 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc])(f, (char)op);
1363 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1364 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1366 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1367 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "delete ");
1372 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1374 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1376 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
1378 if(type->qualifiers)
1380 struct Specifier * spec;
1382 for(spec = (*type->qualifiers).first; spec; spec = spec->next)
1384 OutputSpecifier(spec, f, typeName);
1386 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1387 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1389 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1390 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1393 if(type->declarator)
1395 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1396 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1398 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1399 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1400 OutputDeclarator(type->declarator, f);
1402 if(!type->qualifiers && !type->declarator)
1403 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1404 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1406 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1407 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "...");
1410 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f);
1412 extern unsigned int inCompiler;
1414 extern unsigned int outputLineNumbers;
1416 static void GetSourceName(char * name, const char * src);
1418 extern char * GetIncludeFileFromID(int id);
1420 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f);
1422 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f);
1424 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, const char * format, ...);
1426 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f)
1431 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1432 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1434 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1435 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class(");
1436 if(exp->_classExp.specifiers)
1438 struct Specifier * spec;
1440 for(spec = (*exp->_classExp.specifiers).first; spec; spec = spec->next)
1442 OutputSpecifier(spec, f, 0x0);
1444 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1445 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1447 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1448 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1450 if(exp->_classExp.decl)
1452 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1453 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1455 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1456 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1457 OutputDeclarator(exp->_classExp.decl, f);
1459 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1460 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1462 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1463 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1467 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1468 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1470 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1471 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1472 OutputStatement(exp->compound, f);
1473 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1474 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1476 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1477 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1478 if(inCompiler && outputLineNumbers && exp->loc.end.line)
1480 char name[274] = "";
1482 GetSourceName(name, exp->loc.end.included ? GetIncludeFileFromID(exp->loc.end.included) : (((void *)0)));
1483 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", exp->loc.end.line, name);
1488 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1489 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1491 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1492 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new ");
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, " ");
1498 OutputTypeName(exp->_renew.typeName, f, 0x0);
1499 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1500 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1502 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1503 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1504 OutputExpression(exp->_renew.size, f);
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, "]");
1512 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1513 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1515 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1516 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new0 ");
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, " ");
1522 OutputTypeName(exp->_renew.typeName, f, 0x0);
1523 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1524 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1526 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1527 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1528 OutputExpression(exp->_renew.size, f);
1529 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1530 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1532 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1533 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
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, "renew ");
1541 OutputExpression(exp->_renew.exp, 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, " ");
1547 OutputTypeName(exp->_renew.typeName, f, 0x0);
1548 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1549 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1551 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1552 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1553 OutputExpression(exp->_renew.size, f);
1554 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1555 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1557 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1558 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
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, "renew0 ");
1566 OutputExpression(exp->_renew.exp, 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, " ");
1572 OutputTypeName(exp->_renew.typeName, f, 0x0);
1573 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1574 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1576 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1577 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1578 OutputExpression(exp->_renew.size, f);
1579 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1580 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1582 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1583 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1587 OutputIdentifier(exp->identifier, f);
1591 OutputInstance(exp->instance, f);
1595 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1596 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1598 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1599 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->constant);
1603 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1604 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1606 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1607 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->string);
1612 OutputExpression(exp->op.exp1, f);
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, " ");
1620 OutputOperator(exp->op.op, f);
1623 if(exp->op.exp1 || (exp->op.exp2->type == 4 && !exp->op.exp2->op.exp1 && exp->op.exp2->op.op == exp->op.op))
1624 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1625 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1627 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1628 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1629 OutputExpression(exp->op.exp2, f);
1635 struct Expression * expression;
1638 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1639 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1641 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1642 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1643 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1644 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1646 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1647 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1650 for(expression = (*exp->list).first; expression; expression = expression->next)
1652 OutputExpression(expression, f);
1653 if(expression->next)
1654 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1655 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1657 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1658 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1661 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1662 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1664 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1665 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1670 struct Expression * expression;
1673 OutputExpression(exp->index.exp, f);
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, "[");
1679 if(exp->index.index)
1680 for(expression = (*exp->index.index).first; expression; expression = expression->next)
1682 OutputExpression(expression, f);
1683 if(expression->next)
1684 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1685 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1687 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1688 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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, "]");
1699 OutputExpression(exp->call.exp, f);
1700 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1701 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1703 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1704 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1705 if(exp->call.arguments)
1707 struct Expression * expression;
1709 for(expression = (*exp->call.arguments).first; expression; expression = expression->next)
1711 OutputExpression(expression, f);
1712 if(expression->next)
1713 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1714 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1716 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1717 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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, ")");
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 if(exp->member.member)
1736 OutputIdentifier(exp->member.member, f);
1739 OutputExpression(exp->member.exp, f);
1740 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1741 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1743 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1744 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "->");
1745 OutputIdentifier(exp->member.member, f);
1748 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1749 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1751 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1752 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof(");
1753 OutputTypeName(exp->typeName, f, 0x0);
1754 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1755 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1757 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1758 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1761 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1762 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1764 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1765 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__alignof__(");
1766 OutputTypeName(exp->typeName, f, 0x0);
1767 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1768 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1770 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1771 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1774 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1775 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1777 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1778 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
1779 if(exp->initializer.typeName)
1780 OutputTypeName(exp->initializer.typeName, f, 0x0);
1781 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1782 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1784 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1785 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1786 if(exp->initializer.initializer)
1787 OutputInitializer(exp->initializer.initializer, f);
1790 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1791 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1793 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1794 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1795 OutputTypeName(exp->cast.typeName, f, 0x0);
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 OutputExpression(exp->cast.exp, f);
1805 OutputExpression(exp->cond.cond, f);
1806 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1807 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1809 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1810 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ? ");
1812 struct Expression * expression;
1814 for(expression = (*exp->cond.exp).first; expression; expression = expression->next)
1816 OutputExpression(expression, f);
1817 if(expression->next)
1818 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1819 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1821 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1822 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1825 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1826 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1828 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1829 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1830 if(exp->cond.elseExp)
1831 OutputExpression(exp->cond.elseExp, f);
1834 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1835 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1837 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1838 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_arg(");
1839 OutputExpression(exp->vaArg.exp, f);
1840 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1841 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1843 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1844 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1845 OutputTypeName(exp->vaArg.typeName, f, 0x0);
1846 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1847 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1849 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1850 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1853 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1854 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1856 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1857 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1860 struct Expression * expression;
1862 for(expression = (*exp->list).first; expression; expression = expression->next)
1864 OutputExpression(expression, f);
1865 if(expression->next)
1866 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1867 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1869 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1870 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1873 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1874 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1876 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1877 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1882 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1886 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1887 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1889 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1890 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1891 OutputIdentifier(field->symbolic, f);
1892 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1893 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1895 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1896 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1898 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1899 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1901 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1902 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, field->command);
1903 if(field->expression)
1905 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1906 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1908 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1909 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1910 OutputExpression(field->expression, f);
1911 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1912 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1914 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1915 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1919 extern char * strchr(const char * , int);
1921 extern char * __ecereNameSpace__ecere__sys__StripLastDirectory(const char * string, char * output);
1923 extern const char * sourceFile;
1925 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, const char * addedPath);
1927 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
1929 static void GetSourceName(char * name, const char * src)
1934 if(!strchr(src, '/') && !strchr(src, '\\'))
1935 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
1936 __ecereNameSpace__ecere__sys__PathCat(name, src);
1939 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
1940 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
1943 extern const char * outputFile;
1945 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f);
1947 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
1949 extern struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
1951 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1953 extern struct Identifier * MkIdentifier(const char * string);
1955 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
1957 extern struct Specifier * CopySpecifier(struct Specifier * spec);
1959 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
1961 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
1963 extern struct Specifier * MkSpecifierName(const char * name);
1965 extern void PrintTypeNoConst(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
1967 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
1969 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
1971 extern void FreeTypeName(struct TypeName * typeName);
1973 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
1975 char name[274] = "";
1976 char origName[274] = "";
1980 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
1981 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1982 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1984 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
1986 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
1992 OutputDeclaration(stmt->decl, f);
1995 OutputIdentifier(stmt->labeled.id, f);
1996 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1997 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1999 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2000 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2002 if(stmt->labeled.stmt)
2004 if(stmt->labeled.stmt->type == 14)
2005 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2006 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2008 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2009 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2010 OutputStatement(stmt->labeled.stmt, f);
2014 if(stmt->caseStmt.exp)
2016 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2017 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2019 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2020 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "case ");
2021 OutputExpression(stmt->caseStmt.exp, f);
2022 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2023 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2025 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2026 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
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, "default:\n");
2038 if(stmt->caseStmt.stmt)
2040 if(stmt->caseStmt.stmt->type == 14)
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, "; ");
2046 OutputStatement(stmt->caseStmt.stmt, f);
2051 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2052 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2054 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2055 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
2057 if(stmt->compound.declarations)
2059 struct Declaration * decl;
2061 for(decl = (*stmt->compound.declarations).first; decl; decl = decl->next)
2063 OutputDeclaration(decl, f);
2066 if(stmt->compound.statements)
2068 struct Statement * statement;
2070 if(stmt->compound.declarations)
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");
2079 for(statement = (*stmt->compound.statements).first; statement; statement = statement->next)
2081 OutputStatement(statement, f);
2082 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2083 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2085 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2086 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2090 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2092 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2095 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2096 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2098 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2099 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2104 if(stmt->expressions)
2106 struct Expression * exp;
2108 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2110 OutputExpression(exp, f);
2112 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2113 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2115 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2116 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2119 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2120 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2122 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2123 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2128 struct Expression * exp;
2130 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2131 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2133 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2134 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "if(");
2135 for(exp = (*stmt->ifStmt.exp).first; exp; exp = exp->next)
2137 OutputExpression(exp, f);
2139 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2140 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2142 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2143 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
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 if(stmt->ifStmt.stmt)
2152 OutputStatement(stmt->ifStmt.stmt, f);
2153 if(stmt->ifStmt.elseStmt)
2155 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2156 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2158 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2159 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2161 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2162 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2164 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2165 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "else");
2166 if(stmt->ifStmt.elseStmt->type != 4)
2168 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2169 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2171 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2172 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2176 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2177 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2179 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2180 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2181 OutputStatement(stmt->ifStmt.elseStmt, f);
2187 struct Expression * exp;
2189 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2190 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2192 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2193 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "switch(");
2194 if(stmt->switchStmt.exp)
2196 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2198 OutputExpression(exp, f);
2200 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2201 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2203 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2204 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2207 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2208 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2210 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2211 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2213 OutputStatement(stmt->switchStmt.stmt, f);
2218 struct Expression * exp;
2220 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2221 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2223 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2224 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2225 if(stmt->switchStmt.exp)
2227 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2229 OutputExpression(exp, f);
2231 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2232 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2234 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2235 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2238 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2239 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2241 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2242 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2244 OutputStatement(stmt->whileStmt.stmt, f);
2249 struct Expression * exp;
2251 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2252 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2254 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2255 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "do\n");
2257 OutputStatement(stmt->whileStmt.stmt, f);
2258 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2259 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2261 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2262 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2263 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
2265 OutputExpression(exp, f);
2267 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2268 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2270 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2271 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2273 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2274 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2276 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2277 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");");
2282 struct Expression * exp;
2284 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2285 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2287 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2288 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "for(");
2289 OutputStatement(stmt->forStmt.init, f);
2290 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2291 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2293 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2294 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2295 OutputStatement(stmt->forStmt.check, f);
2296 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2297 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2299 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2300 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2301 if(stmt->forStmt.increment)
2303 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2305 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2308 for(exp = (*stmt->forStmt.increment).first; exp; exp = exp->next)
2310 OutputExpression(exp, f);
2312 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2313 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2315 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2316 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2319 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2320 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2322 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2323 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2325 OutputStatement(stmt->forStmt.stmt, f);
2330 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2331 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2333 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2334 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "goto ");
2335 OutputIdentifier(stmt->gotoStmt.id, f);
2336 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2337 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2339 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2340 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2344 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2345 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2347 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2348 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "continue;");
2351 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2352 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2354 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2355 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "break;");
2359 struct Expression * exp;
2361 if(inCompiler && memoryGuard)
2363 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2365 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
2366 if(exp && exp->expType && exp->expType->kind != 0)
2368 char string[1024] = "";
2369 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
2370 struct Declarator * decl;
2371 struct TypeName * typeName;
2373 if(exp->expType->kind == 20)
2375 if(exp->expType->templateParameter->dataTypeString)
2376 decl = SpecDeclFromString(exp->expType->templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2377 else if(exp->expType->templateParameter->dataType)
2379 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
2380 specs = CopyList(exp->expType->templateParameter->dataType->specifiers, CopySpecifier);
2381 decl = PlugDeclarator(exp->expType->templateParameter->dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2385 ListAdd(specs, MkSpecifierName("uint64"));
2386 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
2391 PrintTypeNoConst(exp->expType, string, exp->expType->kind == 18 ? 0x1 : 0x0, 0x1);
2392 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
2394 typeName = MkTypeName(specs, decl);
2395 InstDeclPassTypeName(typeName, 0x0);
2396 OutputTypeName(typeName, f, 0x0);
2397 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
2398 FreeTypeName(typeName);
2402 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2403 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2405 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2406 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "return ");
2409 struct Expression * exp = stmt->expressions ? (*stmt->expressions).last : (((void *)0));
2411 if(exp && exp->expType && exp->expType->kind != 0)
2412 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
2414 if(stmt->expressions)
2416 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
2418 OutputExpression(exp, f);
2420 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2421 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2423 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2424 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2427 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2428 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2430 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2431 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2432 if(inCompiler && memoryGuard)
2434 struct Expression * exp = stmt->expressions ? (struct Expression *)(*stmt->expressions).last : (((void *)0));
2436 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
2437 if(exp && exp->expType && exp->expType->kind != 0)
2438 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
2440 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
2441 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
2447 struct AsmField * field;
2449 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2450 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2452 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2453 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__asm__ ");
2454 if(stmt->asmStmt.spec)
2455 OutputSpecifier(stmt->asmStmt.spec, f, 0x0);
2456 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2457 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2459 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2460 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2461 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2462 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2464 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2465 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, stmt->asmStmt.statements);
2466 if(stmt->asmStmt.inputFields || stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
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 if(stmt->asmStmt.inputFields)
2475 for(field = (*stmt->asmStmt.inputFields).first; field; field = field->next)
2478 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2479 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2481 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2482 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2483 OutputAsmField(field, f);
2487 if(stmt->asmStmt.outputFields || stmt->asmStmt.clobberedFields)
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 if(stmt->asmStmt.outputFields)
2496 for(field = (*stmt->asmStmt.outputFields).first; field; field = field->next)
2499 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2500 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2502 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2503 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2504 OutputAsmField(field, f);
2508 if(stmt->asmStmt.clobberedFields)
2510 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2511 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2513 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2514 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
2515 for(field = (*stmt->asmStmt.clobberedFields).first; field; field = field->next)
2518 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2519 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2521 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2522 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
2523 OutputAsmField(field, f);
2526 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2527 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2529 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2530 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");\n");
2535 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
2537 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
2542 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
2544 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2545 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2547 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2548 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*");
2551 struct Specifier * spec;
2553 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2554 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2556 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2557 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2558 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
2560 OutputSpecifier(spec, f, 0x0);
2562 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2563 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2565 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2566 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2571 OutputPointer(ptr->pointer, f);
2575 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f);
2577 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f);
2579 extern void ProcessExpressionType(struct Expression * exp);
2581 extern void ComputeExpression(struct Expression * exp);
2583 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2588 if(decl->declarator)
2590 OutputDeclarator(decl->declarator, f);
2592 if(decl->structDecl.exp)
2594 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2595 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2597 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2598 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2599 OutputExpression(decl->structDecl.exp, f);
2601 if(decl->structDecl.posExp)
2603 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2604 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2606 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2607 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2608 OutputExpression(decl->structDecl.posExp, f);
2610 if(decl->structDecl.attrib)
2612 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2613 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2615 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2616 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2617 OutputAttrib(decl->structDecl.attrib, f);
2621 OutputIdentifier(decl->identifier, f);
2624 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2625 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2627 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2628 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2629 OutputDeclarator(decl->declarator, f);
2630 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2631 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2633 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2634 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2637 if(decl->extended.extended)
2638 OutputExtDecl(decl->extended.extended, f);
2639 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2640 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2642 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2643 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2644 OutputDeclarator(decl->declarator, f);
2647 OutputDeclarator(decl->declarator, f);
2648 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2649 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2651 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2652 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2653 if(decl->extended.extended)
2654 OutputExtDecl(decl->extended.extended, f);
2657 if(decl->declarator)
2659 OutputDeclarator(decl->declarator, f);
2661 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2662 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2664 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2665 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
2668 ProcessExpressionType(decl->array.exp);
2669 ComputeExpression(decl->array.exp);
2670 OutputExpression(decl->array.exp, f);
2672 else if(decl->array.enumClass)
2674 struct Symbol * _class = decl->array.enumClass->symbol;
2676 if(_class && _class->registered)
2678 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->registered, "enumSize"));
2681 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2682 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2684 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2685 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
2689 struct TypeName * param;
2691 if(decl->declarator)
2692 OutputDeclarator(decl->declarator, f);
2693 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2694 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2696 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2697 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
2698 if(decl->function.parameters && (*decl->function.parameters).first)
2700 for(param = (*decl->function.parameters).first; param; param = param->next)
2702 OutputTypeName(param, f, 0x0);
2704 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2705 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2707 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2708 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2711 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2712 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2714 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2715 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2719 if(decl->pointer.pointer)
2720 OutputPointer(decl->pointer.pointer, f);
2721 if(decl->declarator)
2723 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2724 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2726 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2727 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2728 OutputDeclarator(decl->declarator, f);
2734 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
2736 OutputIdentifier(enumerator->id, f);
2739 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2740 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2742 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2743 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
2744 OutputExpression(enumerator->exp, f);
2748 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2751 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2752 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2754 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2755 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, attr->attr);
2758 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2759 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2761 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2762 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2763 OutputExpression(attr->exp, f);
2767 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
2772 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2773 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2775 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2776 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute__((");
2779 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2780 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2782 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2783 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute((");
2786 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2787 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2789 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2790 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute_deprecated__((");
2795 struct Attribute * attrib;
2797 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
2800 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2801 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2803 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2804 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2805 OutputAttribute(attrib, f);
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, "))");
2815 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
2817 if(extDecl->type == 0 && extDecl->s)
2818 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2819 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2821 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2822 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, extDecl->s);
2823 else if(extDecl->type == 1)
2824 OutputAttrib(extDecl->attr, f);
2827 extern struct Symbol * FindClass(const char * name);
2829 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f);
2831 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2836 switch(spec->specifier)
2839 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2840 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2842 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2843 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef");
2846 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2847 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2849 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2850 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "extern");
2853 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2854 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2856 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2857 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static");
2860 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2861 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2863 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2864 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "auto");
2867 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2868 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2870 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2871 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "register");
2874 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2875 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2877 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2878 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__thread");
2881 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2882 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2884 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2885 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "const");
2888 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2889 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2891 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2892 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "volatile");
2895 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2896 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2898 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2899 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "void");
2902 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2903 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2905 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2906 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "char");
2910 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2911 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2913 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2914 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Bool");
2917 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2918 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2920 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2921 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Complex");
2924 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2925 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2927 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2928 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Imaginary");
2931 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2932 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2934 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2935 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "restrict");
2938 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2939 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2941 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2942 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "short");
2945 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2946 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2948 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2949 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "int");
2952 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2953 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2955 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2956 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "uint" : "unsigned int");
2959 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2960 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2962 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2963 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "int64" : "long long");
2966 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2967 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2969 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2970 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_list");
2973 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2974 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2976 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2977 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "long");
2980 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2981 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2983 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2984 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "float");
2987 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2988 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2990 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2991 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "double");
2994 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2995 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2997 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2998 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "signed");
3001 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3002 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3004 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3005 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "unsigned");
3008 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3009 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3011 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3012 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
3015 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3016 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3018 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3019 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "any_object");
3022 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3023 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3025 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3026 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class");
3029 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3030 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3032 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3033 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "thisclass");
3039 OutputExtDecl(spec->extDecl, f);
3042 if(spec->name && !strcmp(spec->name, "class"))
3044 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3045 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3047 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3048 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
3052 struct Symbol * symbol = spec->symbol;
3054 if(!symbol && spec->name)
3055 symbol = FindClass(spec->name);
3058 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3059 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3061 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3062 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, symbol->string ? symbol->string : "(null)");
3065 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3066 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3068 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3069 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, spec->name);
3074 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3075 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3077 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3078 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "enum");
3081 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3082 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3084 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3085 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3086 OutputIdentifier(spec->id, f);
3090 struct Enumerator * enumerator;
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, "\n{\n");
3098 for(enumerator = (*spec->list).first; enumerator; enumerator = enumerator->next)
3100 OutputEnumerator(enumerator, f);
3101 if(enumerator->next)
3102 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3103 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3105 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3106 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3108 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3109 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3111 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3112 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3120 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3121 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3123 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3124 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (spec->type == 3) ? "struct" : "union");
3125 if(spec->extDeclStruct)
3127 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3128 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3130 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3131 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3132 OutputExtDecl(spec->extDeclStruct, f);
3136 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3137 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3139 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3140 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3141 OutputIdentifier(spec->id, f);
3143 if(spec->definitions)
3145 struct ClassDef * def;
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, "\n{\n");
3153 for(def = (*spec->definitions).first; def; def = def->next)
3155 OutputClassDef(def, f);
3157 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3158 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3160 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3161 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "} __attribute__ ((gcc_struct))");
3166 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3167 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3169 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3170 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__typeof(");
3171 OutputExpression(spec->expression, f);
3172 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3173 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3175 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3176 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3179 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3180 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3182 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3183 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "subclass(");
3184 OutputSpecifier(spec->_class, f, 0x0);
3185 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3186 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3188 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3189 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3192 OutputIdentifier(spec->templateParameter->identifier, f);
3197 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
3199 char name[274] = "";
3200 char origName[274] = "";
3204 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
3205 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3206 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3208 if(initializer->type == 1)
3209 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3210 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3212 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3213 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3216 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3217 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3219 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3220 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3221 OutputIdentifier(initializer->id, f);
3222 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3223 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3225 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3226 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
3228 switch(initializer->type)
3232 struct Initializer * init;
3235 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3236 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3238 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3239 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3240 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3241 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3243 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3244 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
3246 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3248 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3251 for(init = (*initializer->list).first; init; init = init->next)
3253 OutputInitializer(init, f);
3255 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3256 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3258 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3259 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, init->next->type == 1 ? "," : ", ");
3261 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3262 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3264 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3265 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
3266 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
3268 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
3276 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3277 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3279 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3280 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3281 if(initializer->exp)
3282 OutputExpression(initializer->exp, f);
3287 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3289 OutputDeclarator(decl->declarator, f);
3290 if(decl->initializer)
3292 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3293 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3295 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3296 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
3297 if(decl->initializer->type == 0)
3298 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3299 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3301 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3302 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3303 OutputInitializer(decl->initializer, f);
3307 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
3309 struct Specifier * spec;
3310 char origName[274] = "";
3316 struct InitDeclarator * d;
3320 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
3321 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
3323 if(decl->declarators && (*decl->declarators).first)
3325 for(d = (*decl->declarators).first; d; d = d->next)
3328 char name[274] = "";
3330 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
3331 if(inCompiler && outputLineNumbers && decl->loc.start.line)
3333 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
3339 if(decl->specifiers)
3341 unsigned int inTypeDef = 0x0;
3343 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3345 if(spec->type == 0 && spec->specifier == TYPEDEF)
3347 OutputSpecifier(spec, f, inTypeDef && !spec->next);
3349 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3350 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3352 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3353 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3356 if(decl->declarators && (*decl->declarators).first)
3358 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3359 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3361 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3362 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3363 for(d = (*decl->declarators).first; d; d = d->next)
3365 OutputInitDeclarator(d, f);
3367 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3368 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3370 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3371 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3378 if(decl->specifiers)
3380 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
3382 OutputSpecifier(spec, f, 0x0);
3384 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3385 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3387 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3388 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3391 if(decl->declarators)
3393 struct Declarator * d;
3395 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3396 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3398 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3399 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3400 for(d = (*decl->declarators).first; d; d = d->next)
3402 OutputDeclarator(d, f);
3404 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3405 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3407 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3408 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3411 if(decl->extStorage)
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, " ");
3418 OutputSpecifier(decl->extStorage, f, 0x0);
3425 OutputInstance(decl->inst, f);
3431 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3432 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3434 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3435 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3437 if(inCompiler && outputLineNumbers && decl->loc.start.line && decl->type == 1)
3439 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3444 static struct FunctionDefinition * curFunction;
3446 extern struct Identifier * GetDeclId(struct Declarator * decl);
3448 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
3450 struct FunctionDefinition * oldFunc = curFunction;
3453 if(func->specifiers)
3455 struct Specifier * spec;
3457 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3459 OutputSpecifier(spec, f, 0x0);
3461 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3462 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3464 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3465 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
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, " ");
3473 if(func->declarator)
3474 OutputDeclarator(func->declarator, f);
3475 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3476 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3478 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3479 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3481 if(func->declarations)
3483 struct Declaration * decl;
3485 for(decl = (*func->declarations).first; decl; decl = decl->next)
3487 OutputDeclaration(decl, 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, "\n");
3498 if(inCompiler && memoryGuard)
3500 char name[1024] = "";
3501 struct Identifier * id = GetDeclId(func->declarator);
3503 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
3504 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
3505 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
3508 OutputStatement(func->body, f);
3509 if(inCompiler && memoryGuard)
3511 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
3512 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
3515 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3516 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3518 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3519 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3522 curFunction = oldFunc;
3525 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3527 if(init->identifiers)
3529 if((*init->identifiers).count > 1)
3531 struct Identifier * id;
3533 for(id = (*init->identifiers).first; id; id = id->next)
3535 OutputIdentifier(id, f);
3537 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3538 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3540 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3541 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3544 else if((*init->identifiers).first)
3545 OutputIdentifier((*init->identifiers).first, f);
3546 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3547 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3549 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3550 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
3551 if(init->initializer && init->initializer->type == 0)
3552 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3553 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3555 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3556 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3558 if(init->initializer)
3559 OutputInitializer(init->initializer, f);
3562 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f);
3564 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3570 struct MemberInit * member;
3572 if(init->dataMembers)
3574 for(member = (*init->dataMembers).first; member; member = member->next)
3576 OutputMemberInit(member, f);
3578 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3579 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3581 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3582 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3588 OutputClassFunction(init->function, f);
3593 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
3596 OutputSpecifier(inst->_class, f, 0x0);
3599 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3600 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3602 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3603 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3604 OutputExpression(inst->exp, f);
3606 if(inst->members && (*inst->members).count > 1)
3608 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3609 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3611 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3612 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3615 else if(inst->members)
3616 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3617 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3619 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3620 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " { ");
3622 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3623 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3625 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3626 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{");
3629 struct MembersInit * init;
3631 for(init = (*inst->members).first; init; init = init->next)
3633 OutputMembersInit(init, f);
3634 if(init->type == 0 && init->next)
3636 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3637 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3639 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3640 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
3646 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3647 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3649 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3650 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }");
3652 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3653 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3655 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3656 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
3659 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
3661 if(func->specifiers)
3663 struct Specifier * spec;
3665 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3667 OutputSpecifier(spec, f, 0x0);
3669 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3670 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3672 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3673 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3675 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3676 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3678 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3679 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3681 if(func->declarator)
3682 OutputDeclarator(func->declarator, f);
3683 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3684 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3686 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3687 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3689 if(func->declarations)
3691 struct Declaration * decl;
3693 for(decl = (*func->declarations).first; decl; decl = decl->next)
3695 OutputDeclaration(decl, f);
3697 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3698 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3700 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3701 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3706 OutputStatement(func->body, f);
3707 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3708 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3710 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3711 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3715 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3716 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3718 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3719 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3722 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
3729 OutputDeclaration(def->decl, f);
3730 if(def->next && def->next->type != 2)
3732 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3733 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3735 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3736 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3743 struct MemberInit * init;
3745 for(init = (*def->defProperties).first; init; init = init->next)
3747 OutputMemberInit(init, f);
3749 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3750 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3752 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3753 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3755 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3756 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3758 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3759 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n\n");
3764 OutputClassFunction(def->function, f);
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, "\n");
3775 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
3777 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3778 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3780 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3781 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class ");
3782 OutputSpecifier(_class->_class, f, 0x0);
3783 if(_class->baseSpecs)
3785 struct Specifier * spec;
3787 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3788 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3790 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3791 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
3792 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
3794 OutputSpecifier(spec, f, 0x0);
3797 if(_class->definitions)
3799 struct ClassDef * def;
3801 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3802 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3804 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3805 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
3807 for(def = (*_class->definitions).first; def; def = def->next)
3809 OutputClassDef(def, f);
3811 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3812 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3814 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3815 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
3819 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3820 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3822 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3823 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3826 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
3828 struct External * external;
3831 for(external = ast->first; external; external = external->next)
3833 switch(external->type)
3836 OutputFunction(external->function, f);
3837 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3838 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3840 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3841 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3845 if(external->declaration)
3846 OutputDeclaration(external->declaration, f);
3847 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3848 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3850 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3851 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3855 OutputClass(external->_class, f);
3856 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3857 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3859 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3860 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3867 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(const char * string, char * output);
3869 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
3871 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
3873 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
3875 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
3877 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
3879 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
3881 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
3884 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
3885 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
3888 typeName->qualifiers = specs;
3889 typeName->declarator = decl;
3890 OutputTypeName(typeName, f, 0x1);
3891 ((typeName ? (__ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor((void *)typeName) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(typeName)) : 0), typeName = 0);
3892 size = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
3893 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3895 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3896 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(f);
3897 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
3898 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
3899 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3901 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3902 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, 0, 0);
3903 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
3904 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3906 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3907 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, string, 1, (unsigned int)size);
3908 string[size] = '\0';
3909 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
3910 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
3914 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
3916 struct __ecereNameSpace__ecere__com__GlobalFunction;
3918 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(const char * name, const char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
3920 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3922 struct __ecereNameSpace__ecere__com__Class * class;
3924 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
3925 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
3926 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
3927 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
3928 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
3929 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
3932 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)