1 /* Code generated from eC source file: output.ec */
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
7 #define __runtimePlatform 2
10 typedef long long int64;
11 typedef unsigned long long uint64;
15 #elif defined(__TINYC__)
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
27 typedef long long int64;
28 typedef unsigned long long uint64;
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
34 #define __ENDIAN_PAD(x) (8 - (x))
36 #define __ENDIAN_PAD(x) 0
39 # if defined(__GNUC__) || defined(__TINYC__)
40 # define ecere_stdcall __attribute__((__stdcall__))
41 # define ecere_gcc_struct __attribute__((gcc_struct))
43 # define ecere_stdcall __stdcall
44 # define ecere_gcc_struct
47 # define ecere_stdcall
48 # define ecere_gcc_struct
51 #include <sys/types.h>
54 IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372, WIDE_STRING_LITERAL = 373
59 unsigned int memoryGuard = 0;
61 extern unsigned int inCompiler;
63 extern unsigned int outputLineNumbers;
65 extern const char * sourceFile;
67 extern const char * outputFile;
69 struct __ecereNameSpace__ecere__sys__OldList
78 struct __ecereNameSpace__ecere__sys__BTNode;
80 struct __ecereNameSpace__ecere__com__DataValue
95 } ecere_gcc_struct __anon1;
98 struct __ecereNameSpace__ecere__com__SerialBuffer
100 unsigned char * _buffer;
106 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
108 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
110 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
112 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
114 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
120 struct PropertyWatch;
122 struct TemplateArgument;
138 extern int strcmp(const char * , const char * );
140 extern char * GetIncludeFileFromID(int id);
142 extern char * strchr(const char * , int);
144 extern char * __ecereNameSpace__ecere__sys__StripLastDirectory(const char * string, char * output);
146 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, const char * addedPath);
148 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
150 extern char * strcpy(char * , const char * );
156 struct __ecereNameSpace__ecere__com__LinkList
163 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(const char * string, char * output);
165 struct __ecereNameSpace__ecere__com__GlobalFunction;
167 void SetMemoryGuard(unsigned int b)
172 unsigned int GetMemoryGuard()
177 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
179 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
181 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
185 struct CodePosition start;
186 struct CodePosition end;
189 static void GetSourceName(char * name, const char * src)
194 if(!strchr(src, '/') && !strchr(src, '\\'))
195 __ecereNameSpace__ecere__sys__StripLastDirectory(sourceFile, name);
196 __ecereNameSpace__ecere__sys__PathCat(name, src);
199 __ecereNameSpace__ecere__sys__PathCat(name, sourceFile);
200 __ecereNameSpace__ecere__sys__ChangeCh(name, '\\', '/');
203 extern struct Location yylloc;
209 struct __ecereNameSpace__ecere__sys__OldList * attribs;
219 struct Attrib * attr;
220 } ecere_gcc_struct __anon1;
225 extern void ProcessExpressionType(struct Expression * exp);
227 extern void ComputeExpression(struct Expression * exp);
229 struct FunctionDefinition;
231 static struct FunctionDefinition * curFunction;
233 struct __ecereNameSpace__ecere__com__Class;
235 struct __ecereNameSpace__ecere__com__Instance
238 struct __ecereNameSpace__ecere__com__Class * _class;
242 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
244 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
246 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
248 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
250 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
252 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
254 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc;
256 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, const char * format, ...);
258 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize;
260 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
262 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
264 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
266 struct __ecereNameSpace__ecere__com__Property;
268 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
270 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
272 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
274 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
278 extern struct Identifier * MkIdentifier(const char * string);
282 extern struct Specifier * CopySpecifier(struct Specifier * spec);
284 extern struct Specifier * MkSpecifierName(const char * name);
288 extern struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
290 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
292 struct TemplateDatatype
294 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
295 struct Declarator * decl;
298 extern struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl);
300 extern struct Identifier * GetDeclId(struct Declarator * decl);
304 struct __ecereNameSpace__ecere__com__Property
306 struct __ecereNameSpace__ecere__com__Property * prev;
307 struct __ecereNameSpace__ecere__com__Property * next;
309 unsigned int isProperty;
312 struct __ecereNameSpace__ecere__com__Class * _class;
313 const char * dataTypeString;
314 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
315 struct Type * dataType;
316 void (* Set)(void * , int);
317 int (* Get)(void * );
318 unsigned int (* IsSet)(void * );
322 unsigned int conversion;
323 unsigned int watcherOffset;
324 const char * category;
325 unsigned int compiled;
326 unsigned int selfWatchable;
327 unsigned int isWatchable;
330 extern void PrintType(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
336 struct TypeName * prev;
337 struct TypeName * next;
339 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
340 struct Declarator * declarator;
342 struct Expression * bitCount;
345 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
347 extern void InstDeclPassTypeName(struct TypeName * type, unsigned int param);
349 extern void FreeTypeName(struct TypeName * typeName);
355 struct Identifier * prev;
356 struct Identifier * next;
358 struct Symbol * classSym;
359 struct Specifier * _class;
361 struct Identifier * badID;
364 extern struct Symbol * FindClass(const char * name);
366 struct __ecereNameSpace__ecere__sys__BinaryTree;
368 struct __ecereNameSpace__ecere__sys__BinaryTree
370 struct __ecereNameSpace__ecere__sys__BTNode * root;
372 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
373 void (* FreeKey)(void * key);
380 struct Pointer * prev;
381 struct Pointer * next;
383 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
384 struct Pointer * pointer;
389 struct Declarator * prev;
390 struct Declarator * next;
393 struct Symbol * symbol;
394 struct Declarator * declarator;
397 struct Identifier * identifier;
400 struct Expression * exp;
401 struct Expression * posExp;
402 struct Attrib * attrib;
403 } ecere_gcc_struct structDecl;
406 struct Expression * exp;
407 struct Specifier * enumClass;
408 } ecere_gcc_struct array;
411 struct __ecereNameSpace__ecere__sys__OldList * parameters;
412 } ecere_gcc_struct function;
415 struct Pointer * pointer;
416 } ecere_gcc_struct pointer;
419 struct ExtDecl * extended;
420 } ecere_gcc_struct extended;
421 } ecere_gcc_struct __anon1;
432 struct Attribute * prev;
433 struct Attribute * next;
436 struct Expression * exp;
439 struct __ecereNameSpace__ecere__com__Module;
441 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(const char * name, const char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
443 struct __ecereNameSpace__ecere__com__DataMember;
445 struct __ecereNameSpace__ecere__com__DataMember
447 struct __ecereNameSpace__ecere__com__DataMember * prev;
448 struct __ecereNameSpace__ecere__com__DataMember * next;
450 unsigned int isProperty;
453 struct __ecereNameSpace__ecere__com__Class * _class;
454 const char * dataTypeString;
455 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
456 struct Type * dataType;
460 struct __ecereNameSpace__ecere__sys__OldList members;
461 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
463 short structAlignment;
464 short pointerAlignment;
471 struct AsmField * prev;
472 struct AsmField * next;
475 struct Expression * expression;
476 struct Identifier * symbolic;
483 struct Enumerator * prev;
484 struct Enumerator * next;
486 struct Identifier * id;
487 struct Expression * exp;
496 struct Initializer * prev;
497 struct Initializer * next;
502 struct Expression * exp;
503 struct __ecereNameSpace__ecere__sys__OldList * list;
504 } ecere_gcc_struct __anon1;
505 unsigned int isConstant;
506 struct Identifier * id;
511 struct MemberInit * prev;
512 struct MemberInit * next;
514 struct Location realLoc;
515 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
516 struct Initializer * initializer;
518 unsigned int variable;
519 unsigned int takeOutExp;
524 struct FunctionDefinition
526 struct FunctionDefinition * prev;
527 struct FunctionDefinition * next;
529 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
530 struct Declarator * declarator;
531 struct __ecereNameSpace__ecere__sys__OldList * declarations;
532 struct Statement * body;
533 struct __ecereNameSpace__ecere__com__Class * _class;
534 struct __ecereNameSpace__ecere__sys__OldList attached;
537 struct Symbol * propSet;
539 unsigned int propertyNoThis;
542 struct __ecereNameSpace__ecere__com__Method;
544 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
550 const char * dataTypeString;
551 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
552 } ecere_gcc_struct __anon1;
553 struct __ecereNameSpace__ecere__com__DataValue expression;
556 const char * memberString;
559 struct __ecereNameSpace__ecere__com__DataMember * member;
560 struct __ecereNameSpace__ecere__com__Property * prop;
561 struct __ecereNameSpace__ecere__com__Method * method;
562 } ecere_gcc_struct __anon1;
563 } ecere_gcc_struct __anon2;
564 } ecere_gcc_struct __anon1;
567 struct __ecereNameSpace__ecere__com__Method
570 struct __ecereNameSpace__ecere__com__Method * parent;
571 struct __ecereNameSpace__ecere__com__Method * left;
572 struct __ecereNameSpace__ecere__com__Method * right;
577 struct __ecereNameSpace__ecere__com__Class * _class;
579 const char * dataTypeString;
580 struct Type * dataType;
584 struct TemplateParameter;
588 struct Specifier * prev;
589 struct Specifier * next;
597 struct ExtDecl * extDecl;
599 struct Symbol * symbol;
600 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
601 struct Specifier * nsSpec;
602 } ecere_gcc_struct __anon1;
605 struct Identifier * id;
606 struct __ecereNameSpace__ecere__sys__OldList * list;
607 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
608 struct __ecereNameSpace__ecere__sys__OldList * definitions;
609 unsigned int addNameSpace;
610 struct Context * ctx;
611 struct ExtDecl * extDeclStruct;
612 } ecere_gcc_struct __anon2;
613 struct Expression * expression;
614 struct Specifier * _class;
615 struct TemplateParameter * templateParameter;
616 } ecere_gcc_struct __anon1;
619 struct TemplateParameter
621 struct TemplateParameter * prev;
622 struct TemplateParameter * next;
625 struct Identifier * identifier;
628 struct TemplateDatatype * dataType;
630 } ecere_gcc_struct __anon1;
631 struct TemplateArgument * defaultArgument;
632 const char * dataTypeString;
633 struct Type * baseType;
643 struct Symbol * _class;
646 struct __ecereNameSpace__ecere__sys__OldList members;
648 } ecere_gcc_struct __anon1;
651 struct Type * returnType;
652 struct __ecereNameSpace__ecere__sys__OldList params;
653 struct Symbol * thisClass;
654 unsigned int staticMethod;
655 struct TemplateParameter * thisClassTemplate;
656 } ecere_gcc_struct __anon2;
659 struct __ecereNameSpace__ecere__com__Method * method;
660 struct __ecereNameSpace__ecere__com__Class * methodClass;
661 struct __ecereNameSpace__ecere__com__Class * usedClass;
662 } ecere_gcc_struct __anon3;
665 struct Type * arrayType;
667 struct Expression * arraySizeExp;
668 unsigned int freeExp;
669 struct Symbol * enumClass;
670 } ecere_gcc_struct __anon4;
672 struct TemplateParameter * templateParameter;
673 } ecere_gcc_struct __anon1;
678 struct __ecereNameSpace__ecere__com__Class * thisClassFrom;
684 unsigned int isSigned : 1;
685 unsigned int constant : 1;
686 unsigned int truth : 1;
687 unsigned int byReference : 1;
688 unsigned int extraParam : 1;
689 unsigned int directClassAccess : 1;
690 unsigned int computing : 1;
691 unsigned int keepCast : 1;
692 unsigned int passAsTemplate : 1;
693 unsigned int dllExport : 1;
694 unsigned int attrStdcall : 1;
695 unsigned int declaredWithStruct : 1;
696 unsigned int typedByReference : 1;
697 unsigned int casted : 1;
698 unsigned int pointerAlignment : 1;
699 unsigned int isLong : 1;
706 struct Statement * prev;
707 struct Statement * next;
712 struct __ecereNameSpace__ecere__sys__OldList * expressions;
715 struct Identifier * id;
716 struct Statement * stmt;
717 } ecere_gcc_struct labeled;
720 struct Expression * exp;
721 struct Statement * stmt;
722 } ecere_gcc_struct caseStmt;
725 struct __ecereNameSpace__ecere__sys__OldList * declarations;
726 struct __ecereNameSpace__ecere__sys__OldList * statements;
727 struct Context * context;
728 unsigned int isSwitch;
729 } ecere_gcc_struct compound;
732 struct __ecereNameSpace__ecere__sys__OldList * exp;
733 struct Statement * stmt;
734 struct Statement * elseStmt;
735 } ecere_gcc_struct ifStmt;
738 struct __ecereNameSpace__ecere__sys__OldList * exp;
739 struct Statement * stmt;
740 } ecere_gcc_struct switchStmt;
743 struct __ecereNameSpace__ecere__sys__OldList * exp;
744 struct Statement * stmt;
745 } ecere_gcc_struct whileStmt;
748 struct __ecereNameSpace__ecere__sys__OldList * exp;
749 struct Statement * stmt;
750 } ecere_gcc_struct doWhile;
753 struct Statement * init;
754 struct Statement * check;
755 struct __ecereNameSpace__ecere__sys__OldList * increment;
756 struct Statement * stmt;
757 } ecere_gcc_struct forStmt;
760 struct Identifier * id;
761 } ecere_gcc_struct gotoStmt;
764 struct Specifier * spec;
766 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
767 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
768 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
769 } ecere_gcc_struct asmStmt;
772 struct Expression * watcher;
773 struct Expression * object;
774 struct __ecereNameSpace__ecere__sys__OldList * watches;
775 } ecere_gcc_struct _watch;
778 struct Identifier * id;
779 struct __ecereNameSpace__ecere__sys__OldList * exp;
780 struct __ecereNameSpace__ecere__sys__OldList * filter;
781 struct Statement * stmt;
782 } ecere_gcc_struct forEachStmt;
783 struct Declaration * decl;
784 } ecere_gcc_struct __anon1;
787 struct Instantiation;
791 struct Expression * prev;
792 struct Expression * next;
800 struct Identifier * identifier;
801 } ecere_gcc_struct __anon1;
802 struct Statement * compound;
803 struct Instantiation * instance;
807 unsigned int intlString;
808 unsigned int wideString;
809 } ecere_gcc_struct __anon2;
810 struct __ecereNameSpace__ecere__sys__OldList * list;
813 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
814 struct Declarator * decl;
815 } ecere_gcc_struct _classExp;
818 struct Identifier * id;
819 } ecere_gcc_struct classData;
822 struct Expression * exp;
823 struct __ecereNameSpace__ecere__sys__OldList * arguments;
824 struct Location argLoc;
825 } ecere_gcc_struct call;
828 struct Expression * exp;
829 struct __ecereNameSpace__ecere__sys__OldList * index;
830 } ecere_gcc_struct index;
833 struct Expression * exp;
834 struct Identifier * member;
836 unsigned int thisPtr;
837 } ecere_gcc_struct member;
841 struct Expression * exp1;
842 struct Expression * exp2;
843 } ecere_gcc_struct op;
844 struct TypeName * typeName;
845 struct Specifier * _class;
848 struct TypeName * typeName;
849 struct Expression * exp;
850 } ecere_gcc_struct cast;
853 struct Expression * cond;
854 struct __ecereNameSpace__ecere__sys__OldList * exp;
855 struct Expression * elseExp;
856 } ecere_gcc_struct cond;
859 struct TypeName * typeName;
860 struct Expression * size;
861 } ecere_gcc_struct _new;
864 struct TypeName * typeName;
865 struct Expression * size;
866 struct Expression * exp;
867 } ecere_gcc_struct _renew;
871 struct Identifier * id;
872 } ecere_gcc_struct db;
875 struct Expression * ds;
876 struct Expression * name;
877 } ecere_gcc_struct dbopen;
880 struct TypeName * typeName;
881 struct Initializer * initializer;
882 } ecere_gcc_struct initializer;
885 struct Expression * exp;
886 struct TypeName * typeName;
887 } ecere_gcc_struct vaArg;
888 } ecere_gcc_struct __anon1;
889 unsigned int debugValue;
890 struct __ecereNameSpace__ecere__com__DataValue val;
892 unsigned int hasAddress;
893 struct Type * expType;
894 struct Type * destType;
897 unsigned int byReference;
898 unsigned int isConstant;
899 unsigned int addedThis;
900 unsigned int needCast;
901 unsigned int thisPtr;
902 unsigned int opDestType;
903 unsigned int needTemplateCast;
908 struct Declaration * prev;
909 struct Declaration * next;
916 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
917 struct __ecereNameSpace__ecere__sys__OldList * declarators;
918 } ecere_gcc_struct __anon1;
919 struct Instantiation * inst;
922 struct Identifier * id;
923 struct Expression * exp;
924 } ecere_gcc_struct __anon2;
925 } ecere_gcc_struct __anon1;
926 struct Specifier * extStorage;
927 struct Symbol * symbol;
933 struct Instantiation * prev;
934 struct Instantiation * next;
936 struct Specifier * _class;
937 struct Expression * exp;
938 struct __ecereNameSpace__ecere__sys__OldList * members;
939 struct Symbol * symbol;
940 unsigned int fullSet;
941 unsigned int isConstant;
942 unsigned char * data;
943 struct Location nameLoc;
944 struct Location insideLoc;
948 struct ClassDefinition;
950 struct ClassDefinition
952 struct ClassDefinition * prev;
953 struct ClassDefinition * next;
955 struct Specifier * _class;
956 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
957 struct __ecereNameSpace__ecere__sys__OldList * definitions;
958 struct Symbol * symbol;
959 struct Location blockStart;
960 struct Location nameLoc;
962 unsigned int deleteWatchable;
965 struct __ecereNameSpace__ecere__com__NameSpace;
967 struct __ecereNameSpace__ecere__com__NameSpace
970 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
971 struct __ecereNameSpace__ecere__com__NameSpace * left;
972 struct __ecereNameSpace__ecere__com__NameSpace * right;
974 struct __ecereNameSpace__ecere__com__NameSpace * parent;
975 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
976 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
977 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
978 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
981 struct __ecereNameSpace__ecere__com__Class
983 struct __ecereNameSpace__ecere__com__Class * prev;
984 struct __ecereNameSpace__ecere__com__Class * next;
990 unsigned int (* Constructor)(void * );
991 void (* Destructor)(void * );
994 struct __ecereNameSpace__ecere__com__Class * base;
995 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
996 struct __ecereNameSpace__ecere__sys__BinaryTree members;
997 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
998 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
999 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
1000 struct __ecereNameSpace__ecere__sys__OldList derivatives;
1004 struct __ecereNameSpace__ecere__com__Instance * module;
1005 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
1006 const char * dataTypeString;
1007 struct Type * dataType;
1009 int defaultAlignment;
1010 void (* Initialize)();
1012 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
1013 const char * designerClass;
1014 unsigned int noExpansion;
1015 const char * defaultProperty;
1016 unsigned int comRedefinition;
1019 unsigned int internalDecl;
1021 unsigned int computeSize;
1022 short structAlignment;
1023 short pointerAlignment;
1024 int destructionWatchOffset;
1026 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
1027 int inheritanceAccess;
1028 const char * fullName;
1030 struct __ecereNameSpace__ecere__sys__OldList conversions;
1031 struct __ecereNameSpace__ecere__sys__OldList templateParams;
1032 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
1033 struct __ecereNameSpace__ecere__com__Class * templateClass;
1034 struct __ecereNameSpace__ecere__sys__OldList templatized;
1036 unsigned int isInstanceClass;
1037 unsigned int byValueSystemClass;
1040 struct __ecereNameSpace__ecere__com__Application
1043 const char * * argv;
1045 unsigned int isGUIApp;
1046 struct __ecereNameSpace__ecere__sys__OldList allModules;
1047 char * parsedCommand;
1048 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1051 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
1053 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
1055 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
1057 struct __ecereNameSpace__ecere__com__Module
1059 struct __ecereNameSpace__ecere__com__Instance * application;
1060 struct __ecereNameSpace__ecere__sys__OldList classes;
1061 struct __ecereNameSpace__ecere__sys__OldList defines;
1062 struct __ecereNameSpace__ecere__sys__OldList functions;
1063 struct __ecereNameSpace__ecere__sys__OldList modules;
1064 struct __ecereNameSpace__ecere__com__Instance * prev;
1065 struct __ecereNameSpace__ecere__com__Instance * next;
1071 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1072 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1075 static void OutputIdentifier(struct Identifier * id, struct __ecereNameSpace__ecere__com__Instance * f)
1081 if(id->_class->type == 8)
1083 if(id->_class->__anon1.templateParameter && id->_class->__anon1.templateParameter->identifier && id->_class->__anon1.templateParameter->identifier->string)
1084 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1085 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1087 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1088 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->__anon1.templateParameter->identifier->string);
1092 if(id->_class->__anon1.__anon1.name)
1094 if(!strcmp(id->_class->__anon1.__anon1.name, "class"))
1095 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1096 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1098 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1099 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
1101 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1102 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1104 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1105 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, id->_class->__anon1.__anon1.name);
1108 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1109 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1111 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1112 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "::");
1115 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1116 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1118 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1119 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, (id && id->string) ? id->string : "(null identifier)");
1122 static void OutputOperator(int op, struct __ecereNameSpace__ecere__com__Instance * f)
1127 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1128 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1130 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1131 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "++");
1134 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1135 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1137 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1138 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "--");
1141 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1142 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1144 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1145 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof ");
1148 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1149 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1151 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1152 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<");
1155 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1156 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1158 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1159 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>");
1162 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1163 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1165 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1166 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<=");
1169 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1170 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1172 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1173 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">=");
1176 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1177 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1179 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1180 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "==");
1183 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1184 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1186 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1187 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "!=");
1190 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1191 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1193 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1194 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&&");
1197 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1198 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1200 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1201 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "||");
1204 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1205 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1207 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1208 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*=");
1211 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1212 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1214 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1215 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "/=");
1218 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1219 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1221 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1222 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "%=");
1225 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1226 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1228 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1229 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "+=");
1232 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1233 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1235 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1236 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "-=");
1239 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1240 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1242 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1243 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "<<=");
1246 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1247 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1249 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1250 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ">>=");
1253 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1254 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1256 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1257 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "&=");
1260 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1261 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1263 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1264 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "^=");
1267 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1268 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1270 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1271 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "|=");
1286 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, char ch))__extension__ ({
1287 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1289 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1290 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Putc])(f, (char)op);
1293 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1294 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1296 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1297 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "delete ");
1302 void __ecereUnregisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
1307 struct ClassFunction;
1311 struct ClassDef * prev;
1312 struct ClassDef * next;
1313 struct Location loc;
1317 struct Declaration * decl;
1318 struct ClassFunction * function;
1319 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
1320 struct PropertyDef * propertyDef;
1321 struct PropertyWatch * propertyWatch;
1323 struct Identifier * defaultProperty;
1326 struct Identifier * id;
1327 struct Initializer * initializer;
1328 } ecere_gcc_struct __anon1;
1329 } ecere_gcc_struct __anon1;
1336 struct MembersInit * prev;
1337 struct MembersInit * next;
1338 struct Location loc;
1342 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
1343 struct ClassFunction * function;
1344 } ecere_gcc_struct __anon1;
1347 struct ClassFunction
1349 struct ClassFunction * prev;
1350 struct ClassFunction * next;
1351 struct Location loc;
1352 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1353 struct Declarator * declarator;
1354 struct __ecereNameSpace__ecere__sys__OldList * declarations;
1355 struct Statement * body;
1356 struct __ecereNameSpace__ecere__com__Class * _class;
1357 struct __ecereNameSpace__ecere__sys__OldList attached;
1360 struct Symbol * propSet;
1361 unsigned int isVirtual;
1362 unsigned int isConstructor;
1363 unsigned int isDestructor;
1364 unsigned int dontMangle;
1369 struct InitDeclarator;
1371 struct InitDeclarator
1373 struct InitDeclarator * prev;
1374 struct InitDeclarator * next;
1375 struct Location loc;
1376 struct Declarator * declarator;
1377 struct Initializer * initializer;
1382 typedef union YYSTYPE
1387 struct Identifier * id;
1388 struct Expression * exp;
1389 struct Specifier * specifier;
1390 struct __ecereNameSpace__ecere__sys__OldList * list;
1391 struct Enumerator * enumerator;
1392 struct Declarator * declarator;
1393 struct Pointer * pointer;
1394 struct Initializer * initializer;
1395 struct InitDeclarator * initDeclarator;
1396 struct TypeName * typeName;
1397 struct Declaration * declaration;
1398 struct Statement * stmt;
1399 struct FunctionDefinition * function;
1400 struct External * external;
1401 struct Context * context;
1402 struct AsmField * asmField;
1403 struct Attrib * attrib;
1404 struct ExtDecl * extDecl;
1405 struct Attribute * attribute;
1406 struct Instantiation * instance;
1407 struct MembersInit * membersInit;
1408 struct MemberInit * memberInit;
1409 struct ClassFunction * classFunction;
1410 struct ClassDefinition * _class;
1411 struct ClassDef * classDef;
1412 struct PropertyDef * prop;
1414 struct Symbol * symbol;
1415 struct PropertyWatch * propertyWatch;
1416 struct TemplateParameter * templateParameter;
1417 struct TemplateArgument * templateArgument;
1418 struct TemplateDatatype * templateDatatype;
1419 struct DBTableEntry * dbtableEntry;
1420 struct DBIndexItem * dbindexItem;
1421 struct DBTableDef * dbtableDef;
1422 } ecere_gcc_struct YYSTYPE;
1424 extern YYSTYPE yylval;
1429 struct Symbol * parent;
1430 struct Symbol * left;
1431 struct Symbol * right;
1436 struct __ecereNameSpace__ecere__com__Method * method;
1437 struct __ecereNameSpace__ecere__com__Property * _property;
1438 struct __ecereNameSpace__ecere__com__Class * registered;
1439 } ecere_gcc_struct __anon1;
1440 unsigned int notYetDeclared;
1445 struct External * pointerExternal;
1446 struct External * structExternal;
1447 } ecere_gcc_struct __anon1;
1450 struct External * externalGet;
1451 struct External * externalSet;
1452 struct External * externalPtr;
1453 struct External * externalIsSet;
1454 } ecere_gcc_struct __anon2;
1457 struct External * methodExternal;
1458 struct External * methodCodeExternal;
1459 } ecere_gcc_struct __anon3;
1460 } ecere_gcc_struct __anon2;
1461 unsigned int imported;
1462 unsigned int declaredStructSym;
1463 struct __ecereNameSpace__ecere__com__Class * _class;
1464 unsigned int declaredStruct;
1465 unsigned int needConstructor;
1466 unsigned int needDestructor;
1467 char * constructorName;
1470 char * destructorName;
1471 struct ModuleImport * module;
1472 struct ClassImport * _import;
1473 struct Location nameLoc;
1474 unsigned int isParam;
1475 unsigned int isRemote;
1476 unsigned int isStruct;
1477 unsigned int fireWatchersDone;
1479 unsigned int classData;
1480 unsigned int isStatic;
1482 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
1483 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
1484 struct Context * ctx;
1486 struct Expression * propCategory;
1487 unsigned int mustRegister;
1492 struct External * prev;
1493 struct External * next;
1494 struct Location loc;
1496 struct Symbol * symbol;
1499 struct FunctionDefinition * function;
1500 struct ClassDefinition * _class;
1501 struct Declaration * declaration;
1502 char * importString;
1503 struct Identifier * id;
1504 struct DBTableDef * table;
1505 } ecere_gcc_struct __anon1;
1507 struct External * fwdDecl;
1508 struct __ecereNameSpace__ecere__com__Instance * outgoing;
1509 struct __ecereNameSpace__ecere__com__Instance * incoming;
1510 int nonBreakableIncoming;
1513 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1515 static void OutputPointer(struct Pointer * ptr, struct __ecereNameSpace__ecere__com__Instance * f)
1517 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1518 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1520 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1521 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "*");
1524 struct Specifier * spec;
1526 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1527 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1529 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1530 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1531 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
1533 OutputSpecifier(spec, f, 0);
1535 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1536 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1538 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1539 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1544 OutputPointer(ptr->pointer, f);
1548 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f);
1550 static void OutputAsmField(struct AsmField * field, struct __ecereNameSpace__ecere__com__Instance * f)
1554 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1555 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1557 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1558 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1559 OutputIdentifier(field->symbolic, f);
1560 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1561 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1563 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1564 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1566 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1567 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1569 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1570 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, field->command);
1571 if(field->expression)
1573 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1574 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1576 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1577 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1578 OutputExpression(field->expression, f);
1579 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1580 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1582 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1583 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1587 static void OutputEnumerator(struct Enumerator * enumerator, struct __ecereNameSpace__ecere__com__Instance * f)
1589 OutputIdentifier(enumerator->id, f);
1592 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1593 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1595 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1596 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " = ");
1597 OutputExpression(enumerator->exp, f);
1601 static void OutputAttribute(struct Attribute * attr, struct __ecereNameSpace__ecere__com__Instance * f)
1604 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1605 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1607 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1608 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, attr->attr);
1611 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1612 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1614 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1615 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1616 OutputExpression(attr->exp, f);
1620 static void OutputInitializer(struct Initializer * initializer, struct __ecereNameSpace__ecere__com__Instance * f)
1622 char name[274] = "";
1623 char origName[274] = "";
1627 GetSourceName(name, initializer->loc.start.included ? GetIncludeFileFromID(initializer->loc.start.included) : (((void *)0)));
1628 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
1629 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
1631 if(initializer->type == 1)
1632 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1633 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1635 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1636 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
1639 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1640 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1642 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1643 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
1644 OutputIdentifier(initializer->id, f);
1645 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1646 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1648 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1649 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
1651 switch(initializer->type)
1655 struct Initializer * init;
1658 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1659 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1661 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1662 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1663 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1664 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1666 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1667 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
1669 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
1671 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
1674 for(init = (*initializer->__anon1.list).first; init; init = init->next)
1676 OutputInitializer(init, f);
1678 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1679 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1681 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1682 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, init->next->type == 1 ? "," : ", ");
1684 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1685 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1687 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1688 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
1689 if(inCompiler && outputLineNumbers && initializer->loc.start.line)
1691 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", initializer->loc.start.line, name);
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, " ");
1704 if(initializer->__anon1.exp)
1705 OutputExpression(initializer->__anon1.exp, f);
1710 static void OutputAttrib(struct Attrib * attr, struct __ecereNameSpace__ecere__com__Instance * f)
1715 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1716 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1718 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1719 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute__((");
1722 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1723 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1725 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1726 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute((");
1729 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1730 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1732 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1733 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__attribute_deprecated__((");
1738 struct Attribute * attrib;
1740 for(attrib = (*attr->attribs).first; attrib; attrib = attrib->next)
1743 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1744 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1746 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1747 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1748 OutputAttribute(attrib, f);
1751 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1752 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1754 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1755 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "))");
1758 static void OutputMemberInit(struct MemberInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
1760 if(init->identifiers)
1762 if((*init->identifiers).count > 1)
1764 struct Identifier * id;
1766 for(id = (*init->identifiers).first; id; id = id->next)
1768 OutputIdentifier(id, f);
1770 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1771 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1773 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1774 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
1777 else if((*init->identifiers).first)
1778 OutputIdentifier((*init->identifiers).first, f);
1779 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1780 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1782 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1783 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
1784 if(init->initializer && init->initializer->type == 0)
1785 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1786 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1788 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1789 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1791 if(init->initializer)
1792 OutputInitializer(init->initializer, f);
1795 static void OutputExtDecl(struct ExtDecl * extDecl, struct __ecereNameSpace__ecere__com__Instance * f)
1797 if(extDecl->type == 0 && extDecl->__anon1.s)
1798 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1799 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1801 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1802 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, extDecl->__anon1.s);
1803 else if(extDecl->type == 1)
1804 OutputAttrib(extDecl->__anon1.attr, f);
1807 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1809 static void OutputDeclarator(struct Declarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
1814 if(decl->declarator)
1816 OutputDeclarator(decl->declarator, f);
1818 if(decl->__anon1.structDecl.exp)
1820 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1821 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1823 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1824 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1825 OutputExpression(decl->__anon1.structDecl.exp, f);
1827 if(decl->__anon1.structDecl.posExp)
1829 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1830 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1832 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1833 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
1834 OutputExpression(decl->__anon1.structDecl.posExp, f);
1836 if(decl->__anon1.structDecl.attrib)
1838 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1839 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1841 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1842 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1843 OutputAttrib(decl->__anon1.structDecl.attrib, f);
1847 OutputIdentifier(decl->__anon1.identifier, f);
1850 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1851 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1853 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1854 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1855 OutputDeclarator(decl->declarator, f);
1856 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1857 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1859 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1860 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1863 if(decl->__anon1.extended.extended)
1864 OutputExtDecl(decl->__anon1.extended.extended, f);
1865 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1866 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1868 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1869 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1870 OutputDeclarator(decl->declarator, f);
1873 OutputDeclarator(decl->declarator, f);
1874 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1875 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1877 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1878 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1879 if(decl->__anon1.extended.extended)
1880 OutputExtDecl(decl->__anon1.extended.extended, f);
1883 if(decl->declarator)
1885 OutputDeclarator(decl->declarator, f);
1887 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1888 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1890 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1891 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
1892 if(decl->__anon1.array.exp)
1894 ProcessExpressionType(decl->__anon1.array.exp);
1895 ComputeExpression(decl->__anon1.array.exp);
1896 OutputExpression(decl->__anon1.array.exp, f);
1898 else if(decl->__anon1.array.enumClass)
1900 struct Symbol * _class = decl->__anon1.array.enumClass->__anon1.__anon1.symbol;
1902 if(_class && _class->__anon1.registered)
1904 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%d", (int)__ecereNameSpace__ecere__com__eClass_GetProperty(_class->__anon1.registered, "enumSize"));
1907 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1908 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1910 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1911 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
1915 struct TypeName * param;
1917 if(decl->declarator)
1918 OutputDeclarator(decl->declarator, f);
1919 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1920 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1922 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1923 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
1924 if(decl->__anon1.function.parameters && (*decl->__anon1.function.parameters).first)
1926 for(param = (*decl->__anon1.function.parameters).first; param; param = param->next)
1928 OutputTypeName(param, f, 0);
1930 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1931 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1933 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1934 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
1937 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1938 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1940 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1941 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
1945 if(decl->__anon1.pointer.pointer)
1946 OutputPointer(decl->__anon1.pointer.pointer, f);
1947 if(decl->declarator)
1949 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1950 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1952 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1953 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
1954 OutputDeclarator(decl->declarator, f);
1960 char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
1963 struct TypeName * typeName = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
1964 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
1967 typeName->qualifiers = specs;
1968 typeName->declarator = decl;
1969 OutputTypeName(typeName, f, 1);
1970 ((typeName ? (__ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor((void *)typeName) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(typeName)) : 0), typeName = 0);
1971 size = ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1972 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1974 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1975 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_GetSize])(f);
1976 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (size + 1));
1977 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
1978 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1980 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1981 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(f, 0, 0);
1982 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
1983 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1985 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1986 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(f, string, 1, (unsigned int)size);
1987 string[size] = '\0';
1988 __ecereNameSpace__ecere__sys__TrimRSpaces(string, string);
1989 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
1993 void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
1995 if(type->qualifiers)
1997 struct Specifier * spec;
1999 for(spec = (*type->qualifiers).first; spec; spec = spec->next)
2001 OutputSpecifier(spec, f, typeName);
2003 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2004 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2006 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2007 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2010 if(type->declarator)
2012 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2013 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2015 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2016 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2017 OutputDeclarator(type->declarator, f);
2019 if(!type->qualifiers && !type->declarator)
2020 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2021 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2023 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2024 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "...");
2027 static void OutputInitDeclarator(struct InitDeclarator * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2029 OutputDeclarator(decl->declarator, f);
2030 if(decl->initializer)
2032 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2033 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2035 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2036 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " =");
2037 if(decl->initializer->type == 0)
2038 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2039 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2041 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2042 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2043 OutputInitializer(decl->initializer, f);
2047 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f);
2049 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f);
2051 static void OutputSpecifier(struct Specifier * spec, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName)
2056 switch(spec->__anon1.specifier)
2059 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2060 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2062 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2063 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef");
2066 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2067 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2069 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2070 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "extern");
2073 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2074 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2076 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2077 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static");
2080 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2081 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2083 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2084 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "auto");
2087 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2088 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2090 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2091 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "register");
2094 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2095 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2097 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2098 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__thread");
2101 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2102 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2104 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2105 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "const");
2108 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2109 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2111 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2112 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "volatile");
2115 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2116 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2118 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2119 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "void");
2122 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2123 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2125 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2126 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "char");
2130 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2131 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2133 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2134 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Bool");
2137 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2138 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2140 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2141 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Complex");
2144 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2145 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2147 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2148 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "_Imaginary");
2151 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2152 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2154 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2155 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "restrict");
2158 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2159 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2161 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2162 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "short");
2165 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2166 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2168 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2169 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "int");
2172 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2173 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2175 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2176 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "uint" : "unsigned int");
2179 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2180 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2182 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2183 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, typeName ? "int64" : "long long");
2186 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2187 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2189 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2190 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_list");
2193 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2194 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2196 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2197 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "long");
2200 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2201 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2203 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2204 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "float");
2207 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2208 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2210 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2211 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "double");
2214 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2215 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2217 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2218 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "signed");
2221 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2222 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2224 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2225 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "unsigned");
2228 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2229 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2231 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2232 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
2235 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2236 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2238 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2239 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "any_object");
2242 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2243 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2245 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2246 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class");
2249 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2250 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2252 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2253 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "thisclass");
2258 if(spec->__anon1.__anon1.extDecl)
2259 OutputExtDecl(spec->__anon1.__anon1.extDecl, f);
2262 if(spec->__anon1.__anon1.name && !strcmp(spec->__anon1.__anon1.name, "class"))
2264 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2265 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2267 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2268 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typed_object");
2272 struct Symbol * symbol = spec->__anon1.__anon1.symbol;
2274 if(!symbol && spec->__anon1.__anon1.name)
2275 symbol = FindClass(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, symbol->string ? symbol->string : "(null)");
2284 else if(spec->__anon1.__anon1.name)
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, spec->__anon1.__anon1.name);
2294 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2295 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2297 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2298 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "enum");
2299 if(spec->__anon1.__anon2.id)
2301 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2302 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2304 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2305 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2306 OutputIdentifier(spec->__anon1.__anon2.id, f);
2308 if(spec->__anon1.__anon2.list)
2310 struct Enumerator * enumerator;
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{\n");
2318 for(enumerator = (*spec->__anon1.__anon2.list).first; enumerator; enumerator = enumerator->next)
2320 OutputEnumerator(enumerator, f);
2321 if(enumerator->next)
2322 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2323 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2325 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2326 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2328 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2329 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2331 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2332 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n}");
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, (spec->type == 3) ? "struct" : "union");
2345 if(spec->__anon1.__anon2.extDeclStruct)
2347 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2348 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2350 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2351 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2352 OutputExtDecl(spec->__anon1.__anon2.extDeclStruct, f);
2354 if(spec->__anon1.__anon2.id)
2356 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2357 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2359 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2360 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2361 OutputIdentifier(spec->__anon1.__anon2.id, f);
2363 if(spec->__anon1.__anon2.definitions)
2365 struct ClassDef * def;
2367 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2368 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2370 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2371 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2373 for(def = (*spec->__anon1.__anon2.definitions).first; def; def = def->next)
2375 OutputClassDef(def, f);
2377 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2378 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2380 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2381 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "} ecere_gcc_struct");
2386 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2387 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2389 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2390 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__typeof(");
2391 OutputExpression(spec->__anon1.expression, f);
2392 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2393 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2395 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2396 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2399 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2400 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2402 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2403 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "subclass(");
2404 OutputSpecifier(spec->__anon1._class, f, 0);
2405 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2406 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2408 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2409 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
2412 OutputIdentifier(spec->__anon1.templateParameter->identifier, f);
2417 static void OutputClass(struct ClassDefinition * _class, struct __ecereNameSpace__ecere__com__Instance * f)
2419 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2420 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2422 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2423 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class ");
2424 OutputSpecifier(_class->_class, f, 0);
2425 if(_class->baseSpecs)
2427 struct Specifier * spec;
2429 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2430 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2432 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2433 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
2434 for(spec = (*_class->baseSpecs).first; spec; spec = spec->next)
2436 OutputSpecifier(spec, f, 0);
2439 if(_class->definitions)
2441 struct ClassDef * def;
2443 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2444 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2446 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2447 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2449 for(def = (*_class->definitions).first; def; def = def->next)
2451 OutputClassDef(def, f);
2453 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2454 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2456 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2457 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
2461 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2462 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2464 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2465 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2468 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f);
2470 static void OutputInstance(struct Instantiation * inst, struct __ecereNameSpace__ecere__com__Instance * f)
2473 OutputSpecifier(inst->_class, f, 0);
2476 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2477 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2479 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2480 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2481 OutputExpression(inst->exp, f);
2483 if(inst->members && (*inst->members).count > 1)
2485 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2486 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2488 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2489 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n{\n");
2492 else if(inst->members)
2493 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2494 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2496 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2497 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " { ");
2499 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2500 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2502 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2503 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{");
2506 struct MembersInit * init;
2508 for(init = (*inst->members).first; init; init = init->next)
2510 OutputMembersInit(init, f);
2511 if(init->type == 0 && init->next)
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, ";\n");
2523 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2524 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2526 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2527 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }");
2529 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2530 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2532 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2533 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2536 static void OutputDeclaration(struct Declaration * decl, struct __ecereNameSpace__ecere__com__Instance * f)
2538 struct Specifier * spec;
2544 strcpy(origName, outputFile);
2545 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
2547 GetSourceName(name, decl->loc.start.included ? GetIncludeFileFromID(decl->loc.start.included) : (((void *)0)));
2548 if(inCompiler && outputLineNumbers && decl->loc.start.line)
2550 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", decl->loc.start.line, name);
2557 struct InitDeclarator * d;
2559 if(decl->__anon1.__anon1.specifiers)
2561 unsigned int inTypeDef = 0;
2563 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
2565 if(spec->type == 0 && spec->__anon1.specifier == TYPEDEF)
2567 OutputSpecifier(spec, f, inTypeDef && !spec->next);
2569 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2570 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2572 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2573 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2576 if(decl->__anon1.__anon1.declarators && (*decl->__anon1.__anon1.declarators).first)
2578 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2579 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2581 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2582 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2583 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
2585 OutputInitDeclarator(d, f);
2587 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2588 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2590 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2591 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2598 if(decl->__anon1.__anon1.specifiers)
2600 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
2602 OutputSpecifier(spec, f, 0);
2604 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2605 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2607 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2608 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2611 if(decl->__anon1.__anon1.declarators)
2613 struct Declarator * d;
2615 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2616 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2618 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2619 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2620 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
2622 OutputDeclarator(d, f);
2624 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2625 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2627 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2628 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2631 if(decl->extStorage)
2633 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2634 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2636 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2637 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2638 OutputSpecifier(decl->extStorage, f, 0);
2643 if(decl->__anon1.inst)
2645 OutputInstance(decl->__anon1.inst, f);
2651 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2652 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2654 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2655 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n");
2657 if(inCompiler && outputLineNumbers && decl->loc.start.line)
2659 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
2664 static void OutputStatement(struct Statement * stmt, struct __ecereNameSpace__ecere__com__Instance * f)
2666 char name[274] = "";
2667 char origName[274] = "";
2671 GetSourceName(name, stmt->loc.start.included ? GetIncludeFileFromID(stmt->loc.start.included) : (((void *)0)));
2672 __ecereNameSpace__ecere__sys__PathCat(origName, outputFile);
2673 __ecereNameSpace__ecere__sys__ChangeCh(origName, '\\', '/');
2675 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
2677 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.start.line, name);
2683 OutputDeclaration(stmt->__anon1.decl, f);
2686 OutputIdentifier(stmt->__anon1.labeled.id, f);
2687 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2688 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2690 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2691 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2693 if(stmt->__anon1.labeled.stmt)
2695 if(stmt->__anon1.labeled.stmt->type == 14)
2696 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2697 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2699 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2700 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2701 OutputStatement(stmt->__anon1.labeled.stmt, f);
2705 if(stmt->__anon1.caseStmt.exp)
2707 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2708 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2710 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2711 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "case ");
2712 OutputExpression(stmt->__anon1.caseStmt.exp, f);
2713 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2714 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2716 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2717 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":\n");
2722 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2723 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2725 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2726 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
2729 if(stmt->__anon1.caseStmt.stmt)
2731 if(stmt->__anon1.caseStmt.stmt->type == 14)
2732 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2733 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2735 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2736 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "; ");
2737 OutputStatement(stmt->__anon1.caseStmt.stmt, f);
2742 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2743 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2745 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2746 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "{\n");
2748 if(stmt->__anon1.compound.declarations)
2750 struct Declaration * decl;
2752 for(decl = (*stmt->__anon1.compound.declarations).first; decl; decl = decl->next)
2754 OutputDeclaration(decl, f);
2757 if(stmt->__anon1.compound.statements)
2759 struct Statement * statement;
2761 if(stmt->__anon1.compound.declarations)
2763 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2764 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2766 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2767 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2770 for(statement = (*stmt->__anon1.compound.statements).first; statement; statement = statement->next)
2772 OutputStatement(statement, f);
2773 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2774 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2776 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2777 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2781 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2783 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2786 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2787 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2789 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2790 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}");
2795 if(stmt->__anon1.expressions)
2797 struct Expression * exp;
2799 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
2801 OutputExpression(exp, f);
2803 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2804 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2806 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2807 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2810 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2811 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2813 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2814 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
2819 struct Expression * exp;
2821 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2822 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2824 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2825 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "if(");
2826 for(exp = (*stmt->__anon1.ifStmt.exp).first; exp; exp = exp->next)
2828 OutputExpression(exp, f);
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, ", ");
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, ")\n");
2842 if(stmt->__anon1.ifStmt.stmt)
2843 OutputStatement(stmt->__anon1.ifStmt.stmt, f);
2844 if(stmt->__anon1.ifStmt.elseStmt)
2846 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2847 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2849 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2850 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2852 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2853 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2855 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2856 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "else");
2857 if(stmt->__anon1.ifStmt.elseStmt->type != 4)
2859 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2860 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2862 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2863 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2867 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2868 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2870 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2871 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2872 OutputStatement(stmt->__anon1.ifStmt.elseStmt, f);
2878 struct Expression * exp;
2880 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2881 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2883 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2884 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "switch(");
2885 if(stmt->__anon1.switchStmt.exp)
2887 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2889 OutputExpression(exp, f);
2891 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2892 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2894 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2895 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2898 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2899 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2901 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2902 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2904 OutputStatement(stmt->__anon1.switchStmt.stmt, f);
2909 struct Expression * exp;
2911 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2912 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2914 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2915 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2916 if(stmt->__anon1.switchStmt.exp)
2918 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2920 OutputExpression(exp, f);
2922 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2923 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2925 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2926 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2929 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2930 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2932 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2933 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
2935 OutputStatement(stmt->__anon1.whileStmt.stmt, f);
2940 struct Expression * exp;
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, "do\n");
2948 OutputStatement(stmt->__anon1.whileStmt.stmt, f);
2949 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2950 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2952 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2953 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "while(");
2954 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
2956 OutputExpression(exp, f);
2958 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2959 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2961 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2962 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
2964 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2965 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2967 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2968 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");");
2973 struct Expression * exp;
2975 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2976 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2978 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2979 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "for(");
2980 OutputStatement(stmt->__anon1.forStmt.init, f);
2981 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2982 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2984 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2985 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
2986 OutputStatement(stmt->__anon1.forStmt.check, 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, " ");
2992 if(stmt->__anon1.forStmt.increment)
2994 if(inCompiler && outputLineNumbers && stmt->loc.end.line)
2996 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", stmt->loc.end.line, name);
2999 for(exp = (*stmt->__anon1.forStmt.increment).first; exp; exp = exp->next)
3001 OutputExpression(exp, f);
3003 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3004 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3006 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3007 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3010 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3011 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3013 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3014 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")\n");
3016 OutputStatement(stmt->__anon1.forStmt.stmt, f);
3021 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3022 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3024 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3025 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "goto ");
3026 OutputIdentifier(stmt->__anon1.gotoStmt.id, f);
3027 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3028 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3030 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3031 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3035 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3036 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3038 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3039 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "continue;");
3042 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3043 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3045 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3046 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "break;");
3050 struct Expression * exp;
3052 if(inCompiler && memoryGuard)
3054 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
3055 struct Type * returnType = exp ? (exp->destType ? exp->destType : exp->expType) : (((void *)0));
3057 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{ ");
3058 if(returnType && returnType->kind != 0)
3060 char string[1024] = "";
3061 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
3062 struct Declarator * decl;
3063 struct TypeName * typeName;
3065 if(returnType->kind == 20)
3067 if(returnType->__anon1.templateParameter->dataTypeString)
3068 decl = SpecDeclFromString(returnType->__anon1.templateParameter->dataTypeString, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3069 else if(returnType->__anon1.templateParameter->__anon1.dataType)
3071 (__ecereNameSpace__ecere__com__eSystem_Delete(specs), specs = 0);
3072 specs = CopyList(returnType->__anon1.templateParameter->__anon1.dataType->specifiers, (void *)(CopySpecifier));
3073 decl = PlugDeclarator(returnType->__anon1.templateParameter->__anon1.dataType->decl, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3077 ListAdd(specs, MkSpecifierName("uint64"));
3078 decl = MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal"));
3083 if(returnType->passAsTemplate)
3084 strcpy(string, "uint64");
3086 PrintType(returnType, string, returnType->kind == 18 ? 1 : 0, 1);
3087 decl = SpecDeclFromString(string, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereReturnVal")));
3089 typeName = MkTypeName(specs, decl);
3090 InstDeclPassTypeName(typeName, 0);
3091 OutputTypeName(typeName, f, 0);
3092 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";");
3093 FreeTypeName(typeName);
3097 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3098 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3100 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3101 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "return ");
3104 struct Expression * exp = stmt->__anon1.expressions ? (*stmt->__anon1.expressions).last : (((void *)0));
3106 if(exp && exp->expType && exp->expType->kind != 0)
3107 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereReturnVal = ");
3109 if(stmt->__anon1.expressions)
3111 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
3113 OutputExpression(exp, f);
3115 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3116 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3118 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3119 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3122 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3123 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3125 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3126 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3127 if(inCompiler && memoryGuard)
3129 struct Expression * exp = stmt->__anon1.expressions ? (struct Expression *)(*stmt->__anon1.expressions).last : (((void *)0));
3131 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();");
3132 if(exp && exp->expType && exp->expType->kind != 0)
3133 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return __ecereReturnVal;");
3135 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "return;");
3136 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}");
3142 struct AsmField * field;
3144 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3145 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3147 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3148 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__asm__ ");
3149 if(stmt->__anon1.asmStmt.spec)
3150 OutputSpecifier(stmt->__anon1.asmStmt.spec, f, 0);
3151 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3152 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3154 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3155 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3156 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3157 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3159 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3160 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, stmt->__anon1.asmStmt.statements);
3161 if(stmt->__anon1.asmStmt.inputFields || stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
3163 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3164 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3166 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3167 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
3168 if(stmt->__anon1.asmStmt.inputFields)
3170 for(field = (*stmt->__anon1.asmStmt.inputFields).first; field; field = field->next)
3173 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3174 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3176 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3177 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
3178 OutputAsmField(field, f);
3182 if(stmt->__anon1.asmStmt.outputFields || stmt->__anon1.asmStmt.clobberedFields)
3184 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3185 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3187 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3188 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ":");
3189 if(stmt->__anon1.asmStmt.outputFields)
3191 for(field = (*stmt->__anon1.asmStmt.outputFields).first; field; field = field->next)
3194 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3195 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3197 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3198 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
3199 OutputAsmField(field, f);
3203 if(stmt->__anon1.asmStmt.clobberedFields)
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, ":");
3210 for(field = (*stmt->__anon1.asmStmt.clobberedFields).first; field; field = field->next)
3213 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3214 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3216 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3217 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ",");
3218 OutputAsmField(field, f);
3221 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3222 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3224 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3225 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ");\n");
3230 if(inCompiler && outputLineNumbers && stmt->loc.start.line)
3232 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", outputLine + 2, origName);
3237 void OutputTree(struct __ecereNameSpace__ecere__sys__OldList * ast, struct __ecereNameSpace__ecere__com__Instance * f)
3239 struct External * external;
3242 for(external = ast->first; external; external = external->next)
3244 switch(external->type)
3247 OutputFunction(external->__anon1.function, f);
3248 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3249 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3251 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3252 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3256 if(external->__anon1.declaration)
3257 OutputDeclaration(external->__anon1.declaration, f);
3258 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3259 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3261 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3262 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3266 OutputClass(external->__anon1._class, f);
3267 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3268 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3270 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3271 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3278 void OutputExternal(struct External * external, struct __ecereNameSpace__ecere__com__Instance * f)
3280 switch(external->type)
3283 OutputFunction(external->__anon1.function, f);
3284 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3285 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3287 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3288 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3292 if(external->__anon1.declaration)
3293 OutputDeclaration(external->__anon1.declaration, f);
3294 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3295 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3297 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3298 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3302 OutputClass(external->__anon1._class, f);
3303 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3304 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3306 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3307 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3313 void OutputExpression(struct Expression * exp, struct __ecereNameSpace__ecere__com__Instance * f)
3318 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3319 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3321 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3322 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "class(");
3323 if(exp->__anon1._classExp.specifiers)
3325 struct Specifier * spec;
3327 for(spec = (*exp->__anon1._classExp.specifiers).first; spec; spec = spec->next)
3329 OutputSpecifier(spec, f, 0);
3331 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3332 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3334 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3335 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3337 if(exp->__anon1._classExp.decl)
3339 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3340 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3342 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3343 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3344 OutputDeclarator(exp->__anon1._classExp.decl, f);
3346 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3347 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3349 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3350 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3354 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3355 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3357 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3358 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__extension__ (");
3359 OutputStatement(exp->__anon1.compound, f);
3360 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3361 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3363 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3364 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3365 if(inCompiler && outputLineNumbers && exp->loc.end.line)
3367 char name[274] = "";
3369 GetSourceName(name, exp->loc.end.included ? GetIncludeFileFromID(exp->loc.end.included) : (((void *)0)));
3370 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n#line %d \"%s\"\n", exp->loc.end.line, name);
3375 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3376 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3378 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3379 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new ");
3380 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3381 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3383 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3384 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3385 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
3386 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3387 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3389 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3390 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3391 OutputExpression(exp->__anon1._renew.size, f);
3392 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3393 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3395 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3396 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3399 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3400 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3402 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3403 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "new0 ");
3404 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3405 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3407 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3408 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3409 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
3410 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3411 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3413 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3414 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3415 OutputExpression(exp->__anon1._renew.size, f);
3416 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3417 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3419 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3420 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3423 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3424 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3426 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3427 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew ");
3428 OutputExpression(exp->__anon1._renew.exp, f);
3429 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3430 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3432 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3433 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3434 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
3435 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3436 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3438 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3439 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3440 OutputExpression(exp->__anon1._renew.size, f);
3441 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3442 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3444 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3445 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3448 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3449 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3451 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3452 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "renew0 ");
3453 OutputExpression(exp->__anon1._renew.exp, f);
3454 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3455 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3457 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3458 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3459 OutputTypeName(exp->__anon1._renew.typeName, f, 0);
3460 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3461 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3463 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3464 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3465 OutputExpression(exp->__anon1._renew.size, f);
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, "]");
3473 if(exp->__anon1.__anon1.identifier)
3474 OutputIdentifier(exp->__anon1.__anon1.identifier, f);
3477 if(exp->__anon1.instance)
3478 OutputInstance(exp->__anon1.instance, f);
3481 if(exp->__anon1.__anon1.constant)
3482 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3483 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3485 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3486 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->__anon1.__anon1.constant);
3489 if(exp->__anon1.__anon2.string)
3490 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3491 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3493 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3494 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, exp->__anon1.__anon2.string);
3497 if(exp->__anon1.op.exp1)
3499 OutputExpression(exp->__anon1.op.exp1, f);
3500 if(exp->__anon1.op.exp2)
3501 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3502 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3504 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3505 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3507 OutputOperator(exp->__anon1.op.op, f);
3508 if(exp->__anon1.op.exp2)
3510 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))
3511 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3512 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3514 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3515 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3516 OutputExpression(exp->__anon1.op.exp2, f);
3522 struct Expression * expression;
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, "__extension__ (");
3530 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3531 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3533 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3534 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3535 if(exp->__anon1.list)
3537 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
3539 OutputExpression(expression, f);
3540 if(expression->next)
3541 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3542 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3544 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3545 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3548 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3549 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3551 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3552 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3557 struct Expression * expression;
3559 if(exp->__anon1.index.exp)
3560 OutputExpression(exp->__anon1.index.exp, 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, "[");
3566 if(exp->__anon1.index.index)
3567 for(expression = (*exp->__anon1.index.index).first; expression; expression = expression->next)
3569 OutputExpression(expression, f);
3570 if(expression->next)
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, ", ");
3577 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3578 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3580 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3581 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3586 OutputExpression(exp->__anon1.call.exp, f);
3587 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3588 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3590 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3591 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "(");
3592 if(exp->__anon1.call.arguments)
3594 struct Expression * expression;
3596 for(expression = (*exp->__anon1.call.arguments).first; expression; expression = expression->next)
3598 OutputExpression(expression, f);
3599 if(expression->next)
3600 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3601 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3603 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3604 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3607 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3608 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3610 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3611 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3615 if(exp->__anon1.member.exp)
3616 OutputExpression(exp->__anon1.member.exp, f);
3617 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3618 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3620 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3621 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ".");
3622 if(exp->__anon1.member.member)
3623 OutputIdentifier(exp->__anon1.member.member, f);
3626 OutputExpression(exp->__anon1.member.exp, f);
3627 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3628 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3630 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3631 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "->");
3632 OutputIdentifier(exp->__anon1.member.member, f);
3635 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3636 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3638 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3639 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "sizeof(");
3640 OutputTypeName(exp->__anon1.typeName, f, 0);
3641 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3642 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3644 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3645 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3648 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3649 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3651 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3652 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__alignof__(");
3653 OutputTypeName(exp->__anon1.typeName, f, 0);
3654 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3655 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3657 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3658 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3661 ((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, "__extension__ (");
3666 if(exp->__anon1.initializer.typeName)
3667 OutputTypeName(exp->__anon1.initializer.typeName, f, 0);
3668 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3669 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3671 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3672 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3673 if(exp->__anon1.initializer.initializer)
3674 OutputInitializer(exp->__anon1.initializer.initializer, 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, "(");
3682 OutputTypeName(exp->__anon1.cast.typeName, f, 0);
3683 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3684 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3686 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3687 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3688 if(exp->__anon1.cast.exp)
3689 OutputExpression(exp->__anon1.cast.exp, f);
3692 OutputExpression(exp->__anon1.cond.cond, f);
3693 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3694 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3696 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3697 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ? ");
3699 struct Expression * expression;
3701 for(expression = (*exp->__anon1.cond.exp).first; expression; expression = expression->next)
3703 OutputExpression(expression, f);
3704 if(expression->next)
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, ", ");
3712 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3713 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3715 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3716 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " : ");
3717 if(exp->__anon1.cond.elseExp)
3718 OutputExpression(exp->__anon1.cond.elseExp, f);
3721 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3722 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3724 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3725 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "__builtin_va_arg(");
3726 OutputExpression(exp->__anon1.vaArg.exp, f);
3727 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3728 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3730 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3731 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3732 OutputTypeName(exp->__anon1.vaArg.typeName, f, 0);
3733 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3734 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3736 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3737 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ")");
3740 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3741 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3743 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3744 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "[");
3745 if(exp->__anon1.list)
3747 struct Expression * expression;
3749 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
3751 OutputExpression(expression, f);
3752 if(expression->next)
3753 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3754 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3756 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3757 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3760 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3761 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3763 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3764 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "]");
3769 static void OutputFunction(struct FunctionDefinition * func, struct __ecereNameSpace__ecere__com__Instance * f)
3771 struct FunctionDefinition * oldFunc = curFunction;
3774 if(func->specifiers)
3776 struct Specifier * spec;
3778 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3780 OutputSpecifier(spec, f, 0);
3782 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3783 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3785 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3786 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3788 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3789 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3791 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3792 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3794 if(func->declarator)
3795 OutputDeclarator(func->declarator, f);
3796 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3797 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3799 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3800 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3802 if(func->declarations)
3804 struct Declaration * decl;
3806 for(decl = (*func->declarations).first; decl; decl = decl->next)
3808 OutputDeclaration(decl, f);
3810 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3811 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3813 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3814 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3819 if(inCompiler && memoryGuard)
3821 char name[1024] = "";
3822 struct Identifier * id = GetDeclId(func->declarator);
3824 GetSourceName(name, func->loc.start.included ? GetIncludeFileFromID(func->loc.start.included) : (((void *)0)));
3825 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
3826 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(\"%s:%s\");\n", name, id->string);
3829 OutputStatement(func->body, f);
3830 if(inCompiler && memoryGuard)
3832 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereNameSpace__ecere__com__MemoryGuard_PopLoc();\n");
3833 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
3836 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3837 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3839 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3840 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3843 curFunction = oldFunc;
3846 static void OutputClassFunction(struct ClassFunction * func, struct __ecereNameSpace__ecere__com__Instance * f)
3848 if(func->specifiers)
3850 struct Specifier * spec;
3852 for(spec = (*func->specifiers).first; spec; spec = spec->next)
3854 OutputSpecifier(spec, f, 0);
3856 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3857 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3859 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3860 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3862 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3863 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3865 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3866 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " ");
3868 if(func->declarator)
3869 OutputDeclarator(func->declarator, f);
3870 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3871 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3873 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3874 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3876 if(func->declarations)
3878 struct Declaration * decl;
3880 for(decl = (*func->declarations).first; decl; decl = decl->next)
3882 OutputDeclaration(decl, f);
3884 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3885 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3887 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3888 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3893 OutputStatement(func->body, f);
3894 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3895 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3897 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3898 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3902 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3903 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3905 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3906 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";");
3909 void __ecereRegisterModule_output(struct __ecereNameSpace__ecere__com__Instance * module)
3911 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
3913 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMemoryGuard", "void SetMemoryGuard(bool b)", SetMemoryGuard, module, 1);
3914 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMemoryGuard", "bool GetMemoryGuard(void)", GetMemoryGuard, module, 1);
3915 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTypeName", "void OutputTypeName(TypeName type, ecere::sys::File f, bool typeName)", OutputTypeName, module, 1);
3916 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExpression", "void OutputExpression(Expression exp, ecere::sys::File f)", OutputExpression, module, 1);
3917 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputTree", "void OutputTree(ecere::sys::OldList ast, ecere::sys::File f)", OutputTree, module, 1);
3918 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputExternal", "void OutputExternal(External external, ecere::sys::File f)", OutputExternal, module, 1);
3919 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("StringFromSpecDecl", "char * StringFromSpecDecl(ecere::sys::OldList specs, Declarator decl)", StringFromSpecDecl, module, 1);
3922 static void OutputMembersInit(struct MembersInit * init, struct __ecereNameSpace__ecere__com__Instance * f)
3928 struct MemberInit * member;
3930 if(init->__anon1.dataMembers)
3932 for(member = (*init->__anon1.dataMembers).first; member; member = member->next)
3934 OutputMemberInit(member, f);
3936 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3937 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3939 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3940 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ", ");
3946 OutputClassFunction(init->__anon1.function, f);
3951 static void OutputClassDef(struct ClassDef * def, struct __ecereNameSpace__ecere__com__Instance * f)
3956 if(def->__anon1.decl)
3958 OutputDeclaration(def->__anon1.decl, f);
3959 if(def->next && def->next->type != 2)
3961 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3962 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3964 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3965 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
3972 struct MemberInit * init;
3974 for(init = (*def->__anon1.defProperties).first; init; init = init->next)
3976 OutputMemberInit(init, 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, ", ");
3984 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3985 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3987 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3988 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, ";\n\n");
3993 OutputClassFunction(def->__anon1.function, f);
3994 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3995 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
3997 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3998 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");