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 #include <sys/types.h>
42 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
47 unsigned int memoryGuard = 0;
49 extern unsigned int inCompiler;
51 extern unsigned int outputLineNumbers;
53 extern const char * sourceFile;
55 extern const char * outputFile;
57 struct __ecereNameSpace__ecere__sys__OldList
64 } __attribute__ ((gcc_struct));
66 struct __ecereNameSpace__ecere__sys__BTNode;
68 struct __ecereNameSpace__ecere__com__DataValue
83 } __attribute__ ((gcc_struct)) __anon1;
84 } __attribute__ ((gcc_struct));
86 struct __ecereNameSpace__ecere__com__SerialBuffer
88 unsigned char * _buffer;
92 } __attribute__ ((gcc_struct));
94 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
96 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
98 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
100 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
102 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
108 struct PropertyWatch;
110 struct TemplateArgument;
124 } __attribute__ ((gcc_struct));
126 extern int strcmp(const char * , const char * );
128 extern char * GetIncludeFileFromID(int id);
130 extern char * strchr(const char * , int);
132 extern char * __ecereNameSpace__ecere__sys__StripLastDirectory(const char * string, char * output);
134 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, const char * addedPath);
136 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
138 extern char * strcpy(char * , const char * );
144 struct __ecereNameSpace__ecere__com__LinkList
149 } __attribute__ ((gcc_struct));
151 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(const char * string, char * output);
153 struct __ecereNameSpace__ecere__com__GlobalFunction;
155 void SetMemoryGuard(unsigned int b)
160 unsigned int GetMemoryGuard()
165 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
167 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
169 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
173 struct CodePosition start;
174 struct CodePosition end;
175 } __attribute__ ((gcc_struct));
177 static void GetSourceName(char * name, const char * src)
182 if(!strchr(src, '/') && !strchr(src, '\\'))
183 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
184 __ecereNameSpace__ecere__sys__PathCat(name, src);
187 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
188 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
191 extern struct Location yylloc;
197 struct __ecereNameSpace__ecere__sys__OldList * attribs;
198 } __attribute__ ((gcc_struct));
207 struct Attrib * attr;
208 } __attribute__ ((gcc_struct)) __anon1;
209 } __attribute__ ((gcc_struct));
213 extern void ProcessExpressionType(struct Expression * exp);
215 extern void ComputeExpression(struct Expression * exp);
217 struct FunctionDefinition;
219 static struct FunctionDefinition * curFunction;
221 struct __ecereNameSpace__ecere__com__Class;
223 struct __ecereNameSpace__ecere__com__Instance
226 struct __ecereNameSpace__ecere__com__Class * _class;
228 } __attribute__ ((gcc_struct));
230 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
232 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
234 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
236 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
238 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
240 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
242 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
244 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, const char * format, ...);
246 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
248 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
250 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
252 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
254 struct __ecereNameSpace__ecere__com__Property;
256 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
258 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);
260 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
262 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
266 extern struct Identifier * MkIdentifier(const char * string);
270 extern struct Specifier * CopySpecifier(struct Specifier * spec);
272 extern struct Specifier * MkSpecifierName(const char * name);
276 extern struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
278 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
280 struct TemplateDatatype
282 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
283 struct Declarator * decl;
284 } __attribute__ ((gcc_struct));
286 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
288 extern struct Identifier * GetDeclId(struct Declarator * decl);
292 struct __ecereNameSpace__ecere__com__Property
294 struct __ecereNameSpace__ecere__com__Property * prev;
295 struct __ecereNameSpace__ecere__com__Property * next;
297 unsigned int isProperty;
300 struct __ecereNameSpace__ecere__com__Class * _class;
301 const char * dataTypeString;
302 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
303 struct Type * dataType;
304 void (* Set)(void * , int);
305 int (* Get)(void * );
306 unsigned int (* IsSet)(void * );
310 unsigned int conversion;
311 unsigned int watcherOffset;
312 const char * category;
313 unsigned int compiled;
314 unsigned int selfWatchable;
315 unsigned int isWatchable;
316 } __attribute__ ((gcc_struct));
318 extern void PrintType(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
324 struct TypeName * prev;
325 struct TypeName * next;
327 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
328 struct Declarator * declarator;
330 struct Expression * bitCount;
331 } __attribute__ ((gcc_struct));
333 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
335 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
337 extern void FreeTypeName(struct TypeName * typeName);
343 struct Identifier * prev;
344 struct Identifier * next;
346 struct Symbol * classSym;
347 struct Specifier * _class;
349 struct Identifier * badID;
350 } __attribute__ ((gcc_struct));
352 extern struct Symbol * FindClass(const char * name);
354 struct __ecereNameSpace__ecere__sys__BinaryTree;
356 struct __ecereNameSpace__ecere__sys__BinaryTree
358 struct __ecereNameSpace__ecere__sys__BTNode * root;
360 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
361 void (* FreeKey)(void * key);
362 } __attribute__ ((gcc_struct));
368 struct Pointer * prev;
369 struct Pointer * next;
371 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
372 struct Pointer * pointer;
373 } __attribute__ ((gcc_struct));
377 struct Declarator * prev;
378 struct Declarator * next;
381 struct Symbol * symbol;
382 struct Declarator * declarator;
385 struct Identifier * identifier;
388 struct Expression * exp;
389 struct Expression * posExp;
390 struct Attrib * attrib;
391 } __attribute__ ((gcc_struct)) structDecl;
394 struct Expression * exp;
395 struct Specifier * enumClass;
396 } __attribute__ ((gcc_struct)) array;
399 struct __ecereNameSpace__ecere__sys__OldList * parameters;
400 } __attribute__ ((gcc_struct)) function;
403 struct Pointer * pointer;
404 } __attribute__ ((gcc_struct)) pointer;
407 struct ExtDecl * extended;
408 } __attribute__ ((gcc_struct)) extended;
409 } __attribute__ ((gcc_struct)) __anon1;
410 } __attribute__ ((gcc_struct));
420 struct Attribute * prev;
421 struct Attribute * next;
424 struct Expression * exp;
425 } __attribute__ ((gcc_struct));
427 struct __ecereNameSpace__ecere__com__Module;
429 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);
431 struct __ecereNameSpace__ecere__com__DataMember;
433 struct __ecereNameSpace__ecere__com__DataMember
435 struct __ecereNameSpace__ecere__com__DataMember * prev;
436 struct __ecereNameSpace__ecere__com__DataMember * next;
438 unsigned int isProperty;
441 struct __ecereNameSpace__ecere__com__Class * _class;
442 const char * dataTypeString;
443 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
444 struct Type * dataType;
448 struct __ecereNameSpace__ecere__sys__OldList members;
449 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
451 short structAlignment;
452 short pointerAlignment;
453 } __attribute__ ((gcc_struct));
459 struct AsmField * prev;
460 struct AsmField * next;
463 struct Expression * expression;
464 struct Identifier * symbolic;
465 } __attribute__ ((gcc_struct));
471 struct Enumerator * prev;
472 struct Enumerator * next;
474 struct Identifier * id;
475 struct Expression * exp;
476 } __attribute__ ((gcc_struct));
484 struct Initializer * prev;
485 struct Initializer * next;
490 struct Expression * exp;
491 struct __ecereNameSpace__ecere__sys__OldList * list;
492 } __attribute__ ((gcc_struct)) __anon1;
493 unsigned int isConstant;
494 struct Identifier * id;
495 } __attribute__ ((gcc_struct));
499 struct MemberInit * prev;
500 struct MemberInit * next;
502 struct Location realLoc;
503 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
504 struct Initializer * initializer;
506 unsigned int variable;
507 unsigned int takeOutExp;
508 } __attribute__ ((gcc_struct));
512 struct FunctionDefinition
514 struct FunctionDefinition * prev;
515 struct FunctionDefinition * next;
517 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
518 struct Declarator * declarator;
519 struct __ecereNameSpace__ecere__sys__OldList * declarations;
520 struct Statement * body;
521 struct __ecereNameSpace__ecere__com__Class * _class;
522 struct __ecereNameSpace__ecere__sys__OldList attached;
525 struct Symbol * propSet;
527 unsigned int propertyNoThis;
528 } __attribute__ ((gcc_struct));
530 struct __ecereNameSpace__ecere__com__Method;
532 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
538 const char * dataTypeString;
539 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
540 } __attribute__ ((gcc_struct)) __anon1;
541 struct __ecereNameSpace__ecere__com__DataValue expression;
544 const char * memberString;
547 struct __ecereNameSpace__ecere__com__DataMember * member;
548 struct __ecereNameSpace__ecere__com__Property * prop;
549 struct __ecereNameSpace__ecere__com__Method * method;
550 } __attribute__ ((gcc_struct)) __anon1;
551 } __attribute__ ((gcc_struct)) __anon2;
552 } __attribute__ ((gcc_struct)) __anon1;
553 } __attribute__ ((gcc_struct));
555 struct __ecereNameSpace__ecere__com__Method
558 struct __ecereNameSpace__ecere__com__Method * parent;
559 struct __ecereNameSpace__ecere__com__Method * left;
560 struct __ecereNameSpace__ecere__com__Method * right;
565 struct __ecereNameSpace__ecere__com__Class * _class;
567 const char * dataTypeString;
568 struct Type * dataType;
570 } __attribute__ ((gcc_struct));
572 struct TemplateParameter;
576 struct Specifier * prev;
577 struct Specifier * next;
585 struct ExtDecl * extDecl;
587 struct Symbol * symbol;
588 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
589 } __attribute__ ((gcc_struct)) __anon1;
592 struct Identifier * id;
593 struct __ecereNameSpace__ecere__sys__OldList * list;
594 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
595 struct __ecereNameSpace__ecere__sys__OldList * definitions;
596 unsigned int addNameSpace;
597 struct Context * ctx;
598 struct ExtDecl * extDeclStruct;
599 } __attribute__ ((gcc_struct)) __anon2;
600 struct Expression * expression;
601 struct Specifier * _class;
602 struct TemplateParameter * templateParameter;
603 } __attribute__ ((gcc_struct)) __anon1;
604 } __attribute__ ((gcc_struct));
606 struct TemplateParameter
608 struct TemplateParameter * prev;
609 struct TemplateParameter * next;
612 struct Identifier * identifier;
615 struct TemplateDatatype * dataType;
617 } __attribute__ ((gcc_struct)) __anon1;
618 struct TemplateArgument * defaultArgument;
619 const char * dataTypeString;
620 struct Type * baseType;
621 } __attribute__ ((gcc_struct));
630 struct Symbol * _class;
633 struct __ecereNameSpace__ecere__sys__OldList members;
635 } __attribute__ ((gcc_struct)) __anon1;
638 struct Type * returnType;
639 struct __ecereNameSpace__ecere__sys__OldList params;
640 struct Symbol * thisClass;
641 unsigned int staticMethod;
642 struct TemplateParameter * thisClassTemplate;
643 } __attribute__ ((gcc_struct)) __anon2;
646 struct __ecereNameSpace__ecere__com__Method * method;
647 struct __ecereNameSpace__ecere__com__Class * methodClass;
648 struct __ecereNameSpace__ecere__com__Class * usedClass;
649 } __attribute__ ((gcc_struct)) __anon3;
652 struct Type * arrayType;
654 struct Expression * arraySizeExp;
655 unsigned int freeExp;
656 struct Symbol * enumClass;
657 } __attribute__ ((gcc_struct)) __anon4;
659 struct TemplateParameter * templateParameter;
660 } __attribute__ ((gcc_struct)) __anon1;
670 unsigned int isSigned : 1;
671 unsigned int constant : 1;
672 unsigned int truth : 1;
673 unsigned int byReference : 1;
674 unsigned int extraParam : 1;
675 unsigned int directClassAccess : 1;
676 unsigned int computing : 1;
677 unsigned int keepCast : 1;
678 unsigned int passAsTemplate : 1;
679 unsigned int dllExport : 1;
680 unsigned int attrStdcall : 1;
681 unsigned int declaredWithStruct : 1;
682 unsigned int typedByReference : 1;
683 unsigned int casted : 1;
684 unsigned int pointerAlignment : 1;
685 } __attribute__ ((gcc_struct));
691 struct Statement * prev;
692 struct Statement * next;
697 struct __ecereNameSpace__ecere__sys__OldList * expressions;
700 struct Identifier * id;
701 struct Statement * stmt;
702 } __attribute__ ((gcc_struct)) labeled;
705 struct Expression * exp;
706 struct Statement * stmt;
707 } __attribute__ ((gcc_struct)) caseStmt;
710 struct __ecereNameSpace__ecere__sys__OldList * declarations;
711 struct __ecereNameSpace__ecere__sys__OldList * statements;
712 struct Context * context;
713 unsigned int isSwitch;
714 } __attribute__ ((gcc_struct)) compound;
717 struct __ecereNameSpace__ecere__sys__OldList * exp;
718 struct Statement * stmt;
719 struct Statement * elseStmt;
720 } __attribute__ ((gcc_struct)) ifStmt;
723 struct __ecereNameSpace__ecere__sys__OldList * exp;
724 struct Statement * stmt;
725 } __attribute__ ((gcc_struct)) switchStmt;
728 struct __ecereNameSpace__ecere__sys__OldList * exp;
729 struct Statement * stmt;
730 } __attribute__ ((gcc_struct)) whileStmt;
733 struct __ecereNameSpace__ecere__sys__OldList * exp;
734 struct Statement * stmt;
735 } __attribute__ ((gcc_struct)) doWhile;
738 struct Statement * init;
739 struct Statement * check;
740 struct __ecereNameSpace__ecere__sys__OldList * increment;
741 struct Statement * stmt;
742 } __attribute__ ((gcc_struct)) forStmt;
745 struct Identifier * id;
746 } __attribute__ ((gcc_struct)) gotoStmt;
749 struct Specifier * spec;
751 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
752 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
753 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
754 } __attribute__ ((gcc_struct)) asmStmt;
757 struct Expression * watcher;
758 struct Expression * object;
759 struct __ecereNameSpace__ecere__sys__OldList * watches;
760 } __attribute__ ((gcc_struct)) _watch;
763 struct Identifier * id;
764 struct __ecereNameSpace__ecere__sys__OldList * exp;
765 struct __ecereNameSpace__ecere__sys__OldList * filter;
766 struct Statement * stmt;
767 } __attribute__ ((gcc_struct)) forEachStmt;
768 struct Declaration * decl;
769 } __attribute__ ((gcc_struct)) __anon1;
770 } __attribute__ ((gcc_struct));
772 struct Instantiation;
776 struct Expression * prev;
777 struct Expression * next;
785 struct Identifier * identifier;
786 } __attribute__ ((gcc_struct)) __anon1;
787 struct Statement * compound;
788 struct Instantiation * instance;
792 unsigned int intlString;
793 unsigned int wideString;
794 } __attribute__ ((gcc_struct)) __anon2;
795 struct __ecereNameSpace__ecere__sys__OldList * list;
798 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
799 struct Declarator * decl;
800 } __attribute__ ((gcc_struct)) _classExp;
803 struct Identifier * id;
804 } __attribute__ ((gcc_struct)) classData;
807 struct Expression * exp;
808 struct __ecereNameSpace__ecere__sys__OldList * arguments;
809 struct Location argLoc;
810 } __attribute__ ((gcc_struct)) call;
813 struct Expression * exp;
814 struct __ecereNameSpace__ecere__sys__OldList * index;
815 } __attribute__ ((gcc_struct)) index;
818 struct Expression * exp;
819 struct Identifier * member;
821 unsigned int thisPtr;
822 } __attribute__ ((gcc_struct)) member;
826 struct Expression * exp1;
827 struct Expression * exp2;
828 } __attribute__ ((gcc_struct)) op;
829 struct TypeName * typeName;
830 struct Specifier * _class;
833 struct TypeName * typeName;
834 struct Expression * exp;
835 } __attribute__ ((gcc_struct)) cast;
838 struct Expression * cond;
839 struct __ecereNameSpace__ecere__sys__OldList * exp;
840 struct Expression * elseExp;
841 } __attribute__ ((gcc_struct)) cond;
844 struct TypeName * typeName;
845 struct Expression * size;
846 } __attribute__ ((gcc_struct)) _new;
849 struct TypeName * typeName;
850 struct Expression * size;
851 struct Expression * exp;
852 } __attribute__ ((gcc_struct)) _renew;
856 struct Identifier * id;
857 } __attribute__ ((gcc_struct)) db;
860 struct Expression * ds;
861 struct Expression * name;
862 } __attribute__ ((gcc_struct)) dbopen;
865 struct TypeName * typeName;
866 struct Initializer * initializer;
867 } __attribute__ ((gcc_struct)) initializer;
870 struct Expression * exp;
871 struct TypeName * typeName;
872 } __attribute__ ((gcc_struct)) vaArg;
873 } __attribute__ ((gcc_struct)) __anon1;
874 unsigned int debugValue;
875 struct __ecereNameSpace__ecere__com__DataValue val;
877 unsigned int hasAddress;
878 struct Type * expType;
879 struct Type * destType;
882 unsigned int byReference;
883 unsigned int isConstant;
884 unsigned int addedThis;
885 unsigned int needCast;
886 unsigned int thisPtr;
887 unsigned int opDestType;
888 unsigned int needTemplateCast;
889 } __attribute__ ((gcc_struct));
893 struct Declaration * prev;
894 struct Declaration * next;
901 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
902 struct __ecereNameSpace__ecere__sys__OldList * declarators;
903 } __attribute__ ((gcc_struct)) __anon1;
904 struct Instantiation * inst;
907 struct Identifier * id;
908 struct Expression * exp;
909 } __attribute__ ((gcc_struct)) __anon2;
910 } __attribute__ ((gcc_struct)) __anon1;
911 struct Specifier * extStorage;
912 struct Symbol * symbol;
914 } __attribute__ ((gcc_struct));
918 struct Instantiation * prev;
919 struct Instantiation * next;
921 struct Specifier * _class;
922 struct Expression * exp;
923 struct __ecereNameSpace__ecere__sys__OldList * members;
924 struct Symbol * symbol;
925 unsigned int fullSet;
926 unsigned int isConstant;
927 unsigned char * data;
928 struct Location nameLoc;
929 struct Location insideLoc;
931 } __attribute__ ((gcc_struct));
933 struct ClassDefinition;
935 struct ClassDefinition
937 struct ClassDefinition * prev;
938 struct ClassDefinition * next;
940 struct Specifier * _class;
941 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
942 struct __ecereNameSpace__ecere__sys__OldList * definitions;
943 struct Symbol * symbol;
944 struct Location blockStart;
945 struct Location nameLoc;
947 unsigned int deleteWatchable;
948 } __attribute__ ((gcc_struct));
950 struct __ecereNameSpace__ecere__com__NameSpace;
952 struct __ecereNameSpace__ecere__com__NameSpace
955 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
956 struct __ecereNameSpace__ecere__com__NameSpace * left;
957 struct __ecereNameSpace__ecere__com__NameSpace * right;
959 struct __ecereNameSpace__ecere__com__NameSpace * parent;
960 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
961 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
962 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
963 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
964 } __attribute__ ((gcc_struct));
966 struct __ecereNameSpace__ecere__com__Class
968 struct __ecereNameSpace__ecere__com__Class * prev;
969 struct __ecereNameSpace__ecere__com__Class * next;
975 unsigned int (* Constructor)(void * );
976 void (* Destructor)(void * );
979 struct __ecereNameSpace__ecere__com__Class * base;
980 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
981 struct __ecereNameSpace__ecere__sys__BinaryTree members;
982 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
983 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
984 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
985 struct __ecereNameSpace__ecere__sys__OldList derivatives;
989 struct __ecereNameSpace__ecere__com__Instance * module;
990 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
991 const char * dataTypeString;
992 struct Type * dataType;
994 int defaultAlignment;
995 void (* Initialize)();
997 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
998 const char * designerClass;
999 unsigned int noExpansion;
1000 const char * defaultProperty;
1001 unsigned int comRedefinition;
1004 unsigned int internalDecl;
1006 unsigned int computeSize;
1007 short structAlignment;
1008 short pointerAlignment;
1009 int destructionWatchOffset;
1011 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
1012 int inheritanceAccess;
1013 const char * fullName;
1015 struct __ecereNameSpace__ecere__sys__OldList conversions;
1016 struct __ecereNameSpace__ecere__sys__OldList templateParams;
1017 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
1018 struct __ecereNameSpace__ecere__com__Class * templateClass;
1019 struct __ecereNameSpace__ecere__sys__OldList templatized;
1021 unsigned int isInstanceClass;
1022 unsigned int byValueSystemClass;
1023 } __attribute__ ((gcc_struct));
1025 struct __ecereNameSpace__ecere__com__Application
1028 const char * * argv;
1030 unsigned int isGUIApp;
1031 struct __ecereNameSpace__ecere__sys__OldList allModules;
1032 char * parsedCommand;
1033 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1034 } __attribute__ ((gcc_struct));
1036 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
1038 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
1040 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1042 struct __ecereNameSpace__ecere__com__Module
1044 struct __ecereNameSpace__ecere__com__Instance * application;
1045 struct __ecereNameSpace__ecere__sys__OldList classes;
1046 struct __ecereNameSpace__ecere__sys__OldList defines;
1047 struct __ecereNameSpace__ecere__sys__OldList functions;
1048 struct __ecereNameSpace__ecere__sys__OldList modules;
1049 struct __ecereNameSpace__ecere__com__Instance * prev;
1050 struct __ecereNameSpace__ecere__com__Instance * next;
1056 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1057 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1058 } __attribute__ ((gcc_struct));
1060 static void OutputIdentifier(struct Identifier * id, struct __ecereNameSpace__ecere__com__Instance * f)
1066 if(id->_class->type == 8)
1068 if(id->_class->__anon1.templateParameter && id->_class->__anon1.templateParameter->identifier && id->_class->__anon1.templateParameter->identifier->string)
1069 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1070 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1072 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1073 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->__anon1.templateParameter->identifier->string);
1077 if(id->_class->__anon1.__anon1.name)
1079 if(!strcmp(id->_class->__anon1.__anon1.name, "class"))
1080 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1081 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1083 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1084 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
1086 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1087 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1089 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1090 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->__anon1.__anon1.name);
1093 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1094 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1096 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1097 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "::");
1100 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1101 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1103 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1104 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (id && id->string) ? id->string : "(null identifier)");
1107 static void OutputOperator(int op, struct __ecereNameSpace__ecere__com__Instance * f)
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, "++");
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, "sizeof ");
1133 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1134 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1136 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1137 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<");
1140 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1141 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1143 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1144 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>");
1147 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1148 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1150 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1151 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<=");
1154 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1155 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1157 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1158 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">=");
1161 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1162 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1164 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1165 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "==");
1168 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1169 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1171 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1172 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "!=");
1175 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1176 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1178 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1179 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&&");
1182 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1183 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1185 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1186 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "||");
1189 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1190 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1192 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1193 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*=");
1196 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1197 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1199 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1200 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "/=");
1203 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1204 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1206 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1207 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "%=");
1210 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1211 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1213 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1214 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "+=");
1217 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1218 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1220 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1221 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "-=");
1224 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1225 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1227 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1228 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<=");
1231 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1232 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1234 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1235 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>=");
1238 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1239 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1241 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1242 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&=");
1245 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1246 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1248 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1249 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "^=");
1252 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1253 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1255 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1256 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "|=");
1271 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))__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_Putc])(f, (char)op);
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, "delete ");
1287 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
1292 struct ClassFunction;
1296 struct ClassDef * prev;
1297 struct ClassDef * next;
1298 struct Location loc;
1302 struct Declaration * decl;
1303 struct ClassFunction * function;
1304 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
1305 struct PropertyDef * propertyDef;
1306 struct PropertyWatch * propertyWatch;
1308 struct Identifier * defaultProperty;
1311 struct Identifier * id;
1312 struct Initializer * initializer;
1313 } __attribute__ ((gcc_struct)) __anon1;
1314 } __attribute__ ((gcc_struct)) __anon1;
1317 } __attribute__ ((gcc_struct));
1321 struct MembersInit * prev;
1322 struct MembersInit * next;
1323 struct Location loc;
1327 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
1328 struct ClassFunction * function;
1329 } __attribute__ ((gcc_struct)) __anon1;
1330 } __attribute__ ((gcc_struct));
1332 struct ClassFunction
1334 struct ClassFunction * prev;
1335 struct ClassFunction * next;
1336 struct Location loc;
1337 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1338 struct Declarator * declarator;
1339 struct __ecereNameSpace__ecere__sys__OldList * declarations;
1340 struct Statement * body;
1341 struct __ecereNameSpace__ecere__com__Class * _class;
1342 struct __ecereNameSpace__ecere__sys__OldList attached;
1345 struct Symbol * propSet;
1346 unsigned int isVirtual;
1347 unsigned int isConstructor;
1348 unsigned int isDestructor;
1349 unsigned int dontMangle;
1352 } __attribute__ ((gcc_struct));
1354 struct InitDeclarator;
1356 struct InitDeclarator
1358 struct InitDeclarator * prev;
1359 struct InitDeclarator * next;
1360 struct Location loc;
1361 struct Declarator * declarator;
1362 struct Initializer * initializer;
1363 } __attribute__ ((gcc_struct));
1367 typedef union YYSTYPE
1372 struct Identifier * id;
1373 struct Expression * exp;
1374 struct Specifier * specifier;
1375 struct __ecereNameSpace__ecere__sys__OldList * list;
1376 struct Enumerator * enumerator;
1377 struct Declarator * declarator;
1378 struct Pointer * pointer;
1379 struct Initializer * initializer;
1380 struct InitDeclarator * initDeclarator;
1381 struct TypeName * typeName;
1382 struct Declaration * declaration;
1383 struct Statement * stmt;
1384 struct FunctionDefinition * function;
1385 struct External * external;
1386 struct Context * context;
1387 struct AsmField * asmField;
1388 struct Attrib * attrib;
1389 struct ExtDecl * extDecl;
1390 struct Attribute * attribute;
1391 struct Instantiation * instance;
1392 struct MembersInit * membersInit;
1393 struct MemberInit * memberInit;
1394 struct ClassFunction * classFunction;
1395 struct ClassDefinition * _class;
1396 struct ClassDef * classDef;
1397 struct PropertyDef * prop;
1399 struct Symbol * symbol;
1400 struct PropertyWatch * propertyWatch;
1401 struct TemplateParameter * templateParameter;
1402 struct TemplateArgument * templateArgument;
1403 struct TemplateDatatype * templateDatatype;
1404 struct DBTableEntry * dbtableEntry;
1405 struct DBIndexItem * dbindexItem;
1406 struct DBTableDef * dbtableDef;
1407 } __attribute__ ((gcc_struct)) YYSTYPE;
1409 extern YYSTYPE yylval;
1414 struct Symbol * parent;
1415 struct Symbol * left;
1416 struct Symbol * right;
1421 struct __ecereNameSpace__ecere__com__Method * method;
1422 struct __ecereNameSpace__ecere__com__Property * _property;
1423 struct __ecereNameSpace__ecere__com__Class * registered;
1424 } __attribute__ ((gcc_struct)) __anon1;
1425 unsigned int notYetDeclared;
1430 struct External * pointerExternal;
1431 struct External * structExternal;
1432 } __attribute__ ((gcc_struct)) __anon1;
1435 struct External * externalGet;
1436 struct External * externalSet;
1437 struct External * externalPtr;
1438 struct External * externalIsSet;
1439 } __attribute__ ((gcc_struct)) __anon2;
1442 struct External * methodExternal;
1443 struct External * methodCodeExternal;
1444 } __attribute__ ((gcc_struct)) __anon3;
1445 } __attribute__ ((gcc_struct)) __anon2;
1446 unsigned int imported;
1447 unsigned int declaredStructSym;
1448 struct __ecereNameSpace__ecere__com__Class * _class;
1449 unsigned int declaredStruct;
1450 unsigned int needConstructor;
1451 unsigned int needDestructor;
1452 char * constructorName;
1455 char * destructorName;
1456 struct ModuleImport * module;
1457 struct ClassImport * _import;
1458 struct Location nameLoc;
1459 unsigned int isParam;
1460 unsigned int isRemote;
1461 unsigned int isStruct;
1462 unsigned int fireWatchersDone;
1464 unsigned int classData;
1465 unsigned int isStatic;
1467 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
1468 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
1469 struct Context * ctx;
1471 struct Expression * propCategory;
1472 } __attribute__ ((gcc_struct));
1476 struct External * prev;
1477 struct External * next;
1478 struct Location loc;
1480 struct Symbol * symbol;
1483 struct FunctionDefinition * function;
1484 struct ClassDefinition * _class;
1485 struct Declaration * declaration;
1486 char * importString;
1487 struct Identifier * id;
1488 struct DBTableDef * table;
1489 } __attribute__ ((gcc_struct)) __anon1;
1491 struct External * fwdDecl;
1492 struct __ecereNameSpace__ecere__com__Instance * outgoing;
1493 struct __ecereNameSpace__ecere__com__Instance * incoming;
1494 int nonBreakableIncoming;
1495 } __attribute__ ((gcc_struct));
1497 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1499 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
1501 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1502 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1504 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1505 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*");
1508 struct Specifier * spec;
1510 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1511 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1513 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1514 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1515 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
1517 OutputSpecifier(spec, f, 0);
1519 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1520 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1522 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1523 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1528 OutputPointer(ptr->pointer, f);
1532 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f);
1534 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1538 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1539 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1541 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1542 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1543 OutputIdentifier(field->symbolic, f);
1544 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1545 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1547 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1548 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1550 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1551 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1553 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1554 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, field->command);
1555 if(field->expression)
1557 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1558 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1560 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1561 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1562 OutputExpression(field->expression, f);
1563 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1564 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1566 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1567 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1571 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
1573 OutputIdentifier(enumerator->id, f);
1576 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1577 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1579 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1580 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
1581 OutputExpression(enumerator->exp, f);
1585 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
1588 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1589 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1591 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1592 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, attr->attr);
1595 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1596 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1598 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1599 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1600 OutputExpression(attr->exp, f);
1604 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
1606 char name[274] = "";
1607 char origName[274] = "";
1611 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
1612 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1613 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1615 if(initializer->type == 1)
1616 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1617 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1619 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1620 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
1623 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1624 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1626 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1627 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
1628 OutputIdentifier(initializer->id, f);
1629 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1630 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1632 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1633 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
1635 switch(initializer->type)
1639 struct Initializer * init;
1642 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1643 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1645 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1646 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1647 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1648 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1650 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1651 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
1653 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
1655 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
1658 for(init = (*initializer->__anon1.list).first; init; init = init->next)
1660 OutputInitializer(init, f);
1662 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1663 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1665 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1666 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, init->next->type == 1 ? "," : ", ");
1668 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1669 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1671 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1672 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
1673 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
1675 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
1683 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1684 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1686 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1687 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1688 if(initializer->__anon1.exp)
1689 OutputExpression(initializer->__anon1.exp, f);
1694 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
1699 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1700 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1702 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1703 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute__((");
1706 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1707 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1709 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1710 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute((");
1713 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1714 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1716 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1717 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute_deprecated__((");
1722 struct Attribute * attrib;
1724 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
1727 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1728 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1730 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1731 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1732 OutputAttribute(attrib, f);
1735 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1736 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1738 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1739 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "))");
1742 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
1744 if(init->identifiers)
1746 if((*init->identifiers).count > 1)
1748 struct Identifier * id;
1750 for(id = (*init->identifiers).first; id; id = id->next)
1752 OutputIdentifier(id, f);
1754 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1755 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1757 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1758 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
1761 else if((*init->identifiers).first)
1762 OutputIdentifier((*init->identifiers).first, f);
1763 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1764 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1766 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1767 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
1768 if(init->initializer && init->initializer->type == 0)
1769 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1770 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1772 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1773 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1775 if(init->initializer)
1776 OutputInitializer(init->initializer, f);
1779 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
1781 if(extDecl->type == 0 && extDecl->__anon1.s)
1782 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1783 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1785 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1786 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, extDecl->__anon1.s);
1787 else if(extDecl->type == 1)
1788 OutputAttrib(extDecl->__anon1.attr, f);
1791 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1793 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
1798 if(decl->declarator)
1800 OutputDeclarator(decl->declarator, f);
1802 if(decl->__anon1.structDecl.exp)
1804 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1805 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1807 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1808 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1809 OutputExpression(decl->__anon1.structDecl.exp, f);
1811 if(decl->__anon1.structDecl.posExp)
1813 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1814 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1816 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1817 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1818 OutputExpression(decl->__anon1.structDecl.posExp, f);
1820 if(decl->__anon1.structDecl.attrib)
1822 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1823 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1825 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1826 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1827 OutputAttrib(decl->__anon1.structDecl.attrib, f);
1831 OutputIdentifier(decl->__anon1.identifier, f);
1834 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1835 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1837 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1838 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1839 OutputDeclarator(decl->declarator, f);
1840 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1841 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1843 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1844 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1847 if(decl->__anon1.extended.extended)
1848 OutputExtDecl(decl->__anon1.extended.extended, f);
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 OutputDeclarator(decl->declarator, f);
1857 OutputDeclarator(decl->declarator, f);
1858 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1859 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1861 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1862 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1863 if(decl->__anon1.extended.extended)
1864 OutputExtDecl(decl->__anon1.extended.extended, f);
1867 if(decl->declarator)
1869 OutputDeclarator(decl->declarator, f);
1871 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1872 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1874 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1875 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1876 if(decl->__anon1.array.exp)
1878 ProcessExpressionType(decl->__anon1.array.exp);
1879 ComputeExpression(decl->__anon1.array.exp);
1880 OutputExpression(decl->__anon1.array.exp, f);
1882 else if(decl->__anon1.array.enumClass)
1884 struct Symbol * _class = decl->__anon1.array.enumClass->__anon1.__anon1.symbol;
1886 if(_class && _class->__anon1.registered)
1888 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->__anon1.registered, "enumSize"));
1891 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1892 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1894 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1895 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1899 struct TypeName * param;
1901 if(decl->declarator)
1902 OutputDeclarator(decl->declarator, f);
1903 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1904 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1906 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1907 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1908 if(decl->__anon1.function.parameters && (*decl->__anon1.function.parameters).first)
1910 for(param = (*decl->__anon1.function.parameters).first; param; param = param->next)
1912 OutputTypeName(param, f, 0);
1914 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1915 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1917 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1918 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1921 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1922 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1924 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1925 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1929 if(decl->__anon1.pointer.pointer)
1930 OutputPointer(decl->__anon1.pointer.pointer, f);
1931 if(decl->declarator)
1933 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1934 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1936 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1937 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1938 OutputDeclarator(decl->declarator, f);
1944 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
1947 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
1948 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
1951 typeName->qualifiers = specs;
1952 typeName->declarator = decl;
1953 OutputTypeName(typeName, f, 1);
1954 ((typeName ? (__ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor((void *)typeName) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(typeName)) : 0), typeName = 0);
1955 size = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1956 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1958 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1959 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(f);
1960 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
1961 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
1962 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1964 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1965 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, 0, 0);
1966 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
1967 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1969 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1970 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, string, 1, (unsigned int)size);
1971 string[size] = '\0';
1972 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
1973 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
1977 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
1979 if(type->qualifiers)
1981 struct Specifier * spec;
1983 for(spec = (*type->qualifiers).first; spec; spec = spec->next)
1985 OutputSpecifier(spec, f, typeName);
1987 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1988 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1990 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1991 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1994 if(type->declarator)
1996 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1997 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1999 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2000 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2001 OutputDeclarator(type->declarator, f);
2003 if(!type->qualifiers && !type->declarator)
2004 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2005 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2007 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2008 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "...");
2011 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2013 OutputDeclarator(decl->declarator, f);
2014 if(decl->initializer)
2016 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2017 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2019 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2020 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
2021 if(decl->initializer->type == 0)
2022 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2023 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2025 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2026 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2027 OutputInitializer(decl->initializer, f);
2031 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f);
2033 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f);
2035 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2040 switch(spec->__anon1.specifier)
2043 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2044 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2046 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2047 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef");
2050 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2051 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2053 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2054 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "extern");
2057 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2058 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2060 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2061 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static");
2064 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2065 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2067 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2068 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "auto");
2071 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2072 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2074 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2075 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "register");
2078 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2079 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2081 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2082 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__thread");
2085 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2086 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2088 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2089 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "const");
2092 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2093 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2095 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2096 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "volatile");
2099 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2100 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2102 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2103 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "void");
2106 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2107 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2109 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2110 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "char");
2114 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2115 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2117 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2118 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Bool");
2121 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2122 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2124 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2125 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Complex");
2128 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2129 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2131 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2132 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Imaginary");
2135 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2136 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2138 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2139 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "restrict");
2142 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2143 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2145 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2146 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "short");
2149 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2150 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2152 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2153 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "int");
2156 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2157 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2159 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2160 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "uint" : "unsigned int");
2163 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2164 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2166 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2167 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "int64" : "long long");
2170 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2171 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2173 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2174 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_list");
2177 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2178 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2180 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2181 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "long");
2184 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2185 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2187 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2188 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "float");
2191 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2192 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2194 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2195 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "double");
2198 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2199 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2201 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2202 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "signed");
2205 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2206 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2208 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2209 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "unsigned");
2212 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2213 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2215 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2216 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
2219 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2220 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2222 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2223 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "any_object");
2226 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2227 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2229 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2230 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class");
2233 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2234 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2236 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2237 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "thisclass");
2242 if(spec->__anon1.__anon1.extDecl)
2243 OutputExtDecl(spec->__anon1.__anon1.extDecl, f);
2246 if(spec->__anon1.__anon1.name && !strcmp(spec->__anon1.__anon1.name, "class"))
2248 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2249 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2251 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2252 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
2256 struct Symbol * symbol = spec->__anon1.__anon1.symbol;
2258 if(!symbol && spec->__anon1.__anon1.name)
2259 symbol = FindClass(spec->__anon1.__anon1.name);
2262 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2263 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2265 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2266 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, symbol->string ? symbol->string : "(null)");
2268 else if(spec->__anon1.__anon1.name)
2269 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2270 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2272 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2273 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, spec->__anon1.__anon1.name);
2278 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2279 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2281 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2282 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "enum");
2283 if(spec->__anon1.__anon2.id)
2285 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2286 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2288 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2289 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2290 OutputIdentifier(spec->__anon1.__anon2.id, f);
2292 if(spec->__anon1.__anon2.list)
2294 struct Enumerator * enumerator;
2296 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2297 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2299 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2300 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2302 for(enumerator = (*spec->__anon1.__anon2.list).first; enumerator; enumerator = enumerator->next)
2304 OutputEnumerator(enumerator, f);
2305 if(enumerator->next)
2306 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2307 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2309 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2310 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2312 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2313 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2315 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2316 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
2324 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2325 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2327 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2328 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (spec->type == 3) ? "struct" : "union");
2329 if(spec->__anon1.__anon2.extDeclStruct)
2331 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2332 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2334 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2335 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2336 OutputExtDecl(spec->__anon1.__anon2.extDeclStruct, f);
2338 if(spec->__anon1.__anon2.id)
2340 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2341 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2343 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2344 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2345 OutputIdentifier(spec->__anon1.__anon2.id, f);
2347 if(spec->__anon1.__anon2.definitions)
2349 struct ClassDef * def;
2351 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2352 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2354 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2355 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2357 for(def = (*spec->__anon1.__anon2.definitions).first; def; def = def->next)
2359 OutputClassDef(def, f);
2361 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2362 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2364 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2365 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "} __attribute__ ((gcc_struct))");
2370 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2371 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2373 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2374 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__typeof(");
2375 OutputExpression(spec->__anon1.expression, f);
2376 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2377 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2379 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2380 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2383 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2384 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2386 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2387 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "subclass(");
2388 OutputSpecifier(spec->__anon1._class, f, 0);
2389 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2390 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2392 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2393 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2396 OutputIdentifier(spec->__anon1.templateParameter->identifier, f);
2401 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
2403 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2404 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2406 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2407 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class ");
2408 OutputSpecifier(_class->_class, f, 0);
2409 if(_class->baseSpecs)
2411 struct Specifier * spec;
2413 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2414 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2416 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2417 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2418 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
2420 OutputSpecifier(spec, f, 0);
2423 if(_class->definitions)
2425 struct ClassDef * def;
2427 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2428 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2430 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2431 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2433 for(def = (*_class->definitions).first; def; def = def->next)
2435 OutputClassDef(def, f);
2437 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2438 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2440 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2441 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
2445 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2446 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2448 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2449 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2452 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f);
2454 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
2457 OutputSpecifier(inst->_class, f, 0);
2460 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2461 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2463 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2464 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2465 OutputExpression(inst->exp, f);
2467 if(inst->members && (*inst->members).count > 1)
2469 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2470 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2472 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2473 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2476 else if(inst->members)
2477 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2478 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2480 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2481 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " { ");
2483 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2484 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2486 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2487 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{");
2490 struct MembersInit * init;
2492 for(init = (*inst->members).first; init; init = init->next)
2494 OutputMembersInit(init, f);
2495 if(init->type == 0 && init->next)
2497 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2498 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2500 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2501 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
2507 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2508 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2510 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2511 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }");
2513 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2514 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2516 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2517 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2520 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2522 struct Specifier * spec;
2528 strcpy(origName, outputFile);
2529 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
2531 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
2532 if(inCompiler && outputLineNumbers && decl->loc.start.line)
2534 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
2541 struct InitDeclarator * d;
2543 if(decl->__anon1.__anon1.specifiers)
2545 unsigned int inTypeDef = 0;
2547 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
2549 if(spec->type == 0 && spec->__anon1.specifier == TYPEDEF)
2551 OutputSpecifier(spec, f, inTypeDef && !spec->next);
2553 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2554 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2556 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2557 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2560 if(decl->__anon1.__anon1.declarators && (*decl->__anon1.__anon1.declarators).first)
2562 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2563 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2565 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2566 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2567 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
2569 OutputInitDeclarator(d, f);
2571 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2572 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2574 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2575 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2582 if(decl->__anon1.__anon1.specifiers)
2584 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
2586 OutputSpecifier(spec, f, 0);
2588 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2589 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2591 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2592 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2595 if(decl->__anon1.__anon1.declarators)
2597 struct Declarator * d;
2599 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2600 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2602 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2603 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2604 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
2606 OutputDeclarator(d, f);
2608 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2609 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2611 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2612 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2615 if(decl->extStorage)
2617 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2618 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2620 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2621 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2622 OutputSpecifier(decl->extStorage, f, 0);
2627 if(decl->__anon1.inst)
2629 OutputInstance(decl->__anon1.inst, f);
2635 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2636 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2638 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2639 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
2641 if(inCompiler && outputLineNumbers && decl->loc.start.line)
2643 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
2648 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
2650 char name[274] = "";
2651 char origName[274] = "";
2655 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
2656 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
2657 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
2659 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
2661 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
2667 OutputDeclaration(stmt->__anon1.decl, f);
2670 OutputIdentifier(stmt->__anon1.labeled.id, f);
2671 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2672 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2674 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2675 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2677 if(stmt->__anon1.labeled.stmt)
2679 if(stmt->__anon1.labeled.stmt->type == 14)
2680 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2681 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2683 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2684 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2685 OutputStatement(stmt->__anon1.labeled.stmt, f);
2689 if(stmt->__anon1.caseStmt.exp)
2691 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2692 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2694 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2695 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "case ");
2696 OutputExpression(stmt->__anon1.caseStmt.exp, f);
2697 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2698 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2700 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2701 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2706 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2707 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2709 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2710 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
2713 if(stmt->__anon1.caseStmt.stmt)
2715 if(stmt->__anon1.caseStmt.stmt->type == 14)
2716 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2717 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2719 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2720 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2721 OutputStatement(stmt->__anon1.caseStmt.stmt, f);
2726 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2727 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2729 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2730 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
2732 if(stmt->__anon1.compound.declarations)
2734 struct Declaration * decl;
2736 for(decl = (*stmt->__anon1.compound.declarations).first; decl; decl = decl->next)
2738 OutputDeclaration(decl, f);
2741 if(stmt->__anon1.compound.statements)
2743 struct Statement * statement;
2745 if(stmt->__anon1.compound.declarations)
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, "\n");
2754 for(statement = (*stmt->__anon1.compound.statements).first; statement; statement = statement->next)
2756 OutputStatement(statement, 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");
2765 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2767 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2770 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2771 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2773 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2774 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2779 if(stmt->__anon1.expressions)
2781 struct Expression * exp;
2783 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
2785 OutputExpression(exp, f);
2787 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2788 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2790 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2791 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2794 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2795 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2797 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2798 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2803 struct Expression * exp;
2805 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2806 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2808 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2809 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "if(");
2810 for(exp = (*stmt->__anon1.ifStmt.exp).first; exp; exp = exp->next)
2812 OutputExpression(exp, f);
2814 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2815 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2817 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2818 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2820 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2821 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2823 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2824 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2826 if(stmt->__anon1.ifStmt.stmt)
2827 OutputStatement(stmt->__anon1.ifStmt.stmt, f);
2828 if(stmt->__anon1.ifStmt.elseStmt)
2830 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2831 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2833 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2834 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
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, "else");
2841 if(stmt->__anon1.ifStmt.elseStmt->type != 4)
2843 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2844 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2846 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2847 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
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, " ");
2856 OutputStatement(stmt->__anon1.ifStmt.elseStmt, f);
2862 struct Expression * exp;
2864 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2865 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2867 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2868 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "switch(");
2869 if(stmt->__anon1.switchStmt.exp)
2871 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2873 OutputExpression(exp, f);
2875 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2876 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2878 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2879 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
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, ")\n");
2888 OutputStatement(stmt->__anon1.switchStmt.stmt, 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, "while(");
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.whileStmt.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, "do\n");
2932 OutputStatement(stmt->__anon1.whileStmt.stmt, f);
2933 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2934 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2936 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2937 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2938 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2940 OutputExpression(exp, f);
2942 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2943 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2945 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2946 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2948 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2949 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2951 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2952 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");");
2957 struct Expression * exp;
2959 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2960 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2962 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2963 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "for(");
2964 OutputStatement(stmt->__anon1.forStmt.init, f);
2965 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2966 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2968 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2969 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2970 OutputStatement(stmt->__anon1.forStmt.check, f);
2971 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2972 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2974 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2975 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2976 if(stmt->__anon1.forStmt.increment)
2978 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2980 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2983 for(exp = (*stmt->__anon1.forStmt.increment).first; exp; exp = exp->next)
2985 OutputExpression(exp, f);
2987 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2988 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2990 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2991 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2994 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2995 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2997 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2998 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
3000 OutputStatement(stmt->__anon1.forStmt.stmt, f);
3005 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3006 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3008 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3009 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "goto ");
3010 OutputIdentifier(stmt->__anon1.gotoStmt.id, f);
3011 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3012 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3014 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3015 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3019 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3020 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3022 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3023 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "continue;");
3026 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3027 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3029 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3030 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "break;");
3034 struct Expression * exp;
3036 if(inCompiler && memoryGuard)
3038 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
3039 struct Type * returnType = exp ? (exp->destType ? exp->destType : exp->expType) : (((void *)0));
3041 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
3042 if(returnType && returnType->kind != 0)
3044 char string[1024] = "";
3045 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
3046 struct Declarator * decl;
3047 struct TypeName * typeName;
3049 if(returnType->kind == 20)
3051 if(returnType->__anon1.templateParameter->dataTypeString)
3052 decl = SpecDeclFromString(returnType->__anon1.templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3053 else if(returnType->__anon1.templateParameter->__anon1.dataType)
3055 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
3056 specs = CopyList(returnType->__anon1.templateParameter->__anon1.dataType->specifiers, (void *)(CopySpecifier));
3057 decl = PlugDeclarator(returnType->__anon1.templateParameter->__anon1.dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3061 ListAdd(specs, MkSpecifierName("uint64"));
3062 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
3067 if(returnType->passAsTemplate)
3068 strcpy(string, "uint64");
3070 PrintType(returnType, string, returnType->kind == 18 ? 1 : 0, 1);
3071 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3073 typeName = MkTypeName(specs, decl);
3074 InstDeclPassTypeName(typeName, 0);
3075 OutputTypeName(typeName, f, 0);
3076 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
3077 FreeTypeName(typeName);
3081 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3082 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3084 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3085 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "return ");
3088 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
3090 if(exp && exp->expType && exp->expType->kind != 0)
3091 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
3093 if(stmt->__anon1.expressions)
3095 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
3097 OutputExpression(exp, f);
3099 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3100 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3102 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3103 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3106 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3107 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3109 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3110 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3111 if(inCompiler && memoryGuard)
3113 struct Expression * exp = stmt->__anon1.expressions ? (struct Expression *)(*stmt->__anon1.expressions).last : (((void *)0));
3115 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
3116 if(exp && exp->expType && exp->expType->kind != 0)
3117 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
3119 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
3120 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
3126 struct AsmField * field;
3128 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3129 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3131 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3132 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__asm__ ");
3133 if(stmt->__anon1.asmStmt.spec)
3134 OutputSpecifier(stmt->__anon1.asmStmt.spec, f, 0);
3135 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3136 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3138 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3139 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3140 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3141 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3143 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3144 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, stmt->__anon1.asmStmt.statements);
3145 if(stmt->__anon1.asmStmt.inputFields || stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
3147 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3148 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3150 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3151 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
3152 if(stmt->__anon1.asmStmt.inputFields)
3154 for(field = (*stmt->__anon1.asmStmt.inputFields).first; field; field = field->next)
3157 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3158 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3160 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3161 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
3162 OutputAsmField(field, f);
3166 if(stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
3168 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3169 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3171 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3172 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
3173 if(stmt->__anon1.asmStmt.outputFields)
3175 for(field = (*stmt->__anon1.asmStmt.outputFields).first; field; field = field->next)
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 OutputAsmField(field, f);
3187 if(stmt->__anon1.asmStmt.clobberedFields)
3189 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3190 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3192 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3193 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
3194 for(field = (*stmt->__anon1.asmStmt.clobberedFields).first; field; field = field->next)
3197 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3198 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3200 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3201 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
3202 OutputAsmField(field, f);
3205 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3206 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3208 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3209 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");\n");
3214 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
3216 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3221 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
3223 struct External * external;
3226 for(external = ast->first; external; external = external->next)
3228 switch(external->type)
3231 OutputFunction(external->__anon1.function, f);
3232 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3233 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3235 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3236 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3240 if(external->__anon1.declaration)
3241 OutputDeclaration(external->__anon1.declaration, f);
3242 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3243 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3245 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3246 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3250 OutputClass(external->__anon1._class, f);
3251 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3252 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3254 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3255 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3262 void OutputExternal(struct External * external, struct __ecereNameSpace__ecere__com__Instance * f)
3264 switch(external->type)
3267 OutputFunction(external->__anon1.function, f);
3268 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3269 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3271 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3272 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3276 if(external->__anon1.declaration)
3277 OutputDeclaration(external->__anon1.declaration, f);
3278 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3279 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3281 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3282 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3286 OutputClass(external->__anon1._class, f);
3287 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3288 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3290 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3291 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3297 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f)
3302 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3303 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3305 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3306 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class(");
3307 if(exp->__anon1._classExp.specifiers)
3309 struct Specifier * spec;
3311 for(spec = (*exp->__anon1._classExp.specifiers).first; spec; spec = spec->next)
3313 OutputSpecifier(spec, f, 0);
3315 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3316 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3318 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3319 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3321 if(exp->__anon1._classExp.decl)
3323 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3324 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3326 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3327 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3328 OutputDeclarator(exp->__anon1._classExp.decl, f);
3330 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3331 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3333 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3334 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3338 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3339 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3341 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3342 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
3343 OutputStatement(exp->__anon1.compound, f);
3344 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3345 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3347 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3348 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3349 if(inCompiler && outputLineNumbers && exp->loc.end.line)
3351 char name[274] = "";
3353 GetSourceName(name, exp->loc.end.included ? GetIncludeFileFromID(exp->loc.end.included) : (((void *)0)));
3354 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", exp->loc.end.line, name);
3359 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3360 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3362 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3363 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new ");
3364 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3365 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3367 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3368 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3369 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
3370 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3371 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3373 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3374 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3375 OutputExpression(exp->__anon1._renew.size, f);
3376 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3377 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3379 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3380 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3383 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3384 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3386 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3387 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new0 ");
3388 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3389 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3391 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3392 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3393 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
3394 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3395 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3397 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3398 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3399 OutputExpression(exp->__anon1._renew.size, f);
3400 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3401 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3403 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3404 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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, "renew ");
3412 OutputExpression(exp->__anon1._renew.exp, f);
3413 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3414 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3416 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3417 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3418 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
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 OutputExpression(exp->__anon1._renew.size, f);
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, "]");
3432 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3433 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3435 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3436 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew0 ");
3437 OutputExpression(exp->__anon1._renew.exp, 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, " ");
3443 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
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 OutputExpression(exp->__anon1._renew.size, f);
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, "]");
3457 if(exp->__anon1.__anon1.identifier)
3458 OutputIdentifier(exp->__anon1.__anon1.identifier, f);
3461 if(exp->__anon1.instance)
3462 OutputInstance(exp->__anon1.instance, f);
3465 if(exp->__anon1.__anon1.constant)
3466 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3467 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3469 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3470 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->__anon1.__anon1.constant);
3473 if(exp->__anon1.__anon2.string)
3474 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3475 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3477 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3478 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->__anon1.__anon2.string);
3481 if(exp->__anon1.op.exp1)
3483 OutputExpression(exp->__anon1.op.exp1, f);
3484 if(exp->__anon1.op.exp2)
3485 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3486 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3488 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3489 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3491 OutputOperator(exp->__anon1.op.op, f);
3492 if(exp->__anon1.op.exp2)
3494 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))
3495 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3496 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3498 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3499 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3500 OutputExpression(exp->__anon1.op.exp2, f);
3506 struct Expression * expression;
3509 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3510 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3512 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3513 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
3514 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3515 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3517 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3518 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3519 if(exp->__anon1.list)
3521 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
3523 OutputExpression(expression, f);
3524 if(expression->next)
3525 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3526 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3528 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3529 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3532 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3533 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3535 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3536 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3541 struct Expression * expression;
3543 if(exp->__anon1.index.exp)
3544 OutputExpression(exp->__anon1.index.exp, f);
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.index.index)
3551 for(expression = (*exp->__anon1.index.index).first; expression; expression = expression->next)
3553 OutputExpression(expression, f);
3554 if(expression->next)
3555 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3556 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3558 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3559 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3561 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3562 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3564 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3565 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3570 OutputExpression(exp->__anon1.call.exp, f);
3571 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3572 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3574 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3575 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3576 if(exp->__anon1.call.arguments)
3578 struct Expression * expression;
3580 for(expression = (*exp->__anon1.call.arguments).first; expression; expression = expression->next)
3582 OutputExpression(expression, f);
3583 if(expression->next)
3584 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3585 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3587 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3588 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3591 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3592 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3594 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3595 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3599 if(exp->__anon1.member.exp)
3600 OutputExpression(exp->__anon1.member.exp, f);
3601 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3602 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3604 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3605 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3606 if(exp->__anon1.member.member)
3607 OutputIdentifier(exp->__anon1.member.member, f);
3610 OutputExpression(exp->__anon1.member.exp, f);
3611 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3612 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3614 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3615 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "->");
3616 OutputIdentifier(exp->__anon1.member.member, f);
3619 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3620 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3622 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3623 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof(");
3624 OutputTypeName(exp->__anon1.typeName, f, 0);
3625 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3626 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3628 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3629 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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, "__alignof__(");
3637 OutputTypeName(exp->__anon1.typeName, f, 0);
3638 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3639 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3641 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3642 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3645 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3646 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3648 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3649 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
3650 if(exp->__anon1.initializer.typeName)
3651 OutputTypeName(exp->__anon1.initializer.typeName, f, 0);
3652 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3653 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3655 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3656 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3657 if(exp->__anon1.initializer.initializer)
3658 OutputInitializer(exp->__anon1.initializer.initializer, f);
3661 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3662 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3664 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3665 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3666 OutputTypeName(exp->__anon1.cast.typeName, f, 0);
3667 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3668 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3670 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3671 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3672 if(exp->__anon1.cast.exp)
3673 OutputExpression(exp->__anon1.cast.exp, f);
3676 OutputExpression(exp->__anon1.cond.cond, f);
3677 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3678 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3680 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3681 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ? ");
3683 struct Expression * expression;
3685 for(expression = (*exp->__anon1.cond.exp).first; expression; expression = expression->next)
3687 OutputExpression(expression, f);
3688 if(expression->next)
3689 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3690 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3692 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3693 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3696 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3697 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3699 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3700 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
3701 if(exp->__anon1.cond.elseExp)
3702 OutputExpression(exp->__anon1.cond.elseExp, f);
3705 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3706 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3708 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3709 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_arg(");
3710 OutputExpression(exp->__anon1.vaArg.exp, f);
3711 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3712 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3714 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3715 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3716 OutputTypeName(exp->__anon1.vaArg.typeName, f, 0);
3717 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3718 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3720 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3721 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3724 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3725 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3727 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3728 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3729 if(exp->__anon1.list)
3731 struct Expression * expression;
3733 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
3735 OutputExpression(expression, f);
3736 if(expression->next)
3737 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3738 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3740 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3741 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3744 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3745 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3747 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3748 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3753 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
3755 struct FunctionDefinition * oldFunc = curFunction;
3758 if(func->specifiers)
3760 struct Specifier * spec;
3762 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3764 OutputSpecifier(spec, f, 0);
3766 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3767 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3769 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3770 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3772 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3773 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3775 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3776 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3778 if(func->declarator)
3779 OutputDeclarator(func->declarator, f);
3780 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3781 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3783 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3784 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3786 if(func->declarations)
3788 struct Declaration * decl;
3790 for(decl = (*func->declarations).first; decl; decl = decl->next)
3792 OutputDeclaration(decl, f);
3794 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3795 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3797 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3798 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3803 if(inCompiler && memoryGuard)
3805 char name[1024] = "";
3806 struct Identifier * id = GetDeclId(func->declarator);
3808 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
3809 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
3810 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
3813 OutputStatement(func->body, f);
3814 if(inCompiler && memoryGuard)
3816 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
3817 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
3820 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3821 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3823 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3824 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3827 curFunction = oldFunc;
3830 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
3832 if(func->specifiers)
3834 struct Specifier * spec;
3836 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3838 OutputSpecifier(spec, f, 0);
3840 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3841 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3843 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3844 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(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, " ");
3852 if(func->declarator)
3853 OutputDeclarator(func->declarator, f);
3854 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3855 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3857 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3858 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3860 if(func->declarations)
3862 struct Declaration * decl;
3864 for(decl = (*func->declarations).first; decl; decl = decl->next)
3866 OutputDeclaration(decl, f);
3868 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3869 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3871 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3872 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3877 OutputStatement(func->body, f);
3878 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3879 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3881 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3882 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3886 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3887 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3889 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3890 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3893 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3895 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
3897 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
3898 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
3899 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
3900 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
3901 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
3902 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExternal", "void OutputExternal(External external, ecere::sys::File f)", OutputExternal, module, 1);
3903 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
3906 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3912 struct MemberInit * member;
3914 if(init->__anon1.dataMembers)
3916 for(member = (*init->__anon1.dataMembers).first; member; member = member->next)
3918 OutputMemberInit(member, 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, ", ");
3930 OutputClassFunction(init->__anon1.function, f);
3935 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
3940 if(def->__anon1.decl)
3942 OutputDeclaration(def->__anon1.decl, f);
3943 if(def->next && def->next->type != 2)
3945 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3946 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3948 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3949 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3956 struct MemberInit * init;
3958 for(init = (*def->__anon1.defProperties).first; init; init = init->next)
3960 OutputMemberInit(init, f);
3962 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3963 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3965 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3966 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3968 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3969 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3971 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3972 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n\n");
3977 OutputClassFunction(def->__anon1.function, f);
3978 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3979 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3981 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3982 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");