1 /* Code generated from eC source file: output.ec */
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
7 #define __runtimePlatform 2
10 typedef long long int64;
11 typedef unsigned long long uint64;
15 #elif defined(__TINYC__)
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
27 typedef long long int64;
28 typedef unsigned long long uint64;
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
34 #define __ENDIAN_PAD(x) (8 - (x))
36 #define __ENDIAN_PAD(x) 0
39 # if defined(__GNUC__) || defined(__TINYC__)
40 # define ecere_stdcall __attribute__((__stdcall__))
41 # define ecere_gcc_struct __attribute__((gcc_struct))
43 # define ecere_stdcall __stdcall
44 # define ecere_gcc_struct
47 # define ecere_stdcall
48 # define ecere_gcc_struct
51 #include <sys/types.h>
54 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, WIDE_STRING_LITERAL = 373, BUILTIN_OFFSETOF = 374
59 unsigned int memoryGuard = 0;
61 extern unsigned int inCompiler;
63 extern unsigned int outputLineNumbers;
65 extern const char * sourceFile;
67 extern const char * outputFile;
69 struct __ecereNameSpace__ecere__sys__OldList
78 struct __ecereNameSpace__ecere__sys__BTNode;
80 struct __ecereNameSpace__ecere__com__DataValue
95 } ecere_gcc_struct __anon1;
98 struct __ecereNameSpace__ecere__com__SerialBuffer
100 unsigned char * _buffer;
106 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
108 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
110 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
112 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
114 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
120 struct PropertyWatch;
122 struct TemplateArgument;
138 extern int strcmp(const char * , const char * );
140 extern char * GetIncludeFileFromID(int id);
142 extern char * strchr(const char * , int);
144 extern char * __ecereNameSpace__ecere__sys__StripLastDirectory(const char * string, char * output);
146 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, const char * addedPath);
148 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
150 extern char * strcpy(char * , const char * );
156 struct __ecereNameSpace__ecere__com__LinkList
163 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(const char * string, char * output);
165 struct __ecereNameSpace__ecere__com__GlobalFunction;
167 void SetMemoryGuard(unsigned int b)
172 unsigned int GetMemoryGuard()
177 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
179 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
181 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
185 struct CodePosition start;
186 struct CodePosition end;
189 static void GetSourceName(char * name, const char * src)
194 if(!strchr(src, '/') && !strchr(src, '\\'))
195 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
196 __ecereNameSpace__ecere__sys__PathCat(name, src);
199 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
200 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
203 extern struct Location yylloc;
209 struct __ecereNameSpace__ecere__sys__OldList * attribs;
219 struct Attrib * attr;
220 } ecere_gcc_struct __anon1;
225 extern void ProcessExpressionType(struct Expression * exp);
227 extern void ComputeExpression(struct Expression * exp);
229 struct FunctionDefinition;
231 static struct FunctionDefinition * curFunction;
233 struct __ecereNameSpace__ecere__com__Class;
235 struct __ecereNameSpace__ecere__com__Instance
238 struct __ecereNameSpace__ecere__com__Class * _class;
242 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
244 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
246 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
248 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
250 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
252 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
254 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
256 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, const char * format, ...);
258 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
260 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
262 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
264 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
266 struct __ecereNameSpace__ecere__com__Property;
268 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
270 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);
272 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
274 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
278 extern struct Identifier * MkIdentifier(const char * string);
282 extern struct Specifier * CopySpecifier(struct Specifier * spec);
284 extern struct Specifier * MkSpecifierName(const char * name);
288 extern struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
290 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
292 struct TemplateDatatype
294 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
295 struct Declarator * decl;
298 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
300 extern struct Identifier * GetDeclId(struct Declarator * decl);
304 struct __ecereNameSpace__ecere__com__Property
306 struct __ecereNameSpace__ecere__com__Property * prev;
307 struct __ecereNameSpace__ecere__com__Property * next;
309 unsigned int isProperty;
312 struct __ecereNameSpace__ecere__com__Class * _class;
313 const char * dataTypeString;
314 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
315 struct Type * dataType;
316 void (* Set)(void * , int);
317 int (* Get)(void * );
318 unsigned int (* IsSet)(void * );
322 unsigned int conversion;
323 unsigned int watcherOffset;
324 const char * category;
325 unsigned int compiled;
326 unsigned int selfWatchable;
327 unsigned int isWatchable;
330 extern void PrintType(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
336 struct TypeName * prev;
337 struct TypeName * next;
339 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
340 struct Declarator * declarator;
342 struct Expression * bitCount;
345 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
347 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
349 extern void FreeTypeName(struct TypeName * typeName);
355 struct Identifier * prev;
356 struct Identifier * next;
358 struct Symbol * classSym;
359 struct Specifier * _class;
361 struct Identifier * badID;
364 extern struct Symbol * FindClass(const char * name);
366 struct __ecereNameSpace__ecere__sys__BinaryTree;
368 struct __ecereNameSpace__ecere__sys__BinaryTree
370 struct __ecereNameSpace__ecere__sys__BTNode * root;
372 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
373 void (* FreeKey)(void * key);
380 struct Pointer * prev;
381 struct Pointer * next;
383 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
384 struct Pointer * pointer;
389 struct Declarator * prev;
390 struct Declarator * next;
393 struct Symbol * symbol;
394 struct Declarator * declarator;
397 struct Identifier * identifier;
400 struct Expression * exp;
401 struct Expression * posExp;
402 struct Attrib * attrib;
403 } ecere_gcc_struct structDecl;
406 struct Expression * exp;
407 struct Specifier * enumClass;
408 } ecere_gcc_struct array;
411 struct __ecereNameSpace__ecere__sys__OldList * parameters;
412 } ecere_gcc_struct function;
415 struct Pointer * pointer;
416 } ecere_gcc_struct pointer;
419 struct ExtDecl * extended;
420 } ecere_gcc_struct extended;
421 } ecere_gcc_struct __anon1;
432 struct Attribute * prev;
433 struct Attribute * next;
436 struct Expression * exp;
439 struct __ecereNameSpace__ecere__com__Module;
441 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);
443 struct __ecereNameSpace__ecere__com__DataMember;
445 struct __ecereNameSpace__ecere__com__DataMember
447 struct __ecereNameSpace__ecere__com__DataMember * prev;
448 struct __ecereNameSpace__ecere__com__DataMember * next;
450 unsigned int isProperty;
453 struct __ecereNameSpace__ecere__com__Class * _class;
454 const char * dataTypeString;
455 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
456 struct Type * dataType;
460 struct __ecereNameSpace__ecere__sys__OldList members;
461 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
463 short structAlignment;
464 short pointerAlignment;
471 struct AsmField * prev;
472 struct AsmField * next;
475 struct Expression * expression;
476 struct Identifier * symbolic;
483 struct Enumerator * prev;
484 struct Enumerator * next;
486 struct Identifier * id;
487 struct Expression * exp;
496 struct Initializer * prev;
497 struct Initializer * next;
502 struct Expression * exp;
503 struct __ecereNameSpace__ecere__sys__OldList * list;
504 } ecere_gcc_struct __anon1;
505 unsigned int isConstant;
506 struct Identifier * id;
511 struct MemberInit * prev;
512 struct MemberInit * next;
514 struct Location realLoc;
515 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
516 struct Initializer * initializer;
518 unsigned int variable;
519 unsigned int takeOutExp;
524 struct FunctionDefinition
526 struct FunctionDefinition * prev;
527 struct FunctionDefinition * next;
529 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
530 struct Declarator * declarator;
531 struct __ecereNameSpace__ecere__sys__OldList * declarations;
532 struct Statement * body;
533 struct __ecereNameSpace__ecere__com__Class * _class;
534 struct __ecereNameSpace__ecere__sys__OldList attached;
537 struct Symbol * propSet;
539 unsigned int propertyNoThis;
542 struct __ecereNameSpace__ecere__com__Method;
544 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
550 const char * dataTypeString;
551 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
552 } ecere_gcc_struct __anon1;
553 struct __ecereNameSpace__ecere__com__DataValue expression;
556 const char * memberString;
559 struct __ecereNameSpace__ecere__com__DataMember * member;
560 struct __ecereNameSpace__ecere__com__Property * prop;
561 struct __ecereNameSpace__ecere__com__Method * method;
562 } ecere_gcc_struct __anon1;
563 } ecere_gcc_struct __anon2;
564 } ecere_gcc_struct __anon1;
567 struct __ecereNameSpace__ecere__com__Method
570 struct __ecereNameSpace__ecere__com__Method * parent;
571 struct __ecereNameSpace__ecere__com__Method * left;
572 struct __ecereNameSpace__ecere__com__Method * right;
577 struct __ecereNameSpace__ecere__com__Class * _class;
579 const char * dataTypeString;
580 struct Type * dataType;
584 struct TemplateParameter;
588 struct Specifier * prev;
589 struct Specifier * next;
597 struct ExtDecl * extDecl;
599 struct Symbol * symbol;
600 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
601 struct Specifier * nsSpec;
602 } ecere_gcc_struct __anon1;
605 struct Identifier * id;
606 struct __ecereNameSpace__ecere__sys__OldList * list;
607 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
608 struct __ecereNameSpace__ecere__sys__OldList * definitions;
609 unsigned int addNameSpace;
610 struct Context * ctx;
611 struct ExtDecl * extDeclStruct;
612 } ecere_gcc_struct __anon2;
613 struct Expression * expression;
614 struct Specifier * _class;
615 struct TemplateParameter * templateParameter;
616 } ecere_gcc_struct __anon1;
619 struct TemplateParameter
621 struct TemplateParameter * prev;
622 struct TemplateParameter * next;
625 struct Identifier * identifier;
628 struct TemplateDatatype * dataType;
630 } ecere_gcc_struct __anon1;
631 struct TemplateArgument * defaultArgument;
632 const char * dataTypeString;
633 struct Type * baseType;
643 struct Symbol * _class;
646 struct __ecereNameSpace__ecere__sys__OldList members;
648 } ecere_gcc_struct __anon1;
651 struct Type * returnType;
652 struct __ecereNameSpace__ecere__sys__OldList params;
653 struct Symbol * thisClass;
654 unsigned int staticMethod;
655 struct TemplateParameter * thisClassTemplate;
656 } ecere_gcc_struct __anon2;
659 struct __ecereNameSpace__ecere__com__Method * method;
660 struct __ecereNameSpace__ecere__com__Class * methodClass;
661 struct __ecereNameSpace__ecere__com__Class * usedClass;
662 } ecere_gcc_struct __anon3;
665 struct Type * arrayType;
667 struct Expression * arraySizeExp;
668 unsigned int freeExp;
669 struct Symbol * enumClass;
670 } ecere_gcc_struct __anon4;
672 struct TemplateParameter * templateParameter;
673 } ecere_gcc_struct __anon1;
678 struct __ecereNameSpace__ecere__com__Class * thisClassFrom;
686 unsigned int isSigned : 1;
687 unsigned int constant : 1;
688 unsigned int truth : 1;
689 unsigned int byReference : 1;
690 unsigned int extraParam : 1;
691 unsigned int directClassAccess : 1;
692 unsigned int computing : 1;
693 unsigned int keepCast : 1;
694 unsigned int passAsTemplate : 1;
695 unsigned int dllExport : 1;
696 unsigned int attrStdcall : 1;
697 unsigned int declaredWithStruct : 1;
698 unsigned int typedByReference : 1;
699 unsigned int casted : 1;
700 unsigned int pointerAlignment : 1;
701 unsigned int isLong : 1;
702 unsigned int signedBeforePromotion : 1;
709 struct Statement * prev;
710 struct Statement * next;
715 struct __ecereNameSpace__ecere__sys__OldList * expressions;
718 struct Identifier * id;
719 struct Statement * stmt;
720 } ecere_gcc_struct labeled;
723 struct Expression * exp;
724 struct Statement * stmt;
725 } ecere_gcc_struct caseStmt;
728 struct __ecereNameSpace__ecere__sys__OldList * declarations;
729 struct __ecereNameSpace__ecere__sys__OldList * statements;
730 struct Context * context;
731 unsigned int isSwitch;
732 } ecere_gcc_struct compound;
735 struct __ecereNameSpace__ecere__sys__OldList * exp;
736 struct Statement * stmt;
737 struct Statement * elseStmt;
738 } ecere_gcc_struct ifStmt;
741 struct __ecereNameSpace__ecere__sys__OldList * exp;
742 struct Statement * stmt;
743 } ecere_gcc_struct switchStmt;
746 struct __ecereNameSpace__ecere__sys__OldList * exp;
747 struct Statement * stmt;
748 } ecere_gcc_struct whileStmt;
751 struct __ecereNameSpace__ecere__sys__OldList * exp;
752 struct Statement * stmt;
753 } ecere_gcc_struct doWhile;
756 struct Statement * init;
757 struct Statement * check;
758 struct __ecereNameSpace__ecere__sys__OldList * increment;
759 struct Statement * stmt;
760 } ecere_gcc_struct forStmt;
763 struct Identifier * id;
764 } ecere_gcc_struct gotoStmt;
767 struct Specifier * spec;
769 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
770 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
771 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
772 } ecere_gcc_struct asmStmt;
775 struct Expression * watcher;
776 struct Expression * object;
777 struct __ecereNameSpace__ecere__sys__OldList * watches;
778 } ecere_gcc_struct _watch;
781 struct Identifier * id;
782 struct __ecereNameSpace__ecere__sys__OldList * exp;
783 struct __ecereNameSpace__ecere__sys__OldList * filter;
784 struct Statement * stmt;
785 } ecere_gcc_struct forEachStmt;
786 struct Declaration * decl;
787 } ecere_gcc_struct __anon1;
790 struct Instantiation;
794 struct Expression * prev;
795 struct Expression * next;
803 struct Identifier * identifier;
804 } ecere_gcc_struct __anon1;
805 struct Statement * compound;
806 struct Instantiation * instance;
810 unsigned int intlString;
811 unsigned int wideString;
812 } ecere_gcc_struct __anon2;
813 struct __ecereNameSpace__ecere__sys__OldList * list;
816 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
817 struct Declarator * decl;
818 } ecere_gcc_struct _classExp;
821 struct Identifier * id;
822 } ecere_gcc_struct classData;
825 struct Expression * exp;
826 struct __ecereNameSpace__ecere__sys__OldList * arguments;
827 struct Location argLoc;
828 } ecere_gcc_struct call;
831 struct Expression * exp;
832 struct __ecereNameSpace__ecere__sys__OldList * index;
833 } ecere_gcc_struct index;
836 struct Expression * exp;
837 struct Identifier * member;
839 unsigned int thisPtr;
840 } ecere_gcc_struct member;
844 struct Expression * exp1;
845 struct Expression * exp2;
846 } ecere_gcc_struct op;
847 struct TypeName * typeName;
848 struct Specifier * _class;
851 struct TypeName * typeName;
852 struct Expression * exp;
853 } ecere_gcc_struct cast;
856 struct Expression * cond;
857 struct __ecereNameSpace__ecere__sys__OldList * exp;
858 struct Expression * elseExp;
859 } ecere_gcc_struct cond;
862 struct TypeName * typeName;
863 struct Expression * size;
864 } ecere_gcc_struct _new;
867 struct TypeName * typeName;
868 struct Expression * size;
869 struct Expression * exp;
870 } ecere_gcc_struct _renew;
874 struct Identifier * id;
875 } ecere_gcc_struct db;
878 struct Expression * ds;
879 struct Expression * name;
880 } ecere_gcc_struct dbopen;
883 struct TypeName * typeName;
884 struct Initializer * initializer;
885 } ecere_gcc_struct initializer;
888 struct Expression * exp;
889 struct TypeName * typeName;
890 } ecere_gcc_struct vaArg;
893 struct TypeName * typeName;
894 struct Identifier * id;
895 } ecere_gcc_struct offset;
896 } ecere_gcc_struct __anon1;
897 unsigned int debugValue;
898 struct __ecereNameSpace__ecere__com__DataValue val;
900 unsigned int hasAddress;
901 struct Type * expType;
902 struct Type * destType;
905 unsigned int byReference;
906 unsigned int isConstant;
907 unsigned int addedThis;
908 unsigned int needCast;
909 unsigned int thisPtr;
910 unsigned int opDestType;
911 unsigned int usedInComparison;
912 unsigned int ambiguousUnits;
913 unsigned int parentOpDestType;
914 unsigned int needTemplateCast;
919 struct Declaration * prev;
920 struct Declaration * next;
927 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
928 struct __ecereNameSpace__ecere__sys__OldList * declarators;
929 } ecere_gcc_struct __anon1;
930 struct Instantiation * inst;
933 struct Identifier * id;
934 struct Expression * exp;
935 } ecere_gcc_struct __anon2;
936 } ecere_gcc_struct __anon1;
937 struct Specifier * extStorage;
938 struct Symbol * symbol;
944 struct Instantiation * prev;
945 struct Instantiation * next;
947 struct Specifier * _class;
948 struct Expression * exp;
949 struct __ecereNameSpace__ecere__sys__OldList * members;
950 struct Symbol * symbol;
951 unsigned int fullSet;
952 unsigned int isConstant;
953 unsigned char * data;
954 struct Location nameLoc;
955 struct Location insideLoc;
959 struct ClassDefinition;
961 struct ClassDefinition
963 struct ClassDefinition * prev;
964 struct ClassDefinition * next;
966 struct Specifier * _class;
967 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
968 struct __ecereNameSpace__ecere__sys__OldList * definitions;
969 struct Symbol * symbol;
970 struct Location blockStart;
971 struct Location nameLoc;
973 unsigned int deleteWatchable;
976 struct __ecereNameSpace__ecere__com__NameSpace;
978 struct __ecereNameSpace__ecere__com__NameSpace
981 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
982 struct __ecereNameSpace__ecere__com__NameSpace * left;
983 struct __ecereNameSpace__ecere__com__NameSpace * right;
985 struct __ecereNameSpace__ecere__com__NameSpace * parent;
986 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
987 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
988 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
989 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
992 struct __ecereNameSpace__ecere__com__Class
994 struct __ecereNameSpace__ecere__com__Class * prev;
995 struct __ecereNameSpace__ecere__com__Class * next;
1001 unsigned int (* Constructor)(void * );
1002 void (* Destructor)(void * );
1005 struct __ecereNameSpace__ecere__com__Class * base;
1006 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
1007 struct __ecereNameSpace__ecere__sys__BinaryTree members;
1008 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
1009 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
1010 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
1011 struct __ecereNameSpace__ecere__sys__OldList derivatives;
1015 struct __ecereNameSpace__ecere__com__Instance * module;
1016 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
1017 const char * dataTypeString;
1018 struct Type * dataType;
1020 int defaultAlignment;
1021 void (* Initialize)();
1023 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
1024 const char * designerClass;
1025 unsigned int noExpansion;
1026 const char * defaultProperty;
1027 unsigned int comRedefinition;
1030 unsigned int internalDecl;
1032 unsigned int computeSize;
1033 short structAlignment;
1034 short pointerAlignment;
1035 int destructionWatchOffset;
1037 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
1038 int inheritanceAccess;
1039 const char * fullName;
1041 struct __ecereNameSpace__ecere__sys__OldList conversions;
1042 struct __ecereNameSpace__ecere__sys__OldList templateParams;
1043 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
1044 struct __ecereNameSpace__ecere__com__Class * templateClass;
1045 struct __ecereNameSpace__ecere__sys__OldList templatized;
1047 unsigned int isInstanceClass;
1048 unsigned int byValueSystemClass;
1051 struct __ecereNameSpace__ecere__com__Application
1054 const char * * argv;
1056 unsigned int isGUIApp;
1057 struct __ecereNameSpace__ecere__sys__OldList allModules;
1058 char * parsedCommand;
1059 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1062 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
1064 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
1066 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1068 struct __ecereNameSpace__ecere__com__Module
1070 struct __ecereNameSpace__ecere__com__Instance * application;
1071 struct __ecereNameSpace__ecere__sys__OldList classes;
1072 struct __ecereNameSpace__ecere__sys__OldList defines;
1073 struct __ecereNameSpace__ecere__sys__OldList functions;
1074 struct __ecereNameSpace__ecere__sys__OldList modules;
1075 struct __ecereNameSpace__ecere__com__Instance * prev;
1076 struct __ecereNameSpace__ecere__com__Instance * next;
1082 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1083 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1086 static void OutputIdentifier(struct Identifier * id, struct __ecereNameSpace__ecere__com__Instance * f)
1092 if(id->_class->type == 8)
1094 if(id->_class->__anon1.templateParameter && id->_class->__anon1.templateParameter->identifier && id->_class->__anon1.templateParameter->identifier->string)
1095 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1096 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1098 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1099 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->__anon1.templateParameter->identifier->string);
1103 if(id->_class->__anon1.__anon1.name)
1105 if(!strcmp(id->_class->__anon1.__anon1.name, "class"))
1106 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1107 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1109 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1110 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
1112 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1113 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1115 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1116 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->__anon1.__anon1.name);
1119 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1120 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1122 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1123 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "::");
1126 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1127 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1129 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1130 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (id && id->string) ? id->string : "(null identifier)");
1133 static void OutputOperator(int op, struct __ecereNameSpace__ecere__com__Instance * f)
1138 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1139 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1141 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1142 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "++");
1145 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1146 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1148 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1149 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "--");
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, "sizeof ");
1159 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1160 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1162 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1163 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<");
1166 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1167 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1169 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1170 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>");
1173 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1174 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1176 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1177 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<=");
1180 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1181 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1183 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1184 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">=");
1187 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1188 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1190 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1191 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "==");
1194 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1195 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1197 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1198 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "!=");
1201 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1202 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1204 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1205 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&&");
1208 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1209 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1211 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1212 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "||");
1215 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1216 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1218 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1219 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*=");
1222 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1223 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1225 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1226 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "/=");
1229 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1230 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1232 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1233 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "%=");
1236 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1237 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1239 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1240 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "+=");
1243 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1244 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1246 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1247 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "-=");
1250 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1251 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1253 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1254 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<=");
1257 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1258 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1260 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1261 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>=");
1264 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1265 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1267 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1268 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&=");
1271 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1272 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1274 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1275 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "^=");
1278 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1279 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1281 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1282 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "|=");
1297 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))__extension__ ({
1298 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1300 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1301 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc])(f, (char)op);
1304 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1305 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1307 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1308 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "delete ");
1313 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
1318 struct ClassFunction;
1322 struct ClassDef * prev;
1323 struct ClassDef * next;
1324 struct Location loc;
1328 struct Declaration * decl;
1329 struct ClassFunction * function;
1330 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
1331 struct PropertyDef * propertyDef;
1332 struct PropertyWatch * propertyWatch;
1334 struct Identifier * defaultProperty;
1337 struct Identifier * id;
1338 struct Initializer * initializer;
1339 } ecere_gcc_struct __anon1;
1340 } ecere_gcc_struct __anon1;
1347 struct MembersInit * prev;
1348 struct MembersInit * next;
1349 struct Location loc;
1353 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
1354 struct ClassFunction * function;
1355 } ecere_gcc_struct __anon1;
1358 struct ClassFunction
1360 struct ClassFunction * prev;
1361 struct ClassFunction * next;
1362 struct Location loc;
1363 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1364 struct Declarator * declarator;
1365 struct __ecereNameSpace__ecere__sys__OldList * declarations;
1366 struct Statement * body;
1367 struct __ecereNameSpace__ecere__com__Class * _class;
1368 struct __ecereNameSpace__ecere__sys__OldList attached;
1371 struct Symbol * propSet;
1372 unsigned int isVirtual;
1373 unsigned int isConstructor;
1374 unsigned int isDestructor;
1375 unsigned int dontMangle;
1380 struct InitDeclarator;
1382 struct InitDeclarator
1384 struct InitDeclarator * prev;
1385 struct InitDeclarator * next;
1386 struct Location loc;
1387 struct Declarator * declarator;
1388 struct Initializer * initializer;
1393 typedef union YYSTYPE
1398 struct Identifier * id;
1399 struct Expression * exp;
1400 struct Specifier * specifier;
1401 struct __ecereNameSpace__ecere__sys__OldList * list;
1402 struct Enumerator * enumerator;
1403 struct Declarator * declarator;
1404 struct Pointer * pointer;
1405 struct Initializer * initializer;
1406 struct InitDeclarator * initDeclarator;
1407 struct TypeName * typeName;
1408 struct Declaration * declaration;
1409 struct Statement * stmt;
1410 struct FunctionDefinition * function;
1411 struct External * external;
1412 struct Context * context;
1413 struct AsmField * asmField;
1414 struct Attrib * attrib;
1415 struct ExtDecl * extDecl;
1416 struct Attribute * attribute;
1417 struct Instantiation * instance;
1418 struct MembersInit * membersInit;
1419 struct MemberInit * memberInit;
1420 struct ClassFunction * classFunction;
1421 struct ClassDefinition * _class;
1422 struct ClassDef * classDef;
1423 struct PropertyDef * prop;
1425 struct Symbol * symbol;
1426 struct PropertyWatch * propertyWatch;
1427 struct TemplateParameter * templateParameter;
1428 struct TemplateArgument * templateArgument;
1429 struct TemplateDatatype * templateDatatype;
1430 struct DBTableEntry * dbtableEntry;
1431 struct DBIndexItem * dbindexItem;
1432 struct DBTableDef * dbtableDef;
1433 } ecere_gcc_struct YYSTYPE;
1435 extern YYSTYPE yylval;
1440 struct Symbol * parent;
1441 struct Symbol * left;
1442 struct Symbol * right;
1447 struct __ecereNameSpace__ecere__com__Method * method;
1448 struct __ecereNameSpace__ecere__com__Property * _property;
1449 struct __ecereNameSpace__ecere__com__Class * registered;
1450 } ecere_gcc_struct __anon1;
1451 unsigned int notYetDeclared;
1456 struct External * pointerExternal;
1457 struct External * structExternal;
1458 } ecere_gcc_struct __anon1;
1461 struct External * externalGet;
1462 struct External * externalSet;
1463 struct External * externalPtr;
1464 struct External * externalIsSet;
1465 } ecere_gcc_struct __anon2;
1468 struct External * methodExternal;
1469 struct External * methodCodeExternal;
1470 } ecere_gcc_struct __anon3;
1471 } ecere_gcc_struct __anon2;
1472 unsigned int imported;
1473 unsigned int declaredStructSym;
1474 struct __ecereNameSpace__ecere__com__Class * _class;
1475 unsigned int declaredStruct;
1476 unsigned int needConstructor;
1477 unsigned int needDestructor;
1478 char * constructorName;
1481 char * destructorName;
1482 struct ModuleImport * module;
1483 struct ClassImport * _import;
1484 struct Location nameLoc;
1485 unsigned int isParam;
1486 unsigned int isRemote;
1487 unsigned int isStruct;
1488 unsigned int fireWatchersDone;
1490 unsigned int classData;
1491 unsigned int isStatic;
1493 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
1494 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
1495 struct Context * ctx;
1497 struct Expression * propCategory;
1498 unsigned int mustRegister;
1503 struct External * prev;
1504 struct External * next;
1505 struct Location loc;
1507 struct Symbol * symbol;
1510 struct FunctionDefinition * function;
1511 struct ClassDefinition * _class;
1512 struct Declaration * declaration;
1513 char * importString;
1514 struct Identifier * id;
1515 struct DBTableDef * table;
1516 } ecere_gcc_struct __anon1;
1518 struct External * fwdDecl;
1519 struct __ecereNameSpace__ecere__com__Instance * outgoing;
1520 struct __ecereNameSpace__ecere__com__Instance * incoming;
1521 int nonBreakableIncoming;
1524 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1526 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
1528 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1529 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1531 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1532 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*");
1535 struct Specifier * spec;
1537 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1538 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1540 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1541 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1542 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
1544 OutputSpecifier(spec, f, 0);
1546 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1547 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1549 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1550 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1555 OutputPointer(ptr->pointer, f);
1559 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f);
1561 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1565 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1566 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1568 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1569 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1570 OutputIdentifier(field->symbolic, f);
1571 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1572 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1574 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1575 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1577 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1578 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1580 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1581 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, field->command);
1582 if(field->expression)
1584 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1585 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1587 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1588 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1589 OutputExpression(field->expression, f);
1590 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1591 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1593 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1594 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1598 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
1600 OutputIdentifier(enumerator->id, f);
1603 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1604 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1606 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1607 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
1608 OutputExpression(enumerator->exp, f);
1612 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
1615 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1616 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1618 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1619 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, attr->attr);
1622 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1623 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1625 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1626 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1627 OutputExpression(attr->exp, f);
1631 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
1633 char name[274] = "";
1634 char origName[274] = "";
1638 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
1639 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1640 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1642 if(initializer->type == 1)
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, "\n");
1650 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1651 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1653 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1654 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
1655 OutputIdentifier(initializer->id, f);
1656 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1657 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1659 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1660 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
1662 switch(initializer->type)
1666 struct Initializer * init;
1669 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1670 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1672 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1673 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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, "{\n");
1680 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
1682 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
1685 for(init = (*initializer->__anon1.list).first; init; init = init->next)
1687 OutputInitializer(init, f);
1689 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1690 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1692 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1693 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, init->next->type == 1 ? "," : ", ");
1695 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1696 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1698 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1699 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
1700 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
1702 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
1710 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1711 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1713 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1714 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1715 if(initializer->__anon1.exp)
1716 OutputExpression(initializer->__anon1.exp, f);
1721 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
1726 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1727 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1729 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1730 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute__((");
1733 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1734 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1736 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1737 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute((");
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, "__attribute_deprecated__((");
1749 struct Attribute * attrib;
1751 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
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, " ");
1759 OutputAttribute(attrib, f);
1762 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1763 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1765 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1766 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "))");
1769 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
1771 if(init->identifiers)
1773 if((*init->identifiers).count > 1)
1775 struct Identifier * id;
1777 for(id = (*init->identifiers).first; id; id = id->next)
1779 OutputIdentifier(id, f);
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, ".");
1788 else if((*init->identifiers).first)
1789 OutputIdentifier((*init->identifiers).first, 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 if(init->initializer && init->initializer->type == 0)
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 if(init->initializer)
1803 OutputInitializer(init->initializer, f);
1806 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
1808 if(extDecl->type == 0 && extDecl->__anon1.s)
1809 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1810 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1812 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1813 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, extDecl->__anon1.s);
1814 else if(extDecl->type == 1)
1815 OutputAttrib(extDecl->__anon1.attr, f);
1818 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1820 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
1825 if(decl->declarator)
1827 OutputDeclarator(decl->declarator, f);
1829 if(decl->__anon1.structDecl.exp)
1831 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1832 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1834 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1835 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1836 OutputExpression(decl->__anon1.structDecl.exp, f);
1838 if(decl->__anon1.structDecl.posExp)
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 OutputExpression(decl->__anon1.structDecl.posExp, f);
1847 if(decl->__anon1.structDecl.attrib)
1849 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1850 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1852 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1853 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1854 OutputAttrib(decl->__anon1.structDecl.attrib, f);
1858 OutputIdentifier(decl->__anon1.identifier, f);
1861 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1862 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1864 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1865 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1866 OutputDeclarator(decl->declarator, f);
1867 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1868 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1870 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1871 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1874 if(decl->__anon1.extended.extended)
1875 OutputExtDecl(decl->__anon1.extended.extended, f);
1876 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1877 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1879 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1880 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1881 OutputDeclarator(decl->declarator, f);
1884 OutputDeclarator(decl->declarator, f);
1885 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1886 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1888 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1889 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1890 if(decl->__anon1.extended.extended)
1891 OutputExtDecl(decl->__anon1.extended.extended, f);
1894 if(decl->declarator)
1896 OutputDeclarator(decl->declarator, 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, "[");
1903 if(decl->__anon1.array.exp)
1905 ProcessExpressionType(decl->__anon1.array.exp);
1906 ComputeExpression(decl->__anon1.array.exp);
1907 OutputExpression(decl->__anon1.array.exp, f);
1909 else if(decl->__anon1.array.enumClass)
1911 struct Symbol * _class = decl->__anon1.array.enumClass->__anon1.__anon1.symbol;
1913 if(_class && _class->__anon1.registered)
1915 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->__anon1.registered, "enumSize"));
1918 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1919 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1921 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1922 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1926 struct TypeName * param;
1928 if(decl->declarator)
1929 OutputDeclarator(decl->declarator, f);
1930 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1931 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1933 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1934 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1935 if(decl->__anon1.function.parameters && (*decl->__anon1.function.parameters).first)
1937 for(param = (*decl->__anon1.function.parameters).first; param; param = param->next)
1939 OutputTypeName(param, f, 0);
1941 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1942 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1944 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1945 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1948 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1949 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1951 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1952 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1956 if(decl->__anon1.pointer.pointer)
1957 OutputPointer(decl->__anon1.pointer.pointer, f);
1958 if(decl->declarator)
1960 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1961 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1963 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1964 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1965 OutputDeclarator(decl->declarator, f);
1971 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
1974 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
1975 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
1978 typeName->qualifiers = specs;
1979 typeName->declarator = decl;
1980 OutputTypeName(typeName, f, 1);
1981 ((typeName ? __extension__ ({
1982 void * __ecerePtrToDelete = (typeName);
1984 __ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
1985 }) : 0), typeName = 0);
1986 size = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1987 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1989 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1990 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(f);
1991 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
1992 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
1993 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1995 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1996 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, 0, 0);
1997 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
1998 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2000 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2001 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, string, 1, (unsigned int)size);
2002 string[size] = '\0';
2003 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
2004 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
2008 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2010 if(type->qualifiers)
2012 struct Specifier * spec;
2014 for(spec = (*type->qualifiers).first; spec; spec = spec->next)
2016 OutputSpecifier(spec, f, typeName);
2018 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2019 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2021 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2022 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2025 if(type->declarator)
2027 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2028 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2030 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2031 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2032 OutputDeclarator(type->declarator, f);
2034 if(!type->qualifiers && !type->declarator)
2035 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2036 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2038 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2039 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "...");
2042 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2044 OutputDeclarator(decl->declarator, f);
2045 if(decl->initializer)
2047 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2048 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2050 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2051 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
2052 if(decl->initializer->type == 0)
2053 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2054 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2056 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2057 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2058 OutputInitializer(decl->initializer, f);
2062 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f);
2064 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f);
2066 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2071 switch(spec->__anon1.specifier)
2074 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2075 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2077 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2078 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef");
2081 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2082 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2084 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2085 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "extern");
2088 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2089 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2091 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2092 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static");
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, "auto");
2102 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2103 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2105 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2106 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "register");
2109 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2110 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2112 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2113 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__thread");
2116 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2117 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2119 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2120 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "const");
2123 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2124 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2126 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2127 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "volatile");
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, "void");
2137 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2138 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2140 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2141 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "char");
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, "_Bool");
2152 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2153 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2155 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2156 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Complex");
2159 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2160 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2162 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2163 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Imaginary");
2166 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2167 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2169 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2170 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "restrict");
2173 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2174 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2176 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2177 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "short");
2180 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2181 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2183 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2184 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "int");
2187 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2188 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2190 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2191 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "uint" : "unsigned int");
2194 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2195 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2197 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2198 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "int64" : "long long");
2201 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2202 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2204 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2205 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_list");
2208 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2209 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2211 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2212 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "long");
2215 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2216 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2218 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2219 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "float");
2222 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2223 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2225 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2226 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "double");
2229 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2230 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2232 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2233 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "signed");
2236 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2237 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2239 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2240 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "unsigned");
2243 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2244 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2246 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2247 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
2250 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2251 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2253 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2254 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "any_object");
2257 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2258 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2260 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2261 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class");
2264 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2265 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2267 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2268 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "thisclass");
2273 if(spec->__anon1.__anon1.extDecl)
2274 OutputExtDecl(spec->__anon1.__anon1.extDecl, f);
2277 if(spec->__anon1.__anon1.name && !strcmp(spec->__anon1.__anon1.name, "class"))
2279 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2280 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2282 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2283 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
2287 struct Symbol * symbol = spec->__anon1.__anon1.symbol;
2289 if(!symbol && spec->__anon1.__anon1.name)
2290 symbol = FindClass(spec->__anon1.__anon1.name);
2293 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2294 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2296 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2297 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, symbol->string ? symbol->string : "(null)");
2299 else if(spec->__anon1.__anon1.name)
2300 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2301 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2303 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2304 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, spec->__anon1.__anon1.name);
2309 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2310 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2312 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2313 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "enum");
2314 if(spec->__anon1.__anon2.id)
2316 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2317 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2319 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2320 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2321 OutputIdentifier(spec->__anon1.__anon2.id, f);
2323 if(spec->__anon1.__anon2.list)
2325 struct Enumerator * enumerator;
2327 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2328 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2330 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2331 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2333 for(enumerator = (*spec->__anon1.__anon2.list).first; enumerator; enumerator = enumerator->next)
2335 OutputEnumerator(enumerator, f);
2336 if(enumerator->next)
2337 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2338 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2340 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2341 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2343 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2344 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2346 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2347 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
2355 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2356 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2358 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2359 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (spec->type == 3) ? "struct" : "union");
2360 if(spec->__anon1.__anon2.extDeclStruct)
2362 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2363 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2365 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2366 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2367 OutputExtDecl(spec->__anon1.__anon2.extDeclStruct, f);
2369 if(spec->__anon1.__anon2.id)
2371 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2372 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2374 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2375 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2376 OutputIdentifier(spec->__anon1.__anon2.id, f);
2378 if(spec->__anon1.__anon2.definitions)
2380 struct ClassDef * def;
2382 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2383 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2385 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2386 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2388 for(def = (*spec->__anon1.__anon2.definitions).first; def; def = def->next)
2390 OutputClassDef(def, f);
2392 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2393 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2395 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2396 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "} ecere_gcc_struct");
2401 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2402 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2404 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2405 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__typeof(");
2406 OutputExpression(spec->__anon1.expression, f);
2407 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2408 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2410 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2411 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2414 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2415 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2417 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2418 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "subclass(");
2419 OutputSpecifier(spec->__anon1._class, f, 0);
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 OutputIdentifier(spec->__anon1.templateParameter->identifier, f);
2432 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
2434 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2435 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2437 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2438 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class ");
2439 OutputSpecifier(_class->_class, f, 0);
2440 if(_class->baseSpecs)
2442 struct Specifier * spec;
2444 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2445 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2447 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2448 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2449 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
2451 OutputSpecifier(spec, f, 0);
2454 if(_class->definitions)
2456 struct ClassDef * def;
2458 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2459 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2461 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2462 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2464 for(def = (*_class->definitions).first; def; def = def->next)
2466 OutputClassDef(def, f);
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, "}\n");
2476 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2477 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2479 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2480 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2483 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f);
2485 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
2488 OutputSpecifier(inst->_class, f, 0);
2491 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2492 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2494 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2495 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2496 OutputExpression(inst->exp, f);
2498 if(inst->members && (*inst->members).count > 1)
2500 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2501 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2503 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2504 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2507 else if(inst->members)
2508 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2509 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2511 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2512 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " { ");
2514 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2515 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2517 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2518 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{");
2521 struct MembersInit * init;
2523 for(init = (*inst->members).first; init; init = init->next)
2525 OutputMembersInit(init, f);
2526 if(init->type == 0 && init->next)
2528 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2529 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2531 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2532 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
2538 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2539 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2541 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2542 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2553 struct Specifier * spec;
2559 strcpy(origName, outputFile);
2560 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
2562 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
2563 if(inCompiler && outputLineNumbers && decl->loc.start.line)
2565 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
2572 struct InitDeclarator * d;
2574 if(decl->__anon1.__anon1.specifiers)
2576 unsigned int inTypeDef = 0;
2578 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
2580 if(spec->type == 0 && spec->__anon1.specifier == TYPEDEF)
2582 OutputSpecifier(spec, f, inTypeDef && !spec->next);
2584 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2585 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2587 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2588 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2591 if(decl->__anon1.__anon1.declarators && (*decl->__anon1.__anon1.declarators).first)
2593 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2594 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2596 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2597 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2598 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
2600 OutputInitDeclarator(d, f);
2602 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2603 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2605 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2606 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2613 if(decl->__anon1.__anon1.specifiers)
2615 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
2617 OutputSpecifier(spec, f, 0);
2619 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2620 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2622 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2623 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2626 if(decl->__anon1.__anon1.declarators)
2628 struct Declarator * d;
2630 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2631 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2633 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2634 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2635 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
2637 OutputDeclarator(d, 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, ", ");
2646 if(decl->extStorage)
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 OutputSpecifier(decl->extStorage, f, 0);
2658 if(decl->__anon1.inst)
2660 OutputInstance(decl->__anon1.inst, f);
2666 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2667 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2669 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2670 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
2672 if(inCompiler && outputLineNumbers && decl->loc.start.line)
2674 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
2679 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
2681 char name[274] = "";
2682 char origName[274] = "";
2686 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
2687 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
2688 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
2690 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
2692 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
2698 OutputDeclaration(stmt->__anon1.decl, f);
2701 OutputIdentifier(stmt->__anon1.labeled.id, f);
2702 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2703 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2705 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2706 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2708 if(stmt->__anon1.labeled.stmt)
2710 if(stmt->__anon1.labeled.stmt->type == 14)
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, "; ");
2716 OutputStatement(stmt->__anon1.labeled.stmt, f);
2720 if(stmt->__anon1.caseStmt.exp)
2722 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2723 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2725 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2726 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "case ");
2727 OutputExpression(stmt->__anon1.caseStmt.exp, f);
2728 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2729 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2731 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2732 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2737 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2738 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2740 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2741 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
2744 if(stmt->__anon1.caseStmt.stmt)
2746 if(stmt->__anon1.caseStmt.stmt->type == 14)
2747 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2748 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2750 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2751 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2752 OutputStatement(stmt->__anon1.caseStmt.stmt, f);
2757 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2758 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2760 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2761 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
2763 if(stmt->__anon1.compound.declarations)
2765 struct Declaration * decl;
2767 for(decl = (*stmt->__anon1.compound.declarations).first; decl; decl = decl->next)
2769 OutputDeclaration(decl, f);
2772 if(stmt->__anon1.compound.statements)
2774 struct Statement * statement;
2776 if(stmt->__anon1.compound.declarations)
2778 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2779 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2781 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2782 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2785 for(statement = (*stmt->__anon1.compound.statements).first; statement; statement = statement->next)
2787 OutputStatement(statement, f);
2788 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2789 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2791 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2792 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2796 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2798 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2801 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2802 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2804 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2805 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2810 if(stmt->__anon1.expressions)
2812 struct Expression * exp;
2814 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
2816 OutputExpression(exp, f);
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, ", ");
2825 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2826 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2828 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2829 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2834 struct Expression * exp;
2836 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2837 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2839 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2840 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "if(");
2841 for(exp = (*stmt->__anon1.ifStmt.exp).first; exp; exp = exp->next)
2843 OutputExpression(exp, f);
2845 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2846 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2848 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2849 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2851 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2852 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2854 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2855 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2857 if(stmt->__anon1.ifStmt.stmt)
2858 OutputStatement(stmt->__anon1.ifStmt.stmt, f);
2859 if(stmt->__anon1.ifStmt.elseStmt)
2861 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2862 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2864 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2865 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
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, "else");
2872 if(stmt->__anon1.ifStmt.elseStmt->type != 4)
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, "\n");
2882 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2883 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2885 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2886 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2887 OutputStatement(stmt->__anon1.ifStmt.elseStmt, f);
2893 struct Expression * exp;
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, "switch(");
2900 if(stmt->__anon1.switchStmt.exp)
2902 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2904 OutputExpression(exp, f);
2906 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2907 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2909 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2910 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2913 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2914 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2916 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2917 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2919 OutputStatement(stmt->__anon1.switchStmt.stmt, f);
2924 struct Expression * exp;
2926 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2927 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2929 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2930 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2931 if(stmt->__anon1.switchStmt.exp)
2933 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2935 OutputExpression(exp, f);
2937 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2938 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2940 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2941 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2944 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2945 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2947 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2948 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2950 OutputStatement(stmt->__anon1.whileStmt.stmt, f);
2955 struct Expression * exp;
2957 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2958 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2960 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2961 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "do\n");
2963 OutputStatement(stmt->__anon1.whileStmt.stmt, f);
2964 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2965 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2967 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2968 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2969 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2971 OutputExpression(exp, f);
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, ", ");
2979 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2980 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2982 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2983 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");");
2988 struct Expression * exp;
2990 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2991 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2993 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2994 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "for(");
2995 OutputStatement(stmt->__anon1.forStmt.init, f);
2996 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2997 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2999 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3000 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3001 OutputStatement(stmt->__anon1.forStmt.check, f);
3002 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3003 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3005 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3006 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3007 if(stmt->__anon1.forStmt.increment)
3009 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
3011 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
3014 for(exp = (*stmt->__anon1.forStmt.increment).first; exp; exp = exp->next)
3016 OutputExpression(exp, f);
3018 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3019 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3021 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3022 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3025 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3026 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3028 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3029 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
3031 OutputStatement(stmt->__anon1.forStmt.stmt, f);
3036 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3037 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3039 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3040 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "goto ");
3041 OutputIdentifier(stmt->__anon1.gotoStmt.id, f);
3042 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3043 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3045 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3046 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3050 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3051 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3053 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3054 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "continue;");
3057 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3058 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3060 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3061 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "break;");
3065 struct Expression * exp;
3067 if(inCompiler && memoryGuard)
3069 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
3070 struct Type * returnType = exp ? (exp->destType ? exp->destType : exp->expType) : (((void *)0));
3072 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
3073 if(returnType && returnType->kind != 0)
3075 char string[1024] = "";
3076 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
3077 struct Declarator * decl;
3078 struct TypeName * typeName;
3080 if(returnType->kind == 20)
3082 if(returnType->__anon1.templateParameter->dataTypeString)
3083 decl = SpecDeclFromString(returnType->__anon1.templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3084 else if(returnType->__anon1.templateParameter->__anon1.dataType)
3086 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
3087 specs = CopyList(returnType->__anon1.templateParameter->__anon1.dataType->specifiers, (void *)(CopySpecifier));
3088 decl = PlugDeclarator(returnType->__anon1.templateParameter->__anon1.dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3092 ListAdd(specs, MkSpecifierName("uint64"));
3093 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
3098 if(returnType->passAsTemplate)
3099 strcpy(string, "uint64");
3101 PrintType(returnType, string, returnType->kind == 18 ? 1 : 0, 1);
3102 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3104 typeName = MkTypeName(specs, decl);
3105 InstDeclPassTypeName(typeName, 0);
3106 OutputTypeName(typeName, f, 0);
3107 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
3108 FreeTypeName(typeName);
3112 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3113 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3115 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3116 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "return ");
3119 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
3121 if(exp && exp->expType && exp->expType->kind != 0)
3122 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
3124 if(stmt->__anon1.expressions)
3126 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
3128 OutputExpression(exp, f);
3130 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3131 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3133 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3134 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3137 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3138 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3140 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3141 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3142 if(inCompiler && memoryGuard)
3144 struct Expression * exp = stmt->__anon1.expressions ? (struct Expression *)(*stmt->__anon1.expressions).last : (((void *)0));
3146 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
3147 if(exp && exp->expType && exp->expType->kind != 0)
3148 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
3150 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
3151 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
3157 struct AsmField * field;
3159 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3160 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3162 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3163 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__asm__ ");
3164 if(stmt->__anon1.asmStmt.spec)
3165 OutputSpecifier(stmt->__anon1.asmStmt.spec, f, 0);
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, "(");
3171 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3172 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3174 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3175 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, stmt->__anon1.asmStmt.statements);
3176 if(stmt->__anon1.asmStmt.inputFields || stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
3178 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3179 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3181 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3182 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
3183 if(stmt->__anon1.asmStmt.inputFields)
3185 for(field = (*stmt->__anon1.asmStmt.inputFields).first; field; field = field->next)
3188 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3189 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3191 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3192 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
3193 OutputAsmField(field, f);
3197 if(stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
3199 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3200 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3202 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3203 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
3204 if(stmt->__anon1.asmStmt.outputFields)
3206 for(field = (*stmt->__anon1.asmStmt.outputFields).first; field; field = field->next)
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, ",");
3214 OutputAsmField(field, f);
3218 if(stmt->__anon1.asmStmt.clobberedFields)
3220 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3221 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3223 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3224 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
3225 for(field = (*stmt->__anon1.asmStmt.clobberedFields).first; field; field = field->next)
3228 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3229 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3231 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3232 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
3233 OutputAsmField(field, f);
3236 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3237 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3239 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3240 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");\n");
3245 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
3247 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3252 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
3254 struct External * external;
3257 for(external = ast->first; external; external = external->next)
3259 switch(external->type)
3262 OutputFunction(external->__anon1.function, f);
3263 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3264 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3266 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3267 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3271 if(external->__anon1.declaration)
3272 OutputDeclaration(external->__anon1.declaration, f);
3273 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3274 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3276 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3277 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3281 OutputClass(external->__anon1._class, f);
3282 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3283 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3285 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3286 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3293 void OutputExternal(struct External * external, struct __ecereNameSpace__ecere__com__Instance * f)
3295 switch(external->type)
3298 OutputFunction(external->__anon1.function, f);
3299 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3300 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3302 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3303 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3307 if(external->__anon1.declaration)
3308 OutputDeclaration(external->__anon1.declaration, f);
3309 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3310 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3312 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3313 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3317 OutputClass(external->__anon1._class, f);
3318 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3319 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3321 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3322 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3328 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f)
3333 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3334 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3336 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3337 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class(");
3338 if(exp->__anon1._classExp.specifiers)
3340 struct Specifier * spec;
3342 for(spec = (*exp->__anon1._classExp.specifiers).first; spec; spec = spec->next)
3344 OutputSpecifier(spec, f, 0);
3346 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3347 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3349 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3350 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3352 if(exp->__anon1._classExp.decl)
3354 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3355 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3357 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3358 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3359 OutputDeclarator(exp->__anon1._classExp.decl, f);
3361 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3362 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3364 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3365 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3369 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3370 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3372 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3373 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
3374 OutputStatement(exp->__anon1.compound, f);
3375 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3376 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3378 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3379 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3380 if(inCompiler && outputLineNumbers && exp->loc.end.line)
3382 char name[274] = "";
3384 GetSourceName(name, exp->loc.end.included ? GetIncludeFileFromID(exp->loc.end.included) : (((void *)0)));
3385 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", exp->loc.end.line, name);
3390 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3391 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3393 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3394 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new ");
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 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
3401 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3402 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3404 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3405 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3406 OutputExpression(exp->__anon1._renew.size, f);
3407 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3408 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3410 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3411 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3414 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3415 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3417 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3418 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new0 ");
3419 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3420 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3422 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3423 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3424 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
3425 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3426 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3428 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3429 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3430 OutputExpression(exp->__anon1._renew.size, 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, "]");
3438 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3439 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3441 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3442 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew ");
3443 OutputExpression(exp->__anon1._renew.exp, f);
3444 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3445 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3447 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3448 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3449 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
3450 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3451 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3453 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3454 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3455 OutputExpression(exp->__anon1._renew.size, f);
3456 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3457 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3459 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3460 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3463 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3464 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3466 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3467 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew0 ");
3468 OutputExpression(exp->__anon1._renew.exp, f);
3469 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3470 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3472 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3473 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3474 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
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, "[");
3480 OutputExpression(exp->__anon1._renew.size, f);
3481 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3482 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3484 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3485 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3488 if(exp->__anon1.__anon1.identifier)
3489 OutputIdentifier(exp->__anon1.__anon1.identifier, f);
3492 if(exp->__anon1.instance)
3493 OutputInstance(exp->__anon1.instance, f);
3496 if(exp->__anon1.__anon1.constant)
3497 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3498 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3500 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3501 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->__anon1.__anon1.constant);
3504 if(exp->__anon1.__anon2.string)
3505 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3506 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3508 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3509 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->__anon1.__anon2.string);
3512 if(exp->__anon1.op.exp1)
3514 OutputExpression(exp->__anon1.op.exp1, f);
3515 if(exp->__anon1.op.exp2)
3516 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3517 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3519 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3520 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3522 OutputOperator(exp->__anon1.op.op, f);
3523 if(exp->__anon1.op.exp2)
3525 if(exp->__anon1.op.exp1 || (exp->__anon1.op.exp2->type == 4 && !exp->__anon1.op.exp2->__anon1.op.exp1 && exp->__anon1.op.exp2->__anon1.op.op == exp->__anon1.op.op))
3526 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3527 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3529 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3530 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3531 OutputExpression(exp->__anon1.op.exp2, f);
3537 struct Expression * expression;
3540 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3541 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3543 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3544 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
3545 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3546 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3548 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3549 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3550 if(exp->__anon1.list)
3552 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
3554 OutputExpression(expression, f);
3555 if(expression->next)
3556 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3557 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3559 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3560 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3563 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3564 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3566 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3567 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3572 struct Expression * expression;
3574 if(exp->__anon1.index.exp)
3575 OutputExpression(exp->__anon1.index.exp, f);
3576 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3577 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3579 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3580 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3581 if(exp->__anon1.index.index)
3582 for(expression = (*exp->__anon1.index.index).first; expression; expression = expression->next)
3584 OutputExpression(expression, f);
3585 if(expression->next)
3586 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3587 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3589 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3590 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3592 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3593 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3595 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3596 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3601 OutputExpression(exp->__anon1.call.exp, f);
3602 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3603 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3605 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3606 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3607 if(exp->__anon1.call.arguments)
3609 struct Expression * expression;
3611 for(expression = (*exp->__anon1.call.arguments).first; expression; expression = expression->next)
3613 OutputExpression(expression, f);
3614 if(expression->next)
3615 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3616 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3618 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3619 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
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, ")");
3630 if(exp->__anon1.member.exp)
3631 OutputExpression(exp->__anon1.member.exp, f);
3632 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3633 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3635 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3636 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3637 if(exp->__anon1.member.member)
3638 OutputIdentifier(exp->__anon1.member.member, f);
3641 OutputExpression(exp->__anon1.member.exp, f);
3642 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3643 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3645 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3646 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "->");
3647 OutputIdentifier(exp->__anon1.member.member, f);
3650 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3651 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3653 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3654 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof(");
3655 OutputTypeName(exp->__anon1.typeName, f, 0);
3656 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3657 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3659 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3660 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3663 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3664 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3666 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3667 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__alignof__(");
3668 OutputTypeName(exp->__anon1.typeName, f, 0);
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, ")");
3676 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3677 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3679 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3680 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_offsetof(");
3681 if(exp->__anon1.typeName)
3682 OutputTypeName(exp->__anon1.typeName, f, 0);
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, ", ");
3688 if(exp->__anon1.__anon1.identifier)
3689 OutputIdentifier(exp->__anon1.__anon1.identifier, f);
3690 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3691 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3693 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3694 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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, "__extension__ (");
3702 if(exp->__anon1.initializer.typeName)
3703 OutputTypeName(exp->__anon1.initializer.typeName, f, 0);
3704 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3705 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3707 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3708 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3709 if(exp->__anon1.initializer.initializer)
3710 OutputInitializer(exp->__anon1.initializer.initializer, f);
3713 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3714 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3716 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3717 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3718 OutputTypeName(exp->__anon1.cast.typeName, f, 0);
3719 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3720 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3722 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3723 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3724 if(exp->__anon1.cast.exp)
3725 OutputExpression(exp->__anon1.cast.exp, f);
3728 OutputExpression(exp->__anon1.cond.cond, f);
3729 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3730 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3732 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3733 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ? ");
3735 struct Expression * expression;
3737 for(expression = (*exp->__anon1.cond.exp).first; expression; expression = expression->next)
3739 OutputExpression(expression, f);
3740 if(expression->next)
3741 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3742 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3744 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3745 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3748 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3749 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3751 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3752 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
3753 if(exp->__anon1.cond.elseExp)
3754 OutputExpression(exp->__anon1.cond.elseExp, f);
3757 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3758 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3760 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3761 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_arg(");
3762 OutputExpression(exp->__anon1.vaArg.exp, f);
3763 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3764 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3766 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3767 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3768 OutputTypeName(exp->__anon1.vaArg.typeName, f, 0);
3769 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3770 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3772 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3773 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3776 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3777 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3779 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3780 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3781 if(exp->__anon1.list)
3783 struct Expression * expression;
3785 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
3787 OutputExpression(expression, f);
3788 if(expression->next)
3789 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3790 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3792 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3793 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3796 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3797 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3799 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3800 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3805 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
3807 struct FunctionDefinition * oldFunc = curFunction;
3810 if(func->specifiers)
3812 struct Specifier * spec;
3814 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3816 OutputSpecifier(spec, f, 0);
3818 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3819 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3821 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3822 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3824 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3825 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3827 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3828 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3830 if(func->declarator)
3831 OutputDeclarator(func->declarator, f);
3832 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3833 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3835 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3836 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3838 if(func->declarations)
3840 struct Declaration * decl;
3842 for(decl = (*func->declarations).first; decl; decl = decl->next)
3844 OutputDeclaration(decl, f);
3846 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3847 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3849 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3850 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3855 if(inCompiler && memoryGuard)
3857 char name[1024] = "";
3858 struct Identifier * id = GetDeclId(func->declarator);
3860 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
3861 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
3862 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
3865 OutputStatement(func->body, f);
3866 if(inCompiler && memoryGuard)
3868 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
3869 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
3872 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3873 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3875 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3876 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3879 curFunction = oldFunc;
3882 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
3884 if(func->specifiers)
3886 struct Specifier * spec;
3888 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3890 OutputSpecifier(spec, f, 0);
3892 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__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_Puts])(f, " ");
3898 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__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_Puts])(f, " ");
3904 if(func->declarator)
3905 OutputDeclarator(func->declarator, f);
3906 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3907 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3909 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3910 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3912 if(func->declarations)
3914 struct Declaration * decl;
3916 for(decl = (*func->declarations).first; decl; decl = decl->next)
3918 OutputDeclaration(decl, f);
3920 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3921 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3923 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3924 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3929 OutputStatement(func->body, f);
3930 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3931 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3933 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3934 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3938 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3939 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3941 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3942 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3945 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3947 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
3949 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
3950 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
3951 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
3952 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
3953 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
3954 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExternal", "void OutputExternal(External external, ecere::sys::File f)", OutputExternal, module, 1);
3955 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
3958 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3964 struct MemberInit * member;
3966 if(init->__anon1.dataMembers)
3968 for(member = (*init->__anon1.dataMembers).first; member; member = member->next)
3970 OutputMemberInit(member, f);
3972 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3973 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3975 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3976 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3982 OutputClassFunction(init->__anon1.function, f);
3987 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
3992 if(def->__anon1.decl)
3994 OutputDeclaration(def->__anon1.decl, f);
3995 if(def->next && def->next->type != 2)
3997 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3998 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4000 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4001 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
4008 struct MemberInit * init;
4010 for(init = (*def->__anon1.defProperties).first; init; init = init->next)
4012 OutputMemberInit(init, f);
4014 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
4015 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4017 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4018 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
4020 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
4021 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4023 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4024 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n\n");
4029 OutputClassFunction(def->__anon1.function, f);
4030 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
4031 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
4033 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
4034 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");