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);
182 extern struct Identifier * MkIdentifier(const char * string);
186 extern struct Expression * MkExpDummy(void);
188 extern struct Expression * MkExpIdentifier(struct Identifier * id);
190 extern struct Expression * MkExpConstant(const char * string);
192 extern struct Expression * MkExpString(const char * string);
194 extern struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2);
196 extern struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions);
198 extern struct Expression * MkExpIndex(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * index);
200 extern struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments);
202 extern struct Expression * MkExpMember(struct Expression * expression, struct Identifier * member);
204 extern struct Expression * MkExpPointer(struct Expression * expression, struct Identifier * member);
206 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
210 extern struct Symbol * FindClass(const char * name);
214 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
220 struct Identifier * prev;
221 struct Identifier * next;
223 struct Symbol * classSym;
224 struct Specifier * _class;
226 struct Identifier * badID;
231 struct Specifier * prev;
232 struct Specifier * next;
240 struct ExtDecl * extDecl;
242 struct Symbol * symbol;
243 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
244 struct Specifier * nsSpec;
245 } ecere_gcc_struct __anon1;
248 struct Identifier * id;
249 struct __ecereNameSpace__ecere__sys__OldList * list;
250 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
251 struct __ecereNameSpace__ecere__sys__OldList * definitions;
252 unsigned int addNameSpace;
253 struct Context * ctx;
254 struct ExtDecl * extDeclStruct;
255 } ecere_gcc_struct __anon2;
256 struct Expression * expression;
257 struct Specifier * _class;
258 struct TemplateParameter * templateParameter;
259 } ecere_gcc_struct __anon1;
262 extern struct Specifier * MkSpecifier(int specifier);
264 extern struct Specifier * MkEnum(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * list);
266 extern struct Specifier * MkStructOrUnion(int type, struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * definitions);
268 extern struct Specifier * MkSpecifierSubClass(struct Specifier * _class);
270 extern struct Specifier * MkSpecifierExtended(struct ExtDecl * extDecl);
274 extern struct Expression * MkExpClass(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * decl);
276 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
278 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
280 extern struct Declarator * MkDeclaratorBrackets(struct Declarator * declarator);
282 extern struct Declarator * MkDeclaratorEnumArray(struct Declarator * declarator, struct Specifier * _class);
284 extern struct Declarator * MkDeclaratorArray(struct Declarator * declarator, struct Expression * exp);
286 extern struct Declarator * MkDeclaratorFunction(struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * parameters);
288 extern struct Declarator * MkDeclaratorExtended(struct ExtDecl * extended, struct Declarator * declarator);
290 extern struct Declarator * MkDeclaratorExtendedEnd(struct ExtDecl * extended, struct Declarator * declarator);
292 struct __ecereNameSpace__ecere__sys__Item;
294 struct __ecereNameSpace__ecere__sys__Item
296 struct __ecereNameSpace__ecere__sys__Item * prev;
297 struct __ecereNameSpace__ecere__sys__Item * next;
300 struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void *))
302 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
306 struct __ecereNameSpace__ecere__sys__Item * item;
309 for(item = (*source).first; item; item = item->next)
310 ListAdd(list, CopyFunction(item));
319 struct Pointer * prev;
320 struct Pointer * next;
322 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
323 struct Pointer * pointer;
326 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
330 struct Declarator * prev;
331 struct Declarator * next;
334 struct Symbol * symbol;
335 struct Declarator * declarator;
338 struct Identifier * identifier;
341 struct Expression * exp;
342 struct Expression * posExp;
343 struct Attrib * attrib;
344 } ecere_gcc_struct structDecl;
347 struct Expression * exp;
348 struct Specifier * enumClass;
349 } ecere_gcc_struct array;
352 struct __ecereNameSpace__ecere__sys__OldList * parameters;
353 } ecere_gcc_struct function;
356 struct Pointer * pointer;
357 } ecere_gcc_struct pointer;
360 struct ExtDecl * extended;
361 } ecere_gcc_struct extended;
362 } ecere_gcc_struct __anon1;
365 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
371 struct Initializer * prev;
372 struct Initializer * next;
377 struct Expression * exp;
378 struct __ecereNameSpace__ecere__sys__OldList * list;
379 } ecere_gcc_struct __anon1;
380 unsigned int isConstant;
381 struct Identifier * id;
384 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
386 extern struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sys__OldList * list);
392 struct MembersInit * prev;
393 struct MembersInit * next;
398 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
399 struct ClassFunction * function;
400 } ecere_gcc_struct __anon1;
403 extern struct MembersInit * MkMembersInitList(struct __ecereNameSpace__ecere__sys__OldList * dataMembers);
407 extern struct Expression * MkExpExtensionCompound(struct Statement * compound);
411 struct Statement * prev;
412 struct Statement * next;
417 struct __ecereNameSpace__ecere__sys__OldList * expressions;
420 struct Identifier * id;
421 struct Statement * stmt;
422 } ecere_gcc_struct labeled;
425 struct Expression * exp;
426 struct Statement * stmt;
427 } ecere_gcc_struct caseStmt;
430 struct __ecereNameSpace__ecere__sys__OldList * declarations;
431 struct __ecereNameSpace__ecere__sys__OldList * statements;
432 struct Context * context;
433 unsigned int isSwitch;
434 } ecere_gcc_struct compound;
437 struct __ecereNameSpace__ecere__sys__OldList * exp;
438 struct Statement * stmt;
439 struct Statement * elseStmt;
440 } ecere_gcc_struct ifStmt;
443 struct __ecereNameSpace__ecere__sys__OldList * exp;
444 struct Statement * stmt;
445 } ecere_gcc_struct switchStmt;
448 struct __ecereNameSpace__ecere__sys__OldList * exp;
449 struct Statement * stmt;
450 } ecere_gcc_struct whileStmt;
453 struct __ecereNameSpace__ecere__sys__OldList * exp;
454 struct Statement * stmt;
455 } ecere_gcc_struct doWhile;
458 struct Statement * init;
459 struct Statement * check;
460 struct __ecereNameSpace__ecere__sys__OldList * increment;
461 struct Statement * stmt;
462 } ecere_gcc_struct forStmt;
465 struct Identifier * id;
466 } ecere_gcc_struct gotoStmt;
469 struct Specifier * spec;
471 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
472 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
473 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
474 } ecere_gcc_struct asmStmt;
477 struct Expression * watcher;
478 struct Expression * object;
479 struct __ecereNameSpace__ecere__sys__OldList * watches;
480 } ecere_gcc_struct _watch;
483 struct Identifier * id;
484 struct __ecereNameSpace__ecere__sys__OldList * exp;
485 struct __ecereNameSpace__ecere__sys__OldList * filter;
486 struct Statement * stmt;
487 } ecere_gcc_struct forEachStmt;
488 struct Declaration * decl;
489 } ecere_gcc_struct __anon1;
492 extern struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements);
494 extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions);
496 extern struct Statement * MkBadDeclStmt(struct Declaration * decl);
498 struct __ecereNameSpace__ecere__sys__BinaryTree;
500 struct __ecereNameSpace__ecere__sys__BinaryTree
502 struct __ecereNameSpace__ecere__sys__BTNode * root;
504 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
505 void (* FreeKey)(void * key);
508 struct Attrib * CopyAttrib(struct Attrib * attrib);
510 struct ExtDecl * CopyExtDecl(struct ExtDecl * extDecl)
514 if(extDecl->type == 1)
515 return MkExtDeclAttrib(CopyAttrib(extDecl->__anon1.attr));
516 else if(extDecl->type == 0)
517 return MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(extDecl->__anon1.s));
519 return (((void *)0));
522 struct __ecereNameSpace__ecere__com__DataMember;
524 struct __ecereNameSpace__ecere__com__Property;
526 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
528 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);
530 extern void __ecereNameSpace__ecere__com__eInstance_Watch(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
532 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
534 struct __ecereNameSpace__ecere__com__Method;
536 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
542 const char * dataTypeString;
543 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
544 } ecere_gcc_struct __anon1;
545 struct __ecereNameSpace__ecere__com__DataValue expression;
548 const char * memberString;
551 struct __ecereNameSpace__ecere__com__DataMember * member;
552 struct __ecereNameSpace__ecere__com__Property * prop;
553 struct __ecereNameSpace__ecere__com__Method * method;
554 } ecere_gcc_struct __anon1;
555 } ecere_gcc_struct __anon2;
556 } ecere_gcc_struct __anon1;
559 struct __ecereNameSpace__ecere__com__Module;
561 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);
563 struct Instantiation;
567 struct Instantiation * prev;
568 struct Instantiation * next;
570 struct Specifier * _class;
571 struct Expression * exp;
572 struct __ecereNameSpace__ecere__sys__OldList * members;
573 struct Symbol * symbol;
574 unsigned int fullSet;
575 unsigned int isConstant;
576 unsigned char * data;
577 struct Location nameLoc;
578 struct Location insideLoc;
582 extern struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
584 extern struct Expression * MkExpInstance(struct Instantiation * inst);
588 struct Declaration * prev;
589 struct Declaration * next;
596 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
597 struct __ecereNameSpace__ecere__sys__OldList * declarators;
598 } ecere_gcc_struct __anon1;
599 struct Instantiation * inst;
602 struct Identifier * id;
603 struct Expression * exp;
604 } ecere_gcc_struct __anon2;
605 } ecere_gcc_struct __anon1;
606 struct Specifier * extStorage;
607 struct Symbol * symbol;
613 extern struct Expression * MkExpTypeSize(struct TypeName * typeName);
615 extern struct Expression * MkExpTypeAlign(struct TypeName * typeName);
617 extern struct Expression * MkExpOffsetOf(struct TypeName * typeName, struct Identifier * id);
619 extern struct Expression * MkExpCast(struct TypeName * typeName, struct Expression * expression);
621 extern struct Expression * MkExpVaArg(struct Expression * exp, struct TypeName * type);
623 extern struct Expression * MkExpExtensionInitializer(struct TypeName * typeName, struct Initializer * initializer);
627 struct TypeName * prev;
628 struct TypeName * next;
630 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
631 struct Declarator * declarator;
633 struct Expression * bitCount;
636 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
640 extern struct Enumerator * MkEnumerator(struct Identifier * id, struct Expression * exp);
644 struct Enumerator * prev;
645 struct Enumerator * next;
647 struct Identifier * id;
648 struct Expression * exp;
653 extern struct Attribute * MkAttribute(char * attr, struct Expression * exp);
657 struct Attribute * prev;
658 struct Attribute * next;
661 struct Expression * exp;
668 struct ClassDef * prev;
669 struct ClassDef * next;
674 struct Declaration * decl;
675 struct ClassFunction * function;
676 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
677 struct PropertyDef * propertyDef;
678 struct PropertyWatch * propertyWatch;
680 struct Identifier * defaultProperty;
683 struct Identifier * id;
684 struct Initializer * initializer;
685 } ecere_gcc_struct __anon1;
686 } ecere_gcc_struct __anon1;
691 extern struct ClassDef * MkClassDefDeclaration(struct Declaration * decl);
693 struct Specifier * CopySpecifier(struct Specifier * spec);
695 struct Identifier * CopyIdentifier(struct Identifier * id)
699 struct Identifier * copy = MkIdentifier(id->string);
701 copy->_class = id->_class ? CopySpecifier(id->_class) : (((void *)0));
702 copy->classSym = id->classSym;
705 return (((void *)0));
708 static struct Pointer * CopyPointer(struct Pointer * ptr)
712 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
713 struct Specifier * spec;
717 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
718 ListAdd(list, CopySpecifier(spec));
720 return MkPointer(list, CopyPointer(ptr->pointer));
722 return (((void *)0));
725 struct Attribute * CopyAttribute(struct Attribute * attrib);
727 struct Attrib * CopyAttrib(struct Attrib * attrib)
730 return MkAttrib(attrib->type, CopyList(attrib->attribs, (void *)(CopyAttribute)));
731 return (((void *)0));
736 extern struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer);
740 struct MemberInit * prev;
741 struct MemberInit * next;
743 struct Location realLoc;
744 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
745 struct Initializer * initializer;
747 unsigned int variable;
748 unsigned int takeOutExp;
751 struct InitDeclarator;
753 extern struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer);
755 struct InitDeclarator
757 struct InitDeclarator * prev;
758 struct InitDeclarator * next;
760 struct Declarator * declarator;
761 struct Initializer * initializer;
764 struct __ecereNameSpace__ecere__com__NameSpace;
766 struct __ecereNameSpace__ecere__com__NameSpace
769 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
770 struct __ecereNameSpace__ecere__com__NameSpace * left;
771 struct __ecereNameSpace__ecere__com__NameSpace * right;
773 struct __ecereNameSpace__ecere__com__NameSpace * parent;
774 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
775 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
776 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
777 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
780 struct __ecereNameSpace__ecere__com__Application
785 unsigned int isGUIApp;
786 struct __ecereNameSpace__ecere__sys__OldList allModules;
787 char * parsedCommand;
788 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
791 struct __ecereNameSpace__ecere__com__Module
793 struct __ecereNameSpace__ecere__com__Instance * application;
794 struct __ecereNameSpace__ecere__sys__OldList classes;
795 struct __ecereNameSpace__ecere__sys__OldList defines;
796 struct __ecereNameSpace__ecere__sys__OldList functions;
797 struct __ecereNameSpace__ecere__sys__OldList modules;
798 struct __ecereNameSpace__ecere__com__Instance * prev;
799 struct __ecereNameSpace__ecere__com__Instance * next;
805 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
806 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
809 void __ecereUnregisterModule_copy(struct __ecereNameSpace__ecere__com__Instance * module)
816 struct __ecereNameSpace__ecere__com__Class
818 struct __ecereNameSpace__ecere__com__Class * prev;
819 struct __ecereNameSpace__ecere__com__Class * next;
825 unsigned int (* Constructor)(void * );
826 void (* Destructor)(void * );
829 struct __ecereNameSpace__ecere__com__Class * base;
830 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
831 struct __ecereNameSpace__ecere__sys__BinaryTree members;
832 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
833 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
834 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
835 struct __ecereNameSpace__ecere__sys__OldList derivatives;
839 struct __ecereNameSpace__ecere__com__Instance * module;
840 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
841 const char * dataTypeString;
842 struct Type * dataType;
844 int defaultAlignment;
845 void (* Initialize)();
847 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
848 const char * designerClass;
849 unsigned int noExpansion;
850 const char * defaultProperty;
851 unsigned int comRedefinition;
854 unsigned int internalDecl;
856 unsigned int computeSize;
857 short structAlignment;
858 short pointerAlignment;
859 int destructionWatchOffset;
861 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
862 int inheritanceAccess;
863 const char * fullName;
865 struct __ecereNameSpace__ecere__sys__OldList conversions;
866 struct __ecereNameSpace__ecere__sys__OldList templateParams;
867 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
868 struct __ecereNameSpace__ecere__com__Class * templateClass;
869 struct __ecereNameSpace__ecere__sys__OldList templatized;
871 unsigned int isInstanceClass;
872 unsigned int byValueSystemClass;
873 void * bindingsClass;
876 struct __ecereNameSpace__ecere__com__Property
878 struct __ecereNameSpace__ecere__com__Property * prev;
879 struct __ecereNameSpace__ecere__com__Property * next;
881 unsigned int isProperty;
884 struct __ecereNameSpace__ecere__com__Class * _class;
885 const char * dataTypeString;
886 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
887 struct Type * dataType;
888 void (* Set)(void * , int);
889 int (* Get)(void * );
890 unsigned int (* IsSet)(void * );
894 unsigned int conversion;
895 unsigned int watcherOffset;
896 const char * category;
897 unsigned int compiled;
898 unsigned int selfWatchable;
899 unsigned int isWatchable;
902 struct __ecereNameSpace__ecere__com__DataMember
904 struct __ecereNameSpace__ecere__com__DataMember * prev;
905 struct __ecereNameSpace__ecere__com__DataMember * next;
907 unsigned int isProperty;
910 struct __ecereNameSpace__ecere__com__Class * _class;
911 const char * dataTypeString;
912 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
913 struct Type * dataType;
917 struct __ecereNameSpace__ecere__sys__OldList members;
918 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
920 short structAlignment;
921 short pointerAlignment;
924 struct __ecereNameSpace__ecere__com__Method
927 struct __ecereNameSpace__ecere__com__Method * parent;
928 struct __ecereNameSpace__ecere__com__Method * left;
929 struct __ecereNameSpace__ecere__com__Method * right;
934 struct __ecereNameSpace__ecere__com__Class * _class;
936 const char * dataTypeString;
937 struct Type * dataType;
944 struct Symbol * parent;
945 struct Symbol * left;
946 struct Symbol * right;
951 struct __ecereNameSpace__ecere__com__Method * method;
952 struct __ecereNameSpace__ecere__com__Property * _property;
953 struct __ecereNameSpace__ecere__com__Class * registered;
954 } ecere_gcc_struct __anon1;
955 unsigned int notYetDeclared;
960 struct External * pointerExternal;
961 struct External * structExternal;
962 } ecere_gcc_struct __anon1;
965 struct External * externalGet;
966 struct External * externalSet;
967 struct External * externalPtr;
968 struct External * externalIsSet;
969 } ecere_gcc_struct __anon2;
972 struct External * methodExternal;
973 struct External * methodCodeExternal;
974 } ecere_gcc_struct __anon3;
975 } ecere_gcc_struct __anon2;
976 unsigned int imported;
977 unsigned int declaredStructSym;
978 struct __ecereNameSpace__ecere__com__Class * _class;
979 unsigned int declaredStruct;
980 unsigned int needConstructor;
981 unsigned int needDestructor;
982 char * constructorName;
985 char * destructorName;
986 struct ModuleImport * module;
987 struct ClassImport * _import;
988 struct Location nameLoc;
989 unsigned int isParam;
990 unsigned int isRemote;
991 unsigned int isStruct;
992 unsigned int fireWatchersDone;
994 unsigned int classData;
995 unsigned int isStatic;
997 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
998 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
999 struct Context * ctx;
1001 struct Expression * propCategory;
1002 unsigned int mustRegister;
1007 struct Expression * prev;
1008 struct Expression * next;
1009 struct Location loc;
1016 struct Identifier * identifier;
1017 } ecere_gcc_struct __anon1;
1018 struct Statement * compound;
1019 struct Instantiation * instance;
1023 unsigned int intlString;
1024 unsigned int wideString;
1025 } ecere_gcc_struct __anon2;
1026 struct __ecereNameSpace__ecere__sys__OldList * list;
1029 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1030 struct Declarator * decl;
1031 } ecere_gcc_struct _classExp;
1034 struct Identifier * id;
1035 } ecere_gcc_struct classData;
1038 struct Expression * exp;
1039 struct __ecereNameSpace__ecere__sys__OldList * arguments;
1040 struct Location argLoc;
1041 } ecere_gcc_struct call;
1044 struct Expression * exp;
1045 struct __ecereNameSpace__ecere__sys__OldList * index;
1046 } ecere_gcc_struct index;
1049 struct Expression * exp;
1050 struct Identifier * member;
1052 unsigned int thisPtr;
1053 } ecere_gcc_struct member;
1057 struct Expression * exp1;
1058 struct Expression * exp2;
1059 } ecere_gcc_struct op;
1060 struct TypeName * typeName;
1061 struct Specifier * _class;
1064 struct TypeName * typeName;
1065 struct Expression * exp;
1066 } ecere_gcc_struct cast;
1069 struct Expression * cond;
1070 struct __ecereNameSpace__ecere__sys__OldList * exp;
1071 struct Expression * elseExp;
1072 } ecere_gcc_struct cond;
1075 struct TypeName * typeName;
1076 struct Expression * size;
1077 } ecere_gcc_struct _new;
1080 struct TypeName * typeName;
1081 struct Expression * size;
1082 struct Expression * exp;
1083 } ecere_gcc_struct _renew;
1087 struct Identifier * id;
1088 } ecere_gcc_struct db;
1091 struct Expression * ds;
1092 struct Expression * name;
1093 } ecere_gcc_struct dbopen;
1096 struct TypeName * typeName;
1097 struct Initializer * initializer;
1098 } ecere_gcc_struct initializer;
1101 struct Expression * exp;
1102 struct TypeName * typeName;
1103 } ecere_gcc_struct vaArg;
1106 struct TypeName * typeName;
1107 struct Identifier * id;
1108 } ecere_gcc_struct offset;
1109 } ecere_gcc_struct __anon1;
1110 unsigned int debugValue;
1111 struct __ecereNameSpace__ecere__com__DataValue val;
1113 unsigned int hasAddress;
1114 struct Type * expType;
1115 struct Type * destType;
1118 unsigned int byReference;
1119 unsigned int isConstant;
1120 unsigned int addedThis;
1121 unsigned int needCast;
1122 unsigned int thisPtr;
1123 unsigned int opDestType;
1124 unsigned int usedInComparison;
1125 unsigned int ambiguousUnits;
1126 unsigned int parentOpDestType;
1127 unsigned int needTemplateCast;
1137 struct Symbol * _class;
1140 struct __ecereNameSpace__ecere__sys__OldList members;
1142 } ecere_gcc_struct __anon1;
1145 struct Type * returnType;
1146 struct __ecereNameSpace__ecere__sys__OldList params;
1147 struct Symbol * thisClass;
1148 unsigned int staticMethod;
1149 struct TemplateParameter * thisClassTemplate;
1150 } ecere_gcc_struct __anon2;
1153 struct __ecereNameSpace__ecere__com__Method * method;
1154 struct __ecereNameSpace__ecere__com__Class * methodClass;
1155 struct __ecereNameSpace__ecere__com__Class * usedClass;
1156 } ecere_gcc_struct __anon3;
1159 struct Type * arrayType;
1161 struct Expression * arraySizeExp;
1162 unsigned int freeExp;
1163 struct Symbol * enumClass;
1164 } ecere_gcc_struct __anon4;
1166 struct TemplateParameter * templateParameter;
1167 } ecere_gcc_struct __anon1;
1172 struct __ecereNameSpace__ecere__com__Class * thisClassFrom;
1174 int classObjectType;
1176 unsigned int offset;
1180 unsigned int isSigned : 1;
1181 unsigned int constant : 1;
1182 unsigned int truth : 1;
1183 unsigned int byReference : 1;
1184 unsigned int extraParam : 1;
1185 unsigned int directClassAccess : 1;
1186 unsigned int computing : 1;
1187 unsigned int keepCast : 1;
1188 unsigned int passAsTemplate : 1;
1189 unsigned int dllExport : 1;
1190 unsigned int attrStdcall : 1;
1191 unsigned int declaredWithStruct : 1;
1192 unsigned int typedByReference : 1;
1193 unsigned int casted : 1;
1194 unsigned int pointerAlignment : 1;
1195 unsigned int isLong : 1;
1196 unsigned int signedBeforePromotion : 1;
1197 unsigned int isVector : 1;
1200 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
1202 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
1204 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
1206 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
1208 struct Expression * MoveExpContents(struct Expression * exp)
1210 struct Expression * newExp = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1213 newExp->prev = (((void *)0));
1214 newExp->next = (((void *)0));
1215 newExp->destType = (((void *)0));
1217 exp->expType->refCount++;
1221 struct Expression * CopyExpression(struct Expression * exp);
1223 static struct Initializer * CopyInitializer(struct Initializer * initializer)
1225 struct Initializer * copy = (((void *)0));
1228 if(initializer->type == 0)
1229 copy = MkInitializerAssignment(CopyExpression(initializer->__anon1.exp));
1230 else if(initializer->type == 1)
1231 copy = MkInitializerList(CopyList(initializer->__anon1.list, (void *)(CopyInitializer)));
1234 copy->loc = initializer->loc;
1236 copy->id = CopyIdentifier(initializer->id);
1237 copy->isConstant = initializer->isConstant;
1242 static struct Enumerator * CopyEnumerator(struct Enumerator * enumerator)
1244 return MkEnumerator(CopyIdentifier(enumerator->id), CopyExpression(enumerator->exp));
1247 struct Attribute * CopyAttribute(struct Attribute * attrib)
1250 return MkAttribute(__ecereNameSpace__ecere__sys__CopyString(attrib->attr), CopyExpression(attrib->exp));
1251 return (((void *)0));
1254 static struct MemberInit * CopyMemberInit(struct MemberInit * member)
1256 return MkMemberInit(CopyList(member->identifiers, (void *)(CopyIdentifier)), CopyInitializer(member->initializer));
1259 static struct MembersInit * CopyMembersInit(struct MembersInit * members)
1261 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
1263 switch(members->type)
1269 struct MemberInit * member;
1272 for(member = (*members->__anon1.dataMembers).first; member; member = member->next)
1273 ListAdd(list, CopyMemberInit(member));
1277 return MkMembersInitList(list);
1280 static struct Instantiation * CopyInstantiation(struct Instantiation * inst)
1282 struct Instantiation * copy;
1283 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1284 struct MembersInit * member;
1288 for(member = (*inst->members).first; member; member = member->next)
1289 ListAdd(list, CopyMembersInit(member));
1291 copy = MkInstantiation(CopySpecifier(inst->_class), CopyExpression(inst->exp), list);
1292 copy->data = inst->data;
1295 struct Symbol * classSym = FindClass(inst->_class->__anon1.__anon1.name);
1296 struct __ecereNameSpace__ecere__com__Class * _class = classSym ? classSym->__anon1.registered : (((void *)0));
1300 if(_class->type == 0)
1301 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)((struct __ecereNameSpace__ecere__com__Instance *)copy->data))->_refCount++;
1304 copy->loc = inst->loc;
1305 copy->isConstant = inst->isConstant;
1309 struct Declaration * CopyDeclaration(struct Declaration * decl);
1311 static struct Statement * CopyStatement(struct Statement * stmt)
1313 struct Statement * result = (((void *)0));
1320 result = MkCompoundStmt(CopyList(stmt->__anon1.compound.declarations, (void *)(CopyDeclaration)), CopyList(stmt->__anon1.compound.statements, (void *)(CopyStatement)));
1321 result->__anon1.compound.context = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1324 result = MkExpressionStmt(CopyList(stmt->__anon1.expressions, (void *)(CopyExpression)));
1327 result = MkBadDeclStmt(CopyDeclaration(stmt->__anon1.decl));
1333 result->loc = stmt->loc;
1338 struct ClassDef * CopyClassDef(struct ClassDef * def)
1343 return (((void *)0));
1345 return (((void *)0));
1347 return MkClassDefDeclaration(CopyDeclaration(def->__anon1.decl));
1349 return (((void *)0));
1351 return (((void *)0));
1354 struct Specifier * CopySpecifier(struct Specifier * spec)
1360 return MkSpecifier(spec->__anon1.specifier);
1363 struct Identifier * id = CopyIdentifier(spec->__anon1.__anon2.id);
1364 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1365 struct Enumerator * enumerator;
1367 if(spec->__anon1.__anon2.list)
1369 for(enumerator = (*spec->__anon1.__anon2.list).first; enumerator; enumerator = enumerator->next)
1370 ListAdd(list, CopyEnumerator(enumerator));
1372 return MkEnum(id, list);
1377 struct Identifier * id = CopyIdentifier(spec->__anon1.__anon2.id);
1378 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
1379 struct ClassDef * def;
1380 struct Specifier * s;
1382 if(spec->__anon1.__anon2.definitions)
1385 if(spec->__anon1.__anon2.list)
1387 for(def = (*spec->__anon1.__anon2.list).first; def; def = def->next)
1388 ListAdd(list, CopyClassDef(def));
1391 s = MkStructOrUnion(spec->type, id, list);
1392 s->__anon1.__anon2.extDeclStruct = CopyExtDecl(spec->__anon1.__anon2.extDeclStruct);
1397 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);
1402 return MkSpecifierSubClass(CopySpecifier(spec->__anon1._class));
1404 return __extension__ ({
1405 struct Specifier * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier);
1407 __ecereInstance1->loc = spec->loc, __ecereInstance1->type = 8, __ecereInstance1->__anon1.templateParameter = spec->__anon1.templateParameter, __ecereInstance1;
1410 return MkSpecifierExtended(CopyExtDecl(spec->__anon1.__anon1.extDecl));
1412 return (((void *)0));
1415 struct Declarator * CopyDeclarator(struct Declarator * declarator);
1417 struct TypeName * CopyTypeName(struct TypeName * typeName)
1419 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
1420 struct TypeName * copy;
1422 if(typeName->qualifiers)
1424 struct Specifier * spec;
1427 for(spec = (*typeName->qualifiers).first; spec; spec = spec->next)
1428 ListAdd(list, CopySpecifier(spec));
1430 copy = MkTypeName(list, CopyDeclarator(typeName->declarator));
1431 copy->classObjectType = typeName->classObjectType;
1435 struct InitDeclarator * CopyInitDeclarator(struct InitDeclarator * initDecl)
1437 return MkInitDeclarator(CopyDeclarator(initDecl->declarator), CopyInitializer(initDecl->initializer));
1440 struct Expression * CopyExpression(struct Expression * exp)
1442 struct Expression * result = (((void *)0));
1448 result = MkExpDummy();
1451 result = MkExpIdentifier(CopyIdentifier(exp->__anon1.__anon1.identifier));
1454 result = MkExpInstance(CopyInstantiation(exp->__anon1.instance));
1457 result = MkExpConstant(exp->__anon1.__anon2.string);
1460 result = MkExpString(exp->__anon1.__anon2.string);
1463 result = MkExpOp(CopyExpression(exp->__anon1.op.exp1), exp->__anon1.op.op, CopyExpression(exp->__anon1.op.exp2));
1467 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1468 struct Expression * e;
1470 for(e = (*exp->__anon1.list).first; e; e = e->next)
1471 ListAdd(list, CopyExpression(e));
1472 result = MkExpBrackets(list);
1477 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1478 struct Expression * e;
1480 for(e = (*exp->__anon1.index.index).first; e; e = e->next)
1481 ListAdd(list, CopyExpression(e));
1482 result = MkExpIndex(CopyExpression(exp->__anon1.index.exp), list);
1487 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1488 struct Expression * arg;
1490 if(exp->__anon1.call.arguments)
1492 for(arg = (*exp->__anon1.call.arguments).first; arg; arg = arg->next)
1493 ListAdd(list, CopyExpression(arg));
1495 result = MkExpCall(CopyExpression(exp->__anon1.call.exp), list);
1499 result = MkExpMember(CopyExpression(exp->__anon1.member.exp), CopyIdentifier(exp->__anon1.member.member));
1500 result->__anon1.member.memberType = exp->__anon1.member.memberType;
1501 result->__anon1.member.thisPtr = exp->__anon1.member.thisPtr;
1504 result = MkExpPointer(CopyExpression(exp->__anon1.member.exp), CopyIdentifier(exp->__anon1.member.member));
1507 result = MkExpTypeSize(CopyTypeName(exp->__anon1.typeName));
1510 result = MkExpTypeAlign(CopyTypeName(exp->__anon1.typeName));
1513 result = MkExpOffsetOf(CopyTypeName(exp->__anon1.typeName), CopyIdentifier(exp->__anon1.__anon1.identifier));
1516 result = MkExpCast(CopyTypeName(exp->__anon1.cast.typeName), CopyExpression(exp->__anon1.cast.exp));
1520 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1521 struct Expression * e;
1523 for(e = (*exp->__anon1.cond.exp).first; e; e = e->next)
1524 ListAdd(list, CopyExpression(e));
1525 result = MkExpCondition(CopyExpression(exp->__anon1.cond.cond), list, CopyExpression(exp->__anon1.cond.elseExp));
1529 result = MkExpVaArg(CopyExpression(exp->__anon1.vaArg.exp), CopyTypeName(exp->__anon1.vaArg.typeName));
1532 result = MkExpExtensionCompound(CopyStatement(exp->__anon1.compound));
1535 result = MkExpExtensionInitializer(CopyTypeName(exp->__anon1.initializer.typeName), CopyInitializer(exp->__anon1.initializer.initializer));
1538 result = MkExpClass(CopyList(exp->__anon1._classExp.specifiers, (void *)(CopySpecifier)), CopyDeclarator(exp->__anon1._classExp.decl));
1543 result->expType = exp->expType;
1545 exp->expType->refCount++;
1546 result->destType = exp->destType;
1548 exp->destType->refCount++;
1549 result->loc = exp->loc;
1550 result->isConstant = exp->isConstant;
1551 result->byReference = exp->byReference;
1552 result->opDestType = exp->opDestType;
1553 result->usedInComparison = exp->usedInComparison;
1554 result->needTemplateCast = exp->needTemplateCast;
1555 result->parentOpDestType = exp->parentOpDestType;
1560 struct Declarator * CopyDeclarator(struct Declarator * declarator)
1564 switch(declarator->type)
1568 struct Declarator * decl = MkStructDeclarator(CopyDeclarator(declarator->declarator), CopyExpression(declarator->__anon1.structDecl.exp));
1570 if(declarator->__anon1.structDecl.attrib)
1571 decl->__anon1.structDecl.attrib = CopyAttrib(declarator->__anon1.structDecl.attrib);
1575 return MkDeclaratorIdentifier(CopyIdentifier(declarator->__anon1.identifier));
1577 return MkDeclaratorBrackets(CopyDeclarator(declarator->declarator));
1579 if(declarator->__anon1.array.enumClass)
1580 return MkDeclaratorEnumArray(CopyDeclarator(declarator->declarator), CopySpecifier(declarator->__anon1.array.enumClass));
1582 return MkDeclaratorArray(CopyDeclarator(declarator->declarator), CopyExpression(declarator->__anon1.array.exp));
1585 struct __ecereNameSpace__ecere__sys__OldList * parameters = MkList();
1586 struct TypeName * param;
1588 if(declarator->__anon1.function.parameters)
1590 for(param = (*declarator->__anon1.function.parameters).first; param; param = param->next)
1591 ListAdd(parameters, CopyTypeName(param));
1593 return MkDeclaratorFunction(CopyDeclarator(declarator->declarator), parameters);
1596 return MkDeclaratorPointer(CopyPointer(declarator->__anon1.pointer.pointer), CopyDeclarator(declarator->declarator));
1598 return MkDeclaratorExtended(CopyExtDecl(declarator->__anon1.extended.extended), CopyDeclarator(declarator->declarator));
1600 return MkDeclaratorExtendedEnd(CopyExtDecl(declarator->__anon1.extended.extended), CopyDeclarator(declarator->declarator));
1603 return (((void *)0));
1606 struct Declaration * CopyDeclaration(struct Declaration * decl)
1610 return MkDeclaration(CopyList(decl->__anon1.__anon1.specifiers, (void *)(CopySpecifier)), CopyList(decl->__anon1.__anon1.declarators, (void *)(CopyInitDeclarator)));
1614 struct __ecereNameSpace__ecere__sys__OldList * specifiers = MkList(), * declarators = MkList();
1615 struct Specifier * spec;
1616 struct Declarator * declarator;
1618 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
1619 ListAdd(specifiers, CopySpecifier(spec));
1620 if(decl->__anon1.__anon1.declarators)
1622 for(declarator = (*decl->__anon1.__anon1.declarators).first; declarator; declarator = declarator->next)
1623 ListAdd(declarators, CopyDeclarator(declarator));
1625 return MkDeclaration(specifiers, declarators);
1629 void __ecereRegisterModule_copy(struct __ecereNameSpace__ecere__com__Instance * module)
1631 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
1633 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyIdentifier", "Identifier CopyIdentifier(Identifier id)", CopyIdentifier, module, 2);
1634 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MoveExpContents", "Expression MoveExpContents(Expression exp)", MoveExpContents, module, 2);
1635 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyExpression", "Expression CopyExpression(Expression exp)", CopyExpression, module, 1);
1636 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyClassDef", "ClassDef CopyClassDef(ClassDef def)", CopyClassDef, module, 2);
1637 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopySpecifier", "Specifier CopySpecifier(Specifier spec)", CopySpecifier, module, 2);
1638 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyTypeName", "TypeName CopyTypeName(TypeName typeName)", CopyTypeName, module, 2);
1639 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyExtDecl", "ExtDecl CopyExtDecl(ExtDecl extDecl)", CopyExtDecl, module, 2);
1640 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyAttribute", "Attribute CopyAttribute(Attribute attrib)", CopyAttribute, module, 2);
1641 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyAttrib", "Attrib CopyAttrib(Attrib attrib)", CopyAttrib, module, 2);
1642 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyDeclarator", "Declarator CopyDeclarator(Declarator declarator)", CopyDeclarator, module, 2);
1643 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyInitDeclarator", "InitDeclarator CopyInitDeclarator(InitDeclarator initDecl)", CopyInitDeclarator, module, 2);
1644 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyDeclaration", "Declaration CopyDeclaration(Declaration decl)", CopyDeclaration, module, 2);
1645 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyList", "ecere::sys::OldList * CopyList(ecere::sys::OldList * source, void * (* CopyFunction)(void *))", CopyList, module, 2);