1 /* Code generated from eC source file: copy.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>
52 struct __ecereNameSpace__ecere__sys__OldList
61 struct __ecereNameSpace__ecere__sys__BTNode;
63 struct __ecereNameSpace__ecere__com__DataValue
78 } ecere_gcc_struct __anon1;
81 struct __ecereNameSpace__ecere__com__SerialBuffer
83 unsigned char * _buffer;
89 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
91 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
93 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
95 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
97 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
109 struct TemplateParameter;
111 struct ClassFunction;
121 struct PropertyWatch;
123 extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string);
125 struct __ecereNameSpace__ecere__com__GlobalFunction;
127 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
129 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
133 struct CodePosition start;
134 struct CodePosition end;
141 struct __ecereNameSpace__ecere__sys__OldList * attribs;
151 struct Attrib * attr;
152 } ecere_gcc_struct __anon1;
155 extern struct Attrib * MkAttrib(int type, struct __ecereNameSpace__ecere__sys__OldList * attribs);
157 extern struct ExtDecl * MkExtDeclAttrib(struct Attrib * attr);
159 extern struct ExtDecl * MkExtDeclString(char * s);
161 struct __ecereNameSpace__ecere__com__Class;
163 struct __ecereNameSpace__ecere__com__Instance
166 struct __ecereNameSpace__ecere__com__Class * _class;
170 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
172 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
174 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
176 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
178 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
180 struct __ecereNameSpace__ecere__com__Property;
182 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
184 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);
186 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
188 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
192 extern struct Identifier * MkIdentifier(const char * string);
196 extern struct Expression * MkExpDummy(void);
198 extern struct Expression * MkExpIdentifier(struct Identifier * id);
200 extern struct Expression * MkExpConstant(const char * string);
202 extern struct Expression * MkExpString(const char * string);
204 extern struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2);
206 extern struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions);
208 extern struct Expression * MkExpIndex(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * index);
210 extern struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments);
212 extern struct Expression * MkExpMember(struct Expression * expression, struct Identifier * member);
214 extern struct Expression * MkExpPointer(struct Expression * expression, struct Identifier * member);
216 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
220 extern struct Symbol * FindClass(const char * name);
224 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
230 struct Identifier * prev;
231 struct Identifier * next;
233 struct Symbol * classSym;
234 struct Specifier * _class;
236 struct Identifier * badID;
241 struct Specifier * prev;
242 struct Specifier * next;
250 struct ExtDecl * extDecl;
252 struct Symbol * symbol;
253 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
254 struct Specifier * nsSpec;
255 } ecere_gcc_struct __anon1;
258 struct Identifier * id;
259 struct __ecereNameSpace__ecere__sys__OldList * list;
260 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
261 struct __ecereNameSpace__ecere__sys__OldList * definitions;
262 unsigned int addNameSpace;
263 struct Context * ctx;
264 struct ExtDecl * extDeclStruct;
265 } ecere_gcc_struct __anon2;
266 struct Expression * expression;
267 struct Specifier * _class;
268 struct TemplateParameter * templateParameter;
269 } ecere_gcc_struct __anon1;
272 extern struct Specifier * MkSpecifier(int specifier);
274 extern struct Specifier * MkEnum(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * list);
276 extern struct Specifier * MkStructOrUnion(int type, struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * definitions);
278 extern struct Specifier * MkSpecifierSubClass(struct Specifier * _class);
280 extern struct Specifier * MkSpecifierExtended(struct ExtDecl * extDecl);
284 extern struct Expression * MkExpClass(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * decl);
286 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
288 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
290 extern struct Declarator * MkDeclaratorBrackets(struct Declarator * declarator);
292 extern struct Declarator * MkDeclaratorEnumArray(struct Declarator * declarator, struct Specifier * _class);
294 extern struct Declarator * MkDeclaratorArray(struct Declarator * declarator, struct Expression * exp);
296 extern struct Declarator * MkDeclaratorFunction(struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * parameters);
298 extern struct Declarator * MkDeclaratorExtended(struct ExtDecl * extended, struct Declarator * declarator);
300 extern struct Declarator * MkDeclaratorExtendedEnd(struct ExtDecl * extended, struct Declarator * declarator);
302 struct __ecereNameSpace__ecere__sys__Item;
304 struct __ecereNameSpace__ecere__sys__Item
306 struct __ecereNameSpace__ecere__sys__Item * prev;
307 struct __ecereNameSpace__ecere__sys__Item * next;
310 struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void *))
312 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
316 struct __ecereNameSpace__ecere__sys__Item * item;
319 for(item = (*source).first; item; item = item->next)
320 ListAdd(list, CopyFunction(item));
329 struct Pointer * prev;
330 struct Pointer * next;
332 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
333 struct Pointer * pointer;
336 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
340 struct Declarator * prev;
341 struct Declarator * next;
344 struct Symbol * symbol;
345 struct Declarator * declarator;
348 struct Identifier * identifier;
351 struct Expression * exp;
352 struct Expression * posExp;
353 struct Attrib * attrib;
354 } ecere_gcc_struct structDecl;
357 struct Expression * exp;
358 struct Specifier * enumClass;
359 } ecere_gcc_struct array;
362 struct __ecereNameSpace__ecere__sys__OldList * parameters;
363 } ecere_gcc_struct function;
366 struct Pointer * pointer;
367 } ecere_gcc_struct pointer;
370 struct ExtDecl * extended;
371 } ecere_gcc_struct extended;
372 } ecere_gcc_struct __anon1;
375 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
381 struct Initializer * prev;
382 struct Initializer * next;
387 struct Expression * exp;
388 struct __ecereNameSpace__ecere__sys__OldList * list;
389 } ecere_gcc_struct __anon1;
390 unsigned int isConstant;
391 struct Identifier * id;
394 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
396 extern struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sys__OldList * list);
402 struct MembersInit * prev;
403 struct MembersInit * next;
408 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
409 struct ClassFunction * function;
410 } ecere_gcc_struct __anon1;
413 extern struct MembersInit * MkMembersInitList(struct __ecereNameSpace__ecere__sys__OldList * dataMembers);
417 extern struct Expression * MkExpExtensionCompound(struct Statement * compound);
421 struct Statement * prev;
422 struct Statement * next;
427 struct __ecereNameSpace__ecere__sys__OldList * expressions;
430 struct Identifier * id;
431 struct Statement * stmt;
432 } ecere_gcc_struct labeled;
435 struct Expression * exp;
436 struct Statement * stmt;
437 } ecere_gcc_struct caseStmt;
440 struct __ecereNameSpace__ecere__sys__OldList * declarations;
441 struct __ecereNameSpace__ecere__sys__OldList * statements;
442 struct Context * context;
443 unsigned int isSwitch;
444 } ecere_gcc_struct compound;
447 struct __ecereNameSpace__ecere__sys__OldList * exp;
448 struct Statement * stmt;
449 struct Statement * elseStmt;
450 } ecere_gcc_struct ifStmt;
453 struct __ecereNameSpace__ecere__sys__OldList * exp;
454 struct Statement * stmt;
455 } ecere_gcc_struct switchStmt;
458 struct __ecereNameSpace__ecere__sys__OldList * exp;
459 struct Statement * stmt;
460 } ecere_gcc_struct whileStmt;
463 struct __ecereNameSpace__ecere__sys__OldList * exp;
464 struct Statement * stmt;
465 } ecere_gcc_struct doWhile;
468 struct Statement * init;
469 struct Statement * check;
470 struct __ecereNameSpace__ecere__sys__OldList * increment;
471 struct Statement * stmt;
472 } ecere_gcc_struct forStmt;
475 struct Identifier * id;
476 } ecere_gcc_struct gotoStmt;
479 struct Specifier * spec;
481 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
482 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
483 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
484 } ecere_gcc_struct asmStmt;
487 struct Expression * watcher;
488 struct Expression * object;
489 struct __ecereNameSpace__ecere__sys__OldList * watches;
490 } ecere_gcc_struct _watch;
493 struct Identifier * id;
494 struct __ecereNameSpace__ecere__sys__OldList * exp;
495 struct __ecereNameSpace__ecere__sys__OldList * filter;
496 struct Statement * stmt;
497 } ecere_gcc_struct forEachStmt;
498 struct Declaration * decl;
499 } ecere_gcc_struct __anon1;
502 extern struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements);
504 extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions);
506 extern struct Statement * MkBadDeclStmt(struct Declaration * decl);
508 struct __ecereNameSpace__ecere__sys__BinaryTree;
510 struct __ecereNameSpace__ecere__sys__BinaryTree
512 struct __ecereNameSpace__ecere__sys__BTNode * root;
514 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
515 void (* FreeKey)(void * key);
518 struct Attrib * CopyAttrib(struct Attrib * attrib);
520 struct ExtDecl * CopyExtDecl(struct ExtDecl * extDecl)
524 if(extDecl->type == 1)
525 return MkExtDeclAttrib(CopyAttrib(extDecl->__anon1.attr));
526 else if(extDecl->type == 0)
527 return MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(extDecl->__anon1.s));
529 return (((void *)0));
532 struct __ecereNameSpace__ecere__com__Method;
534 struct __ecereNameSpace__ecere__com__Module;
536 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);
540 struct __ecereNameSpace__ecere__com__Property
542 struct __ecereNameSpace__ecere__com__Property * prev;
543 struct __ecereNameSpace__ecere__com__Property * next;
545 unsigned int isProperty;
548 struct __ecereNameSpace__ecere__com__Class * _class;
549 const char * dataTypeString;
550 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
551 struct Type * dataType;
552 void (* Set)(void * , int);
553 int (* Get)(void * );
554 unsigned int (* IsSet)(void * );
558 unsigned int conversion;
559 unsigned int watcherOffset;
560 const char * category;
561 unsigned int compiled;
562 unsigned int selfWatchable;
563 unsigned int isWatchable;
566 struct __ecereNameSpace__ecere__com__Method
569 struct __ecereNameSpace__ecere__com__Method * parent;
570 struct __ecereNameSpace__ecere__com__Method * left;
571 struct __ecereNameSpace__ecere__com__Method * right;
576 struct __ecereNameSpace__ecere__com__Class * _class;
578 const char * dataTypeString;
579 struct Type * dataType;
586 struct Symbol * parent;
587 struct Symbol * left;
588 struct Symbol * right;
593 struct __ecereNameSpace__ecere__com__Method * method;
594 struct __ecereNameSpace__ecere__com__Property * _property;
595 struct __ecereNameSpace__ecere__com__Class * registered;
596 } ecere_gcc_struct __anon1;
597 unsigned int notYetDeclared;
602 struct External * pointerExternal;
603 struct External * structExternal;
604 } ecere_gcc_struct __anon1;
607 struct External * externalGet;
608 struct External * externalSet;
609 struct External * externalPtr;
610 struct External * externalIsSet;
611 } ecere_gcc_struct __anon2;
614 struct External * methodExternal;
615 struct External * methodCodeExternal;
616 } ecere_gcc_struct __anon3;
617 } ecere_gcc_struct __anon2;
618 unsigned int imported;
619 unsigned int declaredStructSym;
620 struct __ecereNameSpace__ecere__com__Class * _class;
621 unsigned int declaredStruct;
622 unsigned int needConstructor;
623 unsigned int needDestructor;
624 char * constructorName;
627 char * destructorName;
628 struct ModuleImport * module;
629 struct ClassImport * _import;
630 struct Location nameLoc;
631 unsigned int isParam;
632 unsigned int isRemote;
633 unsigned int isStruct;
634 unsigned int fireWatchersDone;
636 unsigned int classData;
637 unsigned int isStatic;
639 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
640 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
641 struct Context * ctx;
643 struct Expression * propCategory;
644 unsigned int mustRegister;
654 struct Symbol * _class;
657 struct __ecereNameSpace__ecere__sys__OldList members;
659 } ecere_gcc_struct __anon1;
662 struct Type * returnType;
663 struct __ecereNameSpace__ecere__sys__OldList params;
664 struct Symbol * thisClass;
665 unsigned int staticMethod;
666 struct TemplateParameter * thisClassTemplate;
667 } ecere_gcc_struct __anon2;
670 struct __ecereNameSpace__ecere__com__Method * method;
671 struct __ecereNameSpace__ecere__com__Class * methodClass;
672 struct __ecereNameSpace__ecere__com__Class * usedClass;
673 } ecere_gcc_struct __anon3;
676 struct Type * arrayType;
678 struct Expression * arraySizeExp;
679 unsigned int freeExp;
680 struct Symbol * enumClass;
681 } ecere_gcc_struct __anon4;
683 struct TemplateParameter * templateParameter;
684 } ecere_gcc_struct __anon1;
689 struct __ecereNameSpace__ecere__com__Class * thisClassFrom;
697 unsigned int isSigned : 1;
698 unsigned int constant : 1;
699 unsigned int truth : 1;
700 unsigned int byReference : 1;
701 unsigned int extraParam : 1;
702 unsigned int directClassAccess : 1;
703 unsigned int computing : 1;
704 unsigned int keepCast : 1;
705 unsigned int passAsTemplate : 1;
706 unsigned int dllExport : 1;
707 unsigned int attrStdcall : 1;
708 unsigned int declaredWithStruct : 1;
709 unsigned int typedByReference : 1;
710 unsigned int casted : 1;
711 unsigned int pointerAlignment : 1;
712 unsigned int isLong : 1;
713 unsigned int signedBeforePromotion : 1;
714 unsigned int isVector : 1;
717 struct Instantiation;
721 struct Instantiation * prev;
722 struct Instantiation * next;
724 struct Specifier * _class;
725 struct Expression * exp;
726 struct __ecereNameSpace__ecere__sys__OldList * members;
727 struct Symbol * symbol;
728 unsigned int fullSet;
729 unsigned int isConstant;
730 unsigned char * data;
731 struct Location nameLoc;
732 struct Location insideLoc;
736 extern struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
738 extern struct Expression * MkExpInstance(struct Instantiation * inst);
742 struct Declaration * prev;
743 struct Declaration * next;
750 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
751 struct __ecereNameSpace__ecere__sys__OldList * declarators;
752 } ecere_gcc_struct __anon1;
753 struct Instantiation * inst;
756 struct Identifier * id;
757 struct Expression * exp;
758 } ecere_gcc_struct __anon2;
759 } ecere_gcc_struct __anon1;
760 struct Specifier * extStorage;
761 struct Symbol * symbol;
769 struct Expression * prev;
770 struct Expression * next;
778 struct Identifier * identifier;
779 } ecere_gcc_struct __anon1;
780 struct Statement * compound;
781 struct Instantiation * instance;
785 unsigned int intlString;
786 unsigned int wideString;
787 } ecere_gcc_struct __anon2;
788 struct __ecereNameSpace__ecere__sys__OldList * list;
791 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
792 struct Declarator * decl;
793 } ecere_gcc_struct _classExp;
796 struct Identifier * id;
797 } ecere_gcc_struct classData;
800 struct Expression * exp;
801 struct __ecereNameSpace__ecere__sys__OldList * arguments;
802 struct Location argLoc;
803 } ecere_gcc_struct call;
806 struct Expression * exp;
807 struct __ecereNameSpace__ecere__sys__OldList * index;
808 } ecere_gcc_struct index;
811 struct Expression * exp;
812 struct Identifier * member;
814 unsigned int thisPtr;
815 } ecere_gcc_struct member;
819 struct Expression * exp1;
820 struct Expression * exp2;
821 } ecere_gcc_struct op;
822 struct TypeName * typeName;
823 struct Specifier * _class;
826 struct TypeName * typeName;
827 struct Expression * exp;
828 } ecere_gcc_struct cast;
831 struct Expression * cond;
832 struct __ecereNameSpace__ecere__sys__OldList * exp;
833 struct Expression * elseExp;
834 } ecere_gcc_struct cond;
837 struct TypeName * typeName;
838 struct Expression * size;
839 } ecere_gcc_struct _new;
842 struct TypeName * typeName;
843 struct Expression * size;
844 struct Expression * exp;
845 } ecere_gcc_struct _renew;
849 struct Identifier * id;
850 } ecere_gcc_struct db;
853 struct Expression * ds;
854 struct Expression * name;
855 } ecere_gcc_struct dbopen;
858 struct TypeName * typeName;
859 struct Initializer * initializer;
860 } ecere_gcc_struct initializer;
863 struct Expression * exp;
864 struct TypeName * typeName;
865 } ecere_gcc_struct vaArg;
868 struct TypeName * typeName;
869 struct Identifier * id;
870 } ecere_gcc_struct offset;
871 } ecere_gcc_struct __anon1;
872 unsigned int debugValue;
873 struct __ecereNameSpace__ecere__com__DataValue val;
875 unsigned int hasAddress;
876 struct Type * expType;
877 struct Type * destType;
880 unsigned int byReference;
881 unsigned int isConstant;
882 unsigned int addedThis;
883 unsigned int needCast;
884 unsigned int thisPtr;
885 unsigned int opDestType;
886 unsigned int usedInComparison;
887 unsigned int ambiguousUnits;
888 unsigned int parentOpDestType;
889 unsigned int needTemplateCast;
892 extern struct Expression * MkExpTypeSize(struct TypeName * typeName);
894 extern struct Expression * MkExpTypeAlign(struct TypeName * typeName);
896 extern struct Expression * MkExpOffsetOf(struct TypeName * typeName, struct Identifier * id);
898 extern struct Expression * MkExpCast(struct TypeName * typeName, struct Expression * expression);
900 extern struct Expression * MkExpVaArg(struct Expression * exp, struct TypeName * type);
902 extern struct Expression * MkExpExtensionInitializer(struct TypeName * typeName, struct Initializer * initializer);
906 struct TypeName * prev;
907 struct TypeName * next;
909 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
910 struct Declarator * declarator;
912 struct Expression * bitCount;
915 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
919 extern struct Enumerator * MkEnumerator(struct Identifier * id, struct Expression * exp);
923 struct Enumerator * prev;
924 struct Enumerator * next;
926 struct Identifier * id;
927 struct Expression * exp;
932 extern struct Attribute * MkAttribute(char * attr, struct Expression * exp);
936 struct Attribute * prev;
937 struct Attribute * next;
940 struct Expression * exp;
947 struct ClassDef * prev;
948 struct ClassDef * next;
953 struct Declaration * decl;
954 struct ClassFunction * function;
955 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
956 struct PropertyDef * propertyDef;
957 struct PropertyWatch * propertyWatch;
959 struct Identifier * defaultProperty;
962 struct Identifier * id;
963 struct Initializer * initializer;
964 } ecere_gcc_struct __anon1;
965 } ecere_gcc_struct __anon1;
970 extern struct ClassDef * MkClassDefDeclaration(struct Declaration * decl);
972 struct Specifier * CopySpecifier(struct Specifier * spec);
974 struct Identifier * CopyIdentifier(struct Identifier * id)
978 struct Identifier * copy = MkIdentifier(id->string);
980 copy->_class = id->_class ? CopySpecifier(id->_class) : (((void *)0));
981 copy->classSym = id->classSym;
984 return (((void *)0));
987 static struct Pointer * CopyPointer(struct Pointer * ptr)
991 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
992 struct Specifier * spec;
996 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
997 ListAdd(list, CopySpecifier(spec));
999 return MkPointer(list, CopyPointer(ptr->pointer));
1001 return (((void *)0));
1004 struct Attribute * CopyAttribute(struct Attribute * attrib);
1006 struct Attrib * CopyAttrib(struct Attrib * attrib)
1009 return MkAttrib(attrib->type, CopyList(attrib->attribs, (void *)(CopyAttribute)));
1010 return (((void *)0));
1015 extern struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer);
1019 struct MemberInit * prev;
1020 struct MemberInit * next;
1021 struct Location loc;
1022 struct Location realLoc;
1023 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
1024 struct Initializer * initializer;
1026 unsigned int variable;
1027 unsigned int takeOutExp;
1030 struct InitDeclarator;
1032 extern struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer);
1034 struct InitDeclarator
1036 struct InitDeclarator * prev;
1037 struct InitDeclarator * next;
1038 struct Location loc;
1039 struct Declarator * declarator;
1040 struct Initializer * initializer;
1043 struct __ecereNameSpace__ecere__com__NameSpace;
1045 struct __ecereNameSpace__ecere__com__NameSpace
1048 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
1049 struct __ecereNameSpace__ecere__com__NameSpace * left;
1050 struct __ecereNameSpace__ecere__com__NameSpace * right;
1052 struct __ecereNameSpace__ecere__com__NameSpace * parent;
1053 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1054 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1055 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1056 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1059 struct __ecereNameSpace__ecere__com__Application
1062 const char * * argv;
1064 unsigned int isGUIApp;
1065 struct __ecereNameSpace__ecere__sys__OldList allModules;
1066 char * parsedCommand;
1067 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1070 struct __ecereNameSpace__ecere__com__Module
1072 struct __ecereNameSpace__ecere__com__Instance * application;
1073 struct __ecereNameSpace__ecere__sys__OldList classes;
1074 struct __ecereNameSpace__ecere__sys__OldList defines;
1075 struct __ecereNameSpace__ecere__sys__OldList functions;
1076 struct __ecereNameSpace__ecere__sys__OldList modules;
1077 struct __ecereNameSpace__ecere__com__Instance * prev;
1078 struct __ecereNameSpace__ecere__com__Instance * next;
1084 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1085 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1088 void __ecereUnregisterModule_copy(struct __ecereNameSpace__ecere__com__Instance * module)
1093 struct __ecereNameSpace__ecere__com__DataMember;
1095 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
1101 const char * dataTypeString;
1102 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
1103 } ecere_gcc_struct __anon1;
1104 struct __ecereNameSpace__ecere__com__DataValue expression;
1107 const char * memberString;
1110 struct __ecereNameSpace__ecere__com__DataMember * member;
1111 struct __ecereNameSpace__ecere__com__Property * prop;
1112 struct __ecereNameSpace__ecere__com__Method * method;
1113 } ecere_gcc_struct __anon1;
1114 } ecere_gcc_struct __anon2;
1115 } ecere_gcc_struct __anon1;
1118 struct __ecereNameSpace__ecere__com__DataMember
1120 struct __ecereNameSpace__ecere__com__DataMember * prev;
1121 struct __ecereNameSpace__ecere__com__DataMember * next;
1123 unsigned int isProperty;
1126 struct __ecereNameSpace__ecere__com__Class * _class;
1127 const char * dataTypeString;
1128 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
1129 struct Type * dataType;
1133 struct __ecereNameSpace__ecere__sys__OldList members;
1134 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
1136 short structAlignment;
1137 short pointerAlignment;
1140 struct __ecereNameSpace__ecere__com__Class
1142 struct __ecereNameSpace__ecere__com__Class * prev;
1143 struct __ecereNameSpace__ecere__com__Class * next;
1149 unsigned int (* Constructor)(void * );
1150 void (* Destructor)(void * );
1153 struct __ecereNameSpace__ecere__com__Class * base;
1154 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
1155 struct __ecereNameSpace__ecere__sys__BinaryTree members;
1156 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
1157 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
1158 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
1159 struct __ecereNameSpace__ecere__sys__OldList derivatives;
1163 struct __ecereNameSpace__ecere__com__Instance * module;
1164 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
1165 const char * dataTypeString;
1166 struct Type * dataType;
1168 int defaultAlignment;
1169 void (* Initialize)();
1171 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
1172 const char * designerClass;
1173 unsigned int noExpansion;
1174 const char * defaultProperty;
1175 unsigned int comRedefinition;
1178 unsigned int internalDecl;
1180 unsigned int computeSize;
1181 short structAlignment;
1182 short pointerAlignment;
1183 int destructionWatchOffset;
1185 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
1186 int inheritanceAccess;
1187 const char * fullName;
1189 struct __ecereNameSpace__ecere__sys__OldList conversions;
1190 struct __ecereNameSpace__ecere__sys__OldList templateParams;
1191 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
1192 struct __ecereNameSpace__ecere__com__Class * templateClass;
1193 struct __ecereNameSpace__ecere__sys__OldList templatized;
1195 unsigned int isInstanceClass;
1196 unsigned int byValueSystemClass;
1199 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
1201 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
1203 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
1205 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
1207 struct Expression * MoveExpContents(struct Expression * exp)
1209 struct Expression * newExp = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1212 newExp->prev = (((void *)0));
1213 newExp->next = (((void *)0));
1214 newExp->destType = (((void *)0));
1216 exp->expType->refCount++;
1220 struct Expression * CopyExpression(struct Expression * exp);
1222 static struct Initializer * CopyInitializer(struct Initializer * initializer)
1224 struct Initializer * copy = (((void *)0));
1227 if(initializer->type == 0)
1228 copy = MkInitializerAssignment(CopyExpression(initializer->__anon1.exp));
1229 else if(initializer->type == 1)
1230 copy = MkInitializerList(CopyList(initializer->__anon1.list, (void *)(CopyInitializer)));
1233 copy->loc = initializer->loc;
1235 copy->id = CopyIdentifier(initializer->id);
1236 copy->isConstant = initializer->isConstant;
1241 static struct Enumerator * CopyEnumerator(struct Enumerator * enumerator)
1243 return MkEnumerator(CopyIdentifier(enumerator->id), CopyExpression(enumerator->exp));
1246 struct Attribute * CopyAttribute(struct Attribute * attrib)
1249 return MkAttribute(__ecereNameSpace__ecere__sys__CopyString(attrib->attr), CopyExpression(attrib->exp));
1250 return (((void *)0));
1253 static struct MemberInit * CopyMemberInit(struct MemberInit * member)
1255 return MkMemberInit(CopyList(member->identifiers, (void *)(CopyIdentifier)), CopyInitializer(member->initializer));
1258 static struct MembersInit * CopyMembersInit(struct MembersInit * members)
1260 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
1262 switch(members->type)
1268 struct MemberInit * member;
1271 for(member = (*members->__anon1.dataMembers).first; member; member = member->next)
1272 ListAdd(list, CopyMemberInit(member));
1276 return MkMembersInitList(list);
1279 static struct Instantiation * CopyInstantiation(struct Instantiation * inst)
1281 struct Instantiation * copy;
1282 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1283 struct MembersInit * member;
1287 for(member = (*inst->members).first; member; member = member->next)
1288 ListAdd(list, CopyMembersInit(member));
1290 copy = MkInstantiation(CopySpecifier(inst->_class), CopyExpression(inst->exp), list);
1291 copy->data = inst->data;
1294 struct Symbol * classSym = FindClass(inst->_class->__anon1.__anon1.name);
1295 struct __ecereNameSpace__ecere__com__Class * _class = classSym ? classSym->__anon1.registered : (((void *)0));
1299 if(_class->type == 0)
1300 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)((struct __ecereNameSpace__ecere__com__Instance *)copy->data))->_refCount++;
1303 copy->loc = inst->loc;
1304 copy->isConstant = inst->isConstant;
1308 struct Declaration * CopyDeclaration(struct Declaration * decl);
1310 static struct Statement * CopyStatement(struct Statement * stmt)
1312 struct Statement * result = (((void *)0));
1319 result = MkCompoundStmt(CopyList(stmt->__anon1.compound.declarations, (void *)(CopyDeclaration)), CopyList(stmt->__anon1.compound.statements, (void *)(CopyStatement)));
1320 result->__anon1.compound.context = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1323 result = MkExpressionStmt(CopyList(stmt->__anon1.expressions, (void *)(CopyExpression)));
1326 result = MkBadDeclStmt(CopyDeclaration(stmt->__anon1.decl));
1332 result->loc = stmt->loc;
1337 struct ClassDef * CopyClassDef(struct ClassDef * def)
1342 return (((void *)0));
1344 return (((void *)0));
1346 return MkClassDefDeclaration(CopyDeclaration(def->__anon1.decl));
1348 return (((void *)0));
1350 return (((void *)0));
1353 struct Specifier * CopySpecifier(struct Specifier * spec)
1359 return MkSpecifier(spec->__anon1.specifier);
1362 struct Identifier * id = CopyIdentifier(spec->__anon1.__anon2.id);
1363 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1364 struct Enumerator * enumerator;
1366 if(spec->__anon1.__anon2.list)
1368 for(enumerator = (*spec->__anon1.__anon2.list).first; enumerator; enumerator = enumerator->next)
1369 ListAdd(list, CopyEnumerator(enumerator));
1371 return MkEnum(id, list);
1376 struct Identifier * id = CopyIdentifier(spec->__anon1.__anon2.id);
1377 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
1378 struct ClassDef * def;
1379 struct Specifier * s;
1381 if(spec->__anon1.__anon2.definitions)
1384 if(spec->__anon1.__anon2.list)
1386 for(def = (*spec->__anon1.__anon2.list).first; def; def = def->next)
1387 ListAdd(list, CopyClassDef(def));
1390 s = MkStructOrUnion(spec->type, id, list);
1391 s->__anon1.__anon2.extDeclStruct = CopyExtDecl(spec->__anon1.__anon2.extDeclStruct);
1396 struct Specifier * copy = (copy = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier), copy->type = 1, copy->__anon1.__anon1.name = __ecereNameSpace__ecere__sys__CopyString(spec->__anon1.__anon1.name), copy->__anon1.__anon1.symbol = spec->__anon1.__anon1.symbol, copy->__anon1.__anon1.templateArgs = (((void *)0)), copy);
1401 return MkSpecifierSubClass(CopySpecifier(spec->__anon1._class));
1403 return __extension__ ({
1404 struct Specifier * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier);
1406 __ecereInstance1->loc = spec->loc, __ecereInstance1->type = 8, __ecereInstance1->__anon1.templateParameter = spec->__anon1.templateParameter, __ecereInstance1;
1409 return MkSpecifierExtended(CopyExtDecl(spec->__anon1.__anon1.extDecl));
1411 return (((void *)0));
1414 struct Declarator * CopyDeclarator(struct Declarator * declarator);
1416 struct TypeName * CopyTypeName(struct TypeName * typeName)
1418 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
1419 struct TypeName * copy;
1421 if(typeName->qualifiers)
1423 struct Specifier * spec;
1426 for(spec = (*typeName->qualifiers).first; spec; spec = spec->next)
1427 ListAdd(list, CopySpecifier(spec));
1429 copy = MkTypeName(list, CopyDeclarator(typeName->declarator));
1430 copy->classObjectType = typeName->classObjectType;
1434 struct InitDeclarator * CopyInitDeclarator(struct InitDeclarator * initDecl)
1436 return MkInitDeclarator(CopyDeclarator(initDecl->declarator), CopyInitializer(initDecl->initializer));
1439 struct Expression * CopyExpression(struct Expression * exp)
1441 struct Expression * result = (((void *)0));
1447 result = MkExpDummy();
1450 result = MkExpIdentifier(CopyIdentifier(exp->__anon1.__anon1.identifier));
1453 result = MkExpInstance(CopyInstantiation(exp->__anon1.instance));
1456 result = MkExpConstant(exp->__anon1.__anon2.string);
1459 result = MkExpString(exp->__anon1.__anon2.string);
1462 result = MkExpOp(CopyExpression(exp->__anon1.op.exp1), exp->__anon1.op.op, CopyExpression(exp->__anon1.op.exp2));
1466 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1467 struct Expression * e;
1469 for(e = (*exp->__anon1.list).first; e; e = e->next)
1470 ListAdd(list, CopyExpression(e));
1471 result = MkExpBrackets(list);
1476 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1477 struct Expression * e;
1479 for(e = (*exp->__anon1.index.index).first; e; e = e->next)
1480 ListAdd(list, CopyExpression(e));
1481 result = MkExpIndex(CopyExpression(exp->__anon1.index.exp), list);
1486 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1487 struct Expression * arg;
1489 if(exp->__anon1.call.arguments)
1491 for(arg = (*exp->__anon1.call.arguments).first; arg; arg = arg->next)
1492 ListAdd(list, CopyExpression(arg));
1494 result = MkExpCall(CopyExpression(exp->__anon1.call.exp), list);
1498 result = MkExpMember(CopyExpression(exp->__anon1.member.exp), CopyIdentifier(exp->__anon1.member.member));
1499 result->__anon1.member.memberType = exp->__anon1.member.memberType;
1500 result->__anon1.member.thisPtr = exp->__anon1.member.thisPtr;
1503 result = MkExpPointer(CopyExpression(exp->__anon1.member.exp), CopyIdentifier(exp->__anon1.member.member));
1506 result = MkExpTypeSize(CopyTypeName(exp->__anon1.typeName));
1509 result = MkExpTypeAlign(CopyTypeName(exp->__anon1.typeName));
1512 result = MkExpOffsetOf(CopyTypeName(exp->__anon1.typeName), CopyIdentifier(exp->__anon1.__anon1.identifier));
1515 result = MkExpCast(CopyTypeName(exp->__anon1.cast.typeName), CopyExpression(exp->__anon1.cast.exp));
1519 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1520 struct Expression * e;
1522 for(e = (*exp->__anon1.cond.exp).first; e; e = e->next)
1523 ListAdd(list, CopyExpression(e));
1524 result = MkExpCondition(CopyExpression(exp->__anon1.cond.cond), list, CopyExpression(exp->__anon1.cond.elseExp));
1528 result = MkExpVaArg(CopyExpression(exp->__anon1.vaArg.exp), CopyTypeName(exp->__anon1.vaArg.typeName));
1531 result = MkExpExtensionCompound(CopyStatement(exp->__anon1.compound));
1534 result = MkExpExtensionInitializer(CopyTypeName(exp->__anon1.initializer.typeName), CopyInitializer(exp->__anon1.initializer.initializer));
1537 result = MkExpClass(CopyList(exp->__anon1._classExp.specifiers, (void *)(CopySpecifier)), CopyDeclarator(exp->__anon1._classExp.decl));
1542 result->expType = exp->expType;
1544 exp->expType->refCount++;
1545 result->destType = exp->destType;
1547 exp->destType->refCount++;
1548 result->loc = exp->loc;
1549 result->isConstant = exp->isConstant;
1550 result->byReference = exp->byReference;
1551 result->opDestType = exp->opDestType;
1552 result->usedInComparison = exp->usedInComparison;
1553 result->needTemplateCast = exp->needTemplateCast;
1554 result->parentOpDestType = exp->parentOpDestType;
1559 struct Declarator * CopyDeclarator(struct Declarator * declarator)
1563 switch(declarator->type)
1567 struct Declarator * decl = MkStructDeclarator(CopyDeclarator(declarator->declarator), CopyExpression(declarator->__anon1.structDecl.exp));
1569 if(declarator->__anon1.structDecl.attrib)
1570 decl->__anon1.structDecl.attrib = CopyAttrib(declarator->__anon1.structDecl.attrib);
1574 return MkDeclaratorIdentifier(CopyIdentifier(declarator->__anon1.identifier));
1576 return MkDeclaratorBrackets(CopyDeclarator(declarator->declarator));
1578 if(declarator->__anon1.array.enumClass)
1579 return MkDeclaratorEnumArray(CopyDeclarator(declarator->declarator), CopySpecifier(declarator->__anon1.array.enumClass));
1581 return MkDeclaratorArray(CopyDeclarator(declarator->declarator), CopyExpression(declarator->__anon1.array.exp));
1584 struct __ecereNameSpace__ecere__sys__OldList * parameters = MkList();
1585 struct TypeName * param;
1587 if(declarator->__anon1.function.parameters)
1589 for(param = (*declarator->__anon1.function.parameters).first; param; param = param->next)
1590 ListAdd(parameters, CopyTypeName(param));
1592 return MkDeclaratorFunction(CopyDeclarator(declarator->declarator), parameters);
1595 return MkDeclaratorPointer(CopyPointer(declarator->__anon1.pointer.pointer), CopyDeclarator(declarator->declarator));
1597 return MkDeclaratorExtended(CopyExtDecl(declarator->__anon1.extended.extended), CopyDeclarator(declarator->declarator));
1599 return MkDeclaratorExtendedEnd(CopyExtDecl(declarator->__anon1.extended.extended), CopyDeclarator(declarator->declarator));
1602 return (((void *)0));
1605 struct Declaration * CopyDeclaration(struct Declaration * decl)
1609 return MkDeclaration(CopyList(decl->__anon1.__anon1.specifiers, (void *)(CopySpecifier)), CopyList(decl->__anon1.__anon1.declarators, (void *)(CopyInitDeclarator)));
1613 struct __ecereNameSpace__ecere__sys__OldList * specifiers = MkList(), * declarators = MkList();
1614 struct Specifier * spec;
1615 struct Declarator * declarator;
1617 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
1618 ListAdd(specifiers, CopySpecifier(spec));
1619 if(decl->__anon1.__anon1.declarators)
1621 for(declarator = (*decl->__anon1.__anon1.declarators).first; declarator; declarator = declarator->next)
1622 ListAdd(declarators, CopyDeclarator(declarator));
1624 return MkDeclaration(specifiers, declarators);
1628 void __ecereRegisterModule_copy(struct __ecereNameSpace__ecere__com__Instance * module)
1630 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
1632 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyIdentifier", "Identifier CopyIdentifier(Identifier id)", CopyIdentifier, module, 2);
1633 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MoveExpContents", "Expression MoveExpContents(Expression exp)", MoveExpContents, module, 2);
1634 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyExpression", "Expression CopyExpression(Expression exp)", CopyExpression, module, 1);
1635 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyClassDef", "ClassDef CopyClassDef(ClassDef def)", CopyClassDef, module, 2);
1636 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopySpecifier", "Specifier CopySpecifier(Specifier spec)", CopySpecifier, module, 2);
1637 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyTypeName", "TypeName CopyTypeName(TypeName typeName)", CopyTypeName, module, 2);
1638 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyExtDecl", "ExtDecl CopyExtDecl(ExtDecl extDecl)", CopyExtDecl, module, 2);
1639 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyAttribute", "Attribute CopyAttribute(Attribute attrib)", CopyAttribute, module, 2);
1640 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyAttrib", "Attrib CopyAttrib(Attrib attrib)", CopyAttrib, module, 2);
1641 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyDeclarator", "Declarator CopyDeclarator(Declarator declarator)", CopyDeclarator, module, 2);
1642 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyInitDeclarator", "InitDeclarator CopyInitDeclarator(InitDeclarator initDecl)", CopyInitDeclarator, module, 2);
1643 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyDeclaration", "Declaration CopyDeclaration(Declaration decl)", CopyDeclaration, module, 2);
1644 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyList", "ecere::sys::OldList * CopyList(ecere::sys::OldList * source, void * (* CopyFunction)(void *))", CopyList, module, 2);