7d047ae6e1aed1176336c525ba4daf9226ec326d
[sdk] / compiler / bootstrap / libec / bootstrap / copy.c
1 /* Code generated from eC source file: copy.ec */
2 #if defined(__GNUC__)
3 typedef long long int64;
4 typedef unsigned long long uint64;
5 #ifndef _WIN32
6 #define __declspec(x)
7 #endif
8 #elif defined(__TINYC__)
9 #include <stdarg.h>
10 #define __builtin_va_list va_list
11 #define __builtin_va_start va_start
12 #define __builtin_va_end va_end
13 #ifdef _WIN32
14 #define strcasecmp stricmp
15 #define strncasecmp strnicmp
16 #define __declspec(x) __attribute__((x))
17 #else
18 #define __declspec(x)
19 #endif
20 typedef long long int64;
21 typedef unsigned long long uint64;
22 #else
23 typedef __int64 int64;
24 typedef unsigned __int64 uint64;
25 #endif
26 #ifdef __BIG_ENDIAN__
27 #define __ENDIAN_PAD(x) (8 - (x))
28 #else
29 #define __ENDIAN_PAD(x) 0
30 #endif
31 #include <stdint.h>
32 #include <sys/types.h>
33 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
34
35 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
36
37 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
38
39 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
40
41 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
42
43 struct __ecereNameSpace__ecere__sys__BTNode;
44
45 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
46
47 struct __ecereNameSpace__ecere__sys__BinaryTree
48 {
49 struct __ecereNameSpace__ecere__sys__BTNode * root;
50 int count;
51 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
52 void (*  FreeKey)(void *  key);
53 } __attribute__ ((gcc_struct));
54
55 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
56
57 struct __ecereNameSpace__ecere__sys__OldList
58 {
59 void *  first;
60 void *  last;
61 int count;
62 unsigned int offset;
63 unsigned int circ;
64 } __attribute__ ((gcc_struct));
65
66 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
67
68 struct __ecereNameSpace__ecere__com__Method
69 {
70 char *  name;
71 struct __ecereNameSpace__ecere__com__Method * parent;
72 struct __ecereNameSpace__ecere__com__Method * left;
73 struct __ecereNameSpace__ecere__com__Method * right;
74 int depth;
75 int (*  function)();
76 int vid;
77 int type;
78 struct __ecereNameSpace__ecere__com__Class * _class;
79 void *  symbol;
80 char *  dataTypeString;
81 struct Type * dataType;
82 int memberAccess;
83 } __attribute__ ((gcc_struct));
84
85 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
86
87 struct __ecereNameSpace__ecere__com__Property
88 {
89 struct __ecereNameSpace__ecere__com__Property * prev;
90 struct __ecereNameSpace__ecere__com__Property * next;
91 char *  name;
92 unsigned int isProperty;
93 int memberAccess;
94 int id;
95 struct __ecereNameSpace__ecere__com__Class * _class;
96 char *  dataTypeString;
97 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
98 struct Type * dataType;
99 void (*  Set)(void * , int);
100 int (*  Get)(void * );
101 unsigned int (*  IsSet)(void * );
102 void *  data;
103 void *  symbol;
104 int vid;
105 unsigned int conversion;
106 unsigned int watcherOffset;
107 char *  category;
108 unsigned int compiled;
109 unsigned int selfWatchable;
110 unsigned int isWatchable;
111 } __attribute__ ((gcc_struct));
112
113 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
114
115 struct CodePosition
116 {
117 int line;
118 int charPos;
119 int pos;
120 int included;
121 } __attribute__ ((gcc_struct));
122
123 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
124
125 struct Location
126 {
127 struct CodePosition start;
128 struct CodePosition end;
129 } __attribute__ ((gcc_struct));
130
131 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
132
133 struct Attrib
134 {
135 struct Location loc;
136 int type;
137 struct __ecereNameSpace__ecere__sys__OldList *  attribs;
138 } __attribute__ ((gcc_struct));
139
140 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
141
142 struct ExtDecl
143 {
144 struct Location loc;
145 int type;
146 union
147 {
148 char * s;
149 struct Attrib * attr;
150 } __attribute__ ((gcc_struct));
151 } __attribute__ ((gcc_struct));
152
153 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
154
155 struct ClassDefinition;
156
157 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
158
159 struct Context;
160
161 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
162
163 struct Instantiation
164 {
165 struct Instantiation * prev;
166 struct Instantiation * next;
167 struct Location loc;
168 struct Specifier * _class;
169 struct Expression * exp;
170 struct __ecereNameSpace__ecere__sys__OldList *  members;
171 struct Symbol * symbol;
172 unsigned int fullSet;
173 unsigned int isConstant;
174 unsigned char *  data;
175 struct Location nameLoc;
176 struct Location insideLoc;
177 unsigned int built;
178 } __attribute__ ((gcc_struct));
179
180 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
181
182 struct Declaration
183 {
184 struct Declaration * prev;
185 struct Declaration * next;
186 struct Location loc;
187 int type;
188 union
189 {
190 struct
191 {
192 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
193 struct __ecereNameSpace__ecere__sys__OldList *  declarators;
194 } __attribute__ ((gcc_struct));
195 struct Instantiation * inst;
196 struct
197 {
198 struct Identifier * id;
199 struct Expression * exp;
200 } __attribute__ ((gcc_struct));
201 } __attribute__ ((gcc_struct));
202 struct Specifier * extStorage;
203 struct Symbol * symbol;
204 int declMode;
205 } __attribute__ ((gcc_struct));
206
207 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
208
209 struct Statement
210 {
211 struct Statement * prev;
212 struct Statement * next;
213 struct Location loc;
214 int type;
215 union
216 {
217 struct __ecereNameSpace__ecere__sys__OldList *  expressions;
218 struct
219 {
220 struct Identifier * id;
221 struct Statement * stmt;
222 } __attribute__ ((gcc_struct)) labeled;
223 struct
224 {
225 struct Expression * exp;
226 struct Statement * stmt;
227 } __attribute__ ((gcc_struct)) caseStmt;
228 struct
229 {
230 struct __ecereNameSpace__ecere__sys__OldList * declarations;
231 struct __ecereNameSpace__ecere__sys__OldList * statements;
232 struct Context * context;
233 unsigned int isSwitch;
234 } __attribute__ ((gcc_struct)) compound;
235 struct
236 {
237 struct __ecereNameSpace__ecere__sys__OldList * exp;
238 struct Statement * stmt;
239 struct Statement * elseStmt;
240 } __attribute__ ((gcc_struct)) ifStmt;
241 struct
242 {
243 struct __ecereNameSpace__ecere__sys__OldList * exp;
244 struct Statement * stmt;
245 } __attribute__ ((gcc_struct)) switchStmt;
246 struct
247 {
248 struct __ecereNameSpace__ecere__sys__OldList * exp;
249 struct Statement * stmt;
250 } __attribute__ ((gcc_struct)) whileStmt;
251 struct
252 {
253 struct __ecereNameSpace__ecere__sys__OldList * exp;
254 struct Statement * stmt;
255 } __attribute__ ((gcc_struct)) doWhile;
256 struct
257 {
258 struct Statement * init;
259 struct Statement * check;
260 struct __ecereNameSpace__ecere__sys__OldList * increment;
261 struct Statement * stmt;
262 } __attribute__ ((gcc_struct)) forStmt;
263 struct
264 {
265 struct Identifier * id;
266 } __attribute__ ((gcc_struct)) gotoStmt;
267 struct
268 {
269 struct Specifier * spec;
270 char * statements;
271 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
272 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
273 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
274 } __attribute__ ((gcc_struct)) asmStmt;
275 struct
276 {
277 struct Expression * watcher;
278 struct Expression * object;
279 struct __ecereNameSpace__ecere__sys__OldList * watches;
280 } __attribute__ ((gcc_struct)) _watch;
281 struct
282 {
283 struct Identifier * id;
284 struct __ecereNameSpace__ecere__sys__OldList * exp;
285 struct __ecereNameSpace__ecere__sys__OldList * filter;
286 struct Statement * stmt;
287 } __attribute__ ((gcc_struct)) forEachStmt;
288 struct Declaration * decl;
289 } __attribute__ ((gcc_struct));
290 } __attribute__ ((gcc_struct));
291
292 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
293
294 struct TypeName
295 {
296 struct TypeName * prev;
297 struct TypeName * next;
298 struct Location loc;
299 struct __ecereNameSpace__ecere__sys__OldList *  qualifiers;
300 struct Declarator * declarator;
301 int classObjectType;
302 struct Expression * bitCount;
303 } __attribute__ ((gcc_struct));
304
305 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
306
307 struct Initializer
308 {
309 struct Initializer * prev;
310 struct Initializer * next;
311 struct Location loc;
312 int type;
313 union
314 {
315 struct Expression * exp;
316 struct __ecereNameSpace__ecere__sys__OldList *  list;
317 } __attribute__ ((gcc_struct));
318 unsigned int isConstant;
319 } __attribute__ ((gcc_struct));
320
321 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
322
323 struct __ecereNameSpace__ecere__com__DataValue
324 {
325 union
326 {
327 char c;
328 unsigned char uc;
329 short s;
330 unsigned short us;
331 int i;
332 unsigned int ui;
333 void *  p;
334 float f;
335 double d;
336 long long i64;
337 uint64 ui64;
338 } __attribute__ ((gcc_struct));
339 } __attribute__ ((gcc_struct));
340
341 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
342
343 struct Expression
344 {
345 struct Expression * prev;
346 struct Expression * next;
347 struct Location loc;
348 int type;
349 union
350 {
351 struct
352 {
353 char *  constant;
354 struct Identifier * identifier;
355 } __attribute__ ((gcc_struct));
356 struct Statement * compound;
357 struct Instantiation * instance;
358 char *  string;
359 struct __ecereNameSpace__ecere__sys__OldList *  list;
360 struct
361 {
362 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
363 struct Declarator * decl;
364 } __attribute__ ((gcc_struct)) _classExp;
365 struct
366 {
367 struct Identifier * id;
368 } __attribute__ ((gcc_struct)) classData;
369 struct
370 {
371 struct Expression * exp;
372 struct __ecereNameSpace__ecere__sys__OldList * arguments;
373 struct Location argLoc;
374 } __attribute__ ((gcc_struct)) call;
375 struct
376 {
377 struct Expression * exp;
378 struct __ecereNameSpace__ecere__sys__OldList * index;
379 } __attribute__ ((gcc_struct)) index;
380 struct
381 {
382 struct Expression * exp;
383 struct Identifier * member;
384 int memberType;
385 unsigned int thisPtr;
386 } __attribute__ ((gcc_struct)) member;
387 struct
388 {
389 int op;
390 struct Expression * exp1;
391 struct Expression * exp2;
392 } __attribute__ ((gcc_struct)) op;
393 struct TypeName * typeName;
394 struct Specifier * _class;
395 struct
396 {
397 struct TypeName * typeName;
398 struct Expression * exp;
399 } __attribute__ ((gcc_struct)) cast;
400 struct
401 {
402 struct Expression * cond;
403 struct __ecereNameSpace__ecere__sys__OldList * exp;
404 struct Expression * elseExp;
405 } __attribute__ ((gcc_struct)) cond;
406 struct
407 {
408 struct TypeName * typeName;
409 struct Expression * size;
410 } __attribute__ ((gcc_struct)) _new;
411 struct
412 {
413 struct TypeName * typeName;
414 struct Expression * size;
415 struct Expression * exp;
416 } __attribute__ ((gcc_struct)) _renew;
417 struct
418 {
419 char * table;
420 struct Identifier * id;
421 } __attribute__ ((gcc_struct)) db;
422 struct
423 {
424 struct Expression * ds;
425 struct Expression * name;
426 } __attribute__ ((gcc_struct)) dbopen;
427 struct
428 {
429 struct TypeName * typeName;
430 struct Initializer * initializer;
431 } __attribute__ ((gcc_struct)) initializer;
432 struct
433 {
434 struct Expression * exp;
435 struct TypeName * typeName;
436 } __attribute__ ((gcc_struct)) vaArg;
437 } __attribute__ ((gcc_struct));
438 unsigned int debugValue;
439 struct __ecereNameSpace__ecere__com__DataValue val;
440 uint64 address;
441 unsigned int hasAddress;
442 struct Type * expType;
443 struct Type * destType;
444 unsigned int usage;
445 int tempCount;
446 unsigned int byReference;
447 unsigned int isConstant;
448 unsigned int addedThis;
449 unsigned int needCast;
450 unsigned int thisPtr;
451 } __attribute__ ((gcc_struct));
452
453 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
454
455 struct TemplateDatatype;
456
457 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
458
459 struct TemplateArgument;
460
461 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
462
463 struct TemplateParameter;
464
465 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
466
467 struct Specifier
468 {
469 struct Specifier * prev;
470 struct Specifier * next;
471 struct Location loc;
472 int type;
473 union
474 {
475 int specifier;
476 struct
477 {
478 struct ExtDecl * extDecl;
479 char *  name;
480 struct Symbol * symbol;
481 struct __ecereNameSpace__ecere__sys__OldList *  templateArgs;
482 } __attribute__ ((gcc_struct));
483 struct
484 {
485 struct Identifier * id;
486 struct __ecereNameSpace__ecere__sys__OldList *  list;
487 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
488 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
489 unsigned int addNameSpace;
490 struct Context * ctx;
491 struct ExtDecl * extDeclStruct;
492 } __attribute__ ((gcc_struct));
493 struct Expression * expression;
494 struct Specifier * _class;
495 struct TemplateParameter * templateParameter;
496 } __attribute__ ((gcc_struct));
497 } __attribute__ ((gcc_struct));
498
499 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
500
501 struct Identifier
502 {
503 struct Identifier * prev;
504 struct Identifier * next;
505 struct Location loc;
506 struct Symbol * classSym;
507 struct Specifier * _class;
508 char *  string;
509 struct Identifier * badID;
510 } __attribute__ ((gcc_struct));
511
512 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
513
514 struct Pointer
515 {
516 struct Pointer * prev;
517 struct Pointer * next;
518 struct Location loc;
519 struct __ecereNameSpace__ecere__sys__OldList *  qualifiers;
520 struct Pointer * pointer;
521 } __attribute__ ((gcc_struct));
522
523 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
524
525 struct Declarator
526 {
527 struct Declarator * prev;
528 struct Declarator * next;
529 struct Location loc;
530 int type;
531 struct Symbol * symbol;
532 struct Declarator * declarator;
533 union
534 {
535 struct Identifier * identifier;
536 struct
537 {
538 struct Expression * exp;
539 struct Expression * posExp;
540 struct Attrib * attrib;
541 } __attribute__ ((gcc_struct)) structDecl;
542 struct
543 {
544 struct Expression * exp;
545 struct Specifier * enumClass;
546 } __attribute__ ((gcc_struct)) array;
547 struct
548 {
549 struct __ecereNameSpace__ecere__sys__OldList * parameters;
550 } __attribute__ ((gcc_struct)) function;
551 struct
552 {
553 struct Pointer * pointer;
554 } __attribute__ ((gcc_struct)) pointer;
555 struct
556 {
557 struct ExtDecl * extended;
558 } __attribute__ ((gcc_struct)) extended;
559 } __attribute__ ((gcc_struct));
560 } __attribute__ ((gcc_struct));
561
562 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
563
564 struct FunctionDefinition;
565
566 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
567
568 struct DBTableDef;
569
570 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
571
572 struct External;
573
574 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
575
576 struct ModuleImport;
577
578 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
579
580 struct ClassImport;
581
582 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
583
584 struct Symbol;
585
586 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
587
588 struct Type
589 {
590 struct Type * prev;
591 struct Type * next;
592 int refCount;
593 union
594 {
595 struct Symbol * _class;
596 struct
597 {
598 struct __ecereNameSpace__ecere__sys__OldList members;
599 char *  enumName;
600 } __attribute__ ((gcc_struct));
601 struct
602 {
603 struct Type * returnType;
604 struct __ecereNameSpace__ecere__sys__OldList params;
605 struct Symbol * thisClass;
606 unsigned int staticMethod;
607 struct TemplateParameter * thisClassTemplate;
608 } __attribute__ ((gcc_struct));
609 struct
610 {
611 struct __ecereNameSpace__ecere__com__Method * method;
612 struct __ecereNameSpace__ecere__com__Class * methodClass;
613 struct __ecereNameSpace__ecere__com__Class * usedClass;
614 } __attribute__ ((gcc_struct));
615 struct
616 {
617 struct Type * arrayType;
618 int arraySize;
619 struct Expression * arraySizeExp;
620 unsigned int freeExp;
621 struct Symbol * enumClass;
622 } __attribute__ ((gcc_struct));
623 struct Type * type;
624 struct TemplateParameter * templateParameter;
625 } __attribute__ ((gcc_struct));
626 int kind;
627 unsigned int size;
628 char *  name;
629 char *  typeName;
630 int classObjectType;
631 int alignment;
632 unsigned int offset;
633 int bitFieldCount;
634 int count;
635 unsigned int isSigned : 1;
636 unsigned int constant : 1;
637 unsigned int truth : 1;
638 unsigned int byReference : 1;
639 unsigned int extraParam : 1;
640 unsigned int directClassAccess : 1;
641 unsigned int computing : 1;
642 unsigned int keepCast : 1;
643 unsigned int passAsTemplate : 1;
644 unsigned int dllExport : 1;
645 unsigned int attrStdcall : 1;
646 unsigned int declaredWithStruct : 1;
647 } __attribute__ ((gcc_struct));
648
649 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
650
651 struct __ecereNameSpace__ecere__com__Class
652 {
653 struct __ecereNameSpace__ecere__com__Class * prev;
654 struct __ecereNameSpace__ecere__com__Class * next;
655 char *  name;
656 int offset;
657 int structSize;
658 int (* *  _vTbl)();
659 int vTblSize;
660 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
661 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
662 int offsetClass;
663 int sizeClass;
664 struct __ecereNameSpace__ecere__com__Class * base;
665 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
666 struct __ecereNameSpace__ecere__sys__BinaryTree members;
667 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
668 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
669 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
670 struct __ecereNameSpace__ecere__sys__OldList derivatives;
671 int memberID;
672 int startMemberID;
673 int type;
674 struct __ecereNameSpace__ecere__com__Instance * module;
675 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
676 char *  dataTypeString;
677 struct Type * dataType;
678 int typeSize;
679 int defaultAlignment;
680 void (*  Initialize)();
681 int memberOffset;
682 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
683 char *  designerClass;
684 unsigned int noExpansion;
685 char *  defaultProperty;
686 unsigned int comRedefinition;
687 int count;
688 unsigned int isRemote;
689 unsigned int internalDecl;
690 void *  data;
691 unsigned int computeSize;
692 int structAlignment;
693 int destructionWatchOffset;
694 unsigned int fixed;
695 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
696 int inheritanceAccess;
697 char *  fullName;
698 void *  symbol;
699 struct __ecereNameSpace__ecere__sys__OldList conversions;
700 struct __ecereNameSpace__ecere__sys__OldList templateParams;
701 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
702 struct __ecereNameSpace__ecere__com__Class * templateClass;
703 struct __ecereNameSpace__ecere__sys__OldList templatized;
704 int numParams;
705 unsigned int isInstanceClass;
706 } __attribute__ ((gcc_struct));
707
708 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
709
710 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
711
712 struct __ecereNameSpace__ecere__com__Instance
713 {
714 int (* *  _vTbl)();
715 struct __ecereNameSpace__ecere__com__Class * _class;
716 int _refCount;
717 } __attribute__ ((gcc_struct));
718
719 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
720
721 struct __ecereNameSpace__ecere__com__DataMember
722 {
723 struct __ecereNameSpace__ecere__com__DataMember * prev;
724 struct __ecereNameSpace__ecere__com__DataMember * next;
725 char *  name;
726 unsigned int isProperty;
727 int memberAccess;
728 int id;
729 struct __ecereNameSpace__ecere__com__Class * _class;
730 char *  dataTypeString;
731 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
732 struct Type * dataType;
733 int type;
734 int offset;
735 int memberID;
736 struct __ecereNameSpace__ecere__sys__OldList members;
737 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
738 int memberOffset;
739 int structAlignment;
740 } __attribute__ ((gcc_struct));
741
742 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
743
744 struct __ecereNameSpace__ecere__com__SerialBuffer
745 {
746 unsigned char *  _buffer;
747 unsigned int count;
748 unsigned int _size;
749 unsigned int pos;
750 } __attribute__ ((gcc_struct));
751
752 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
753
754 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
755 {
756 union
757 {
758 struct
759 {
760 char *  dataTypeString;
761 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
762 } __attribute__ ((gcc_struct));
763 struct __ecereNameSpace__ecere__com__DataValue expression;
764 struct
765 {
766 char *  memberString;
767 union
768 {
769 struct __ecereNameSpace__ecere__com__DataMember * member;
770 struct __ecereNameSpace__ecere__com__Property * prop;
771 struct __ecereNameSpace__ecere__com__Method * method;
772 } __attribute__ ((gcc_struct));
773 } __attribute__ ((gcc_struct));
774 } __attribute__ ((gcc_struct));
775 } __attribute__ ((gcc_struct));
776
777 extern struct Identifier * MkIdentifier(char *  string);
778
779 struct Specifier * CopySpecifier(struct Specifier * spec);
780
781 struct Identifier * CopyIdentifier(struct Identifier * id)
782 {
783 if(id)
784 {
785 struct Identifier * copy = MkIdentifier(id->string);
786
787 copy->_class = id->_class ? CopySpecifier(id->_class) : (((void *)0));
788 copy->classSym = id->classSym;
789 return copy;
790 }
791 return (((void *)0));
792 }
793
794 extern struct __ecereNameSpace__ecere__sys__OldList *  MkList(void);
795
796 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void *  item);
797
798 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
799
800 static struct Pointer * CopyPointer(struct Pointer * ptr)
801 {
802 if(ptr)
803 {
804 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
805 struct Specifier * spec;
806
807 if(ptr->qualifiers)
808 {
809 for(spec = (*ptr->qualifiers).first; spec; spec = spec->next)
810 ListAdd(list, CopySpecifier(spec));
811 }
812 return MkPointer(list, CopyPointer(ptr->pointer));
813 }
814 return (((void *)0));
815 }
816
817 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
818
819 struct Expression * CopyExpression(struct Expression * exp);
820
821 extern struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sys__OldList * list);
822
823 struct __ecereNameSpace__ecere__sys__OldList *  CopyList(struct __ecereNameSpace__ecere__sys__OldList *  source, void *  (*  CopyFunction)(void * ));
824
825 static struct Initializer * CopyInitializer(struct Initializer * initializer)
826 {
827 struct Initializer * copy = (((void *)0));
828
829 ;
830 if(initializer->type == 0)
831 copy = MkInitializerAssignment(CopyExpression(initializer->exp));
832 else if(initializer->type == 1)
833 copy = MkInitializerList(CopyList(initializer->list, CopyInitializer));
834 if(copy)
835 {
836 copy->loc = initializer->loc;
837 copy->isConstant = initializer->isConstant;
838 }
839 return copy;
840 }
841
842 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
843
844 struct MemberInit
845 {
846 struct MemberInit * prev;
847 struct MemberInit * next;
848 struct Location loc;
849 struct Location realLoc;
850 struct __ecereNameSpace__ecere__sys__OldList *  identifiers;
851 struct Initializer * initializer;
852 unsigned int used;
853 unsigned int variable;
854 unsigned int takeOutExp;
855 } __attribute__ ((gcc_struct));
856
857 extern struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer);
858
859 static struct MemberInit * CopyMemberInit(struct MemberInit * member)
860 {
861 return MkMemberInit(CopyList(member->identifiers, CopyIdentifier), CopyInitializer(member->initializer));
862 }
863
864 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
865
866 struct ClassFunction;
867
868 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
869
870 struct MembersInit
871 {
872 struct MembersInit * prev;
873 struct MembersInit * next;
874 struct Location loc;
875 int type;
876 union
877 {
878 struct __ecereNameSpace__ecere__sys__OldList *  dataMembers;
879 struct ClassFunction * function;
880 } __attribute__ ((gcc_struct));
881 } __attribute__ ((gcc_struct));
882
883 extern struct MembersInit * MkMembersInitList(struct __ecereNameSpace__ecere__sys__OldList * dataMembers);
884
885 static struct MembersInit * CopyMembersInit(struct MembersInit * members)
886 {
887 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
888
889 switch(members->type)
890 {
891 case 0:
892 {
893 if(members)
894 {
895 struct MemberInit * member;
896
897 list = MkList();
898 for(member = (*members->dataMembers).first; member; member = member->next)
899 ListAdd(list, CopyMemberInit(member));
900 }
901 }
902 }
903 return MkMembersInitList(list);
904 }
905
906 extern struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
907
908 static struct Instantiation * CopyInstantiation(struct Instantiation * inst)
909 {
910 struct Instantiation * copy;
911 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
912 struct MembersInit * member;
913
914 if(inst->members)
915 {
916 for(member = (*inst->members).first; member; member = member->next)
917 ListAdd(list, CopyMembersInit(member));
918 }
919 copy = MkInstantiation(CopySpecifier(inst->_class), CopyExpression(inst->exp), list);
920 copy->data = inst->data;
921 copy->loc = inst->loc;
922 copy->isConstant = inst->isConstant;
923 return copy;
924 }
925
926 extern struct Expression * MkExpDummy(void);
927
928 extern struct Expression * MkExpIdentifier(struct Identifier * id);
929
930 extern struct Expression * MkExpInstance(struct Instantiation * inst);
931
932 extern struct Expression * MkExpConstant(char *  string);
933
934 extern struct Expression * MkExpString(char *  string);
935
936 extern struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2);
937
938 extern struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions);
939
940 extern struct Expression * MkExpIndex(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * index);
941
942 extern struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments);
943
944 extern struct Expression * MkExpMember(struct Expression * expression, struct Identifier * member);
945
946 extern struct Expression * MkExpPointer(struct Expression * expression, struct Identifier * member);
947
948 extern struct Expression * MkExpTypeSize(struct TypeName * typeName);
949
950 struct TypeName * CopyTypeName(struct TypeName * typeName);
951
952 extern struct Expression * MkExpTypeAlign(struct TypeName * typeName);
953
954 extern struct Expression * MkExpCast(struct TypeName * typeName, struct Expression * expression);
955
956 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
957
958 extern struct Expression * MkExpVaArg(struct Expression * exp, struct TypeName * type);
959
960 extern struct Expression * MkExpExtensionCompound(struct Statement * compound);
961
962 static struct Statement * CopyStatement(struct Statement * stmt);
963
964 struct Expression * CopyExpression(struct Expression * exp)
965 {
966 struct Expression * result = (((void *)0));
967
968 if(exp)
969 switch(exp->type)
970 {
971 case 16:
972 result = MkExpDummy();
973 break;
974 case 0:
975 result = MkExpIdentifier(CopyIdentifier(exp->identifier));
976 break;
977 case 1:
978 result = MkExpInstance(CopyInstantiation(exp->instance));
979 break;
980 case 2:
981 result = MkExpConstant(exp->string);
982 break;
983 case 3:
984 result = MkExpString(exp->string);
985 break;
986 case 4:
987 result = MkExpOp(CopyExpression(exp->op.exp1), exp->op.op, CopyExpression(exp->op.exp2));
988 break;
989 case 5:
990 {
991 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
992 struct Expression * e;
993
994 for(e = (*exp->list).first; e; e = e->next)
995 ListAdd(list, CopyExpression(e));
996 result = MkExpBrackets(list);
997 break;
998 }
999 case 6:
1000 {
1001 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1002 struct Expression * e;
1003
1004 for(e = (*exp->index.index).first; e; e = e->next)
1005 ListAdd(list, CopyExpression(e));
1006 result = MkExpIndex(CopyExpression(exp->index.exp), list);
1007 break;
1008 }
1009 case 7:
1010 {
1011 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1012 struct Expression * arg;
1013
1014 if(exp->call.arguments)
1015 {
1016 for(arg = (*exp->call.arguments).first; arg; arg = arg->next)
1017 ListAdd(list, CopyExpression(arg));
1018 }
1019 result = MkExpCall(CopyExpression(exp->call.exp), list);
1020 break;
1021 }
1022 case 8:
1023 result = MkExpMember(CopyExpression(exp->member.exp), CopyIdentifier(exp->member.member));
1024 result->member.memberType = exp->member.memberType;
1025 result->member.thisPtr = exp->member.thisPtr;
1026 break;
1027 case 9:
1028 result = MkExpPointer(CopyExpression(exp->member.exp), CopyIdentifier(exp->member.member));
1029 break;
1030 case 10:
1031 result = MkExpTypeSize(CopyTypeName(exp->typeName));
1032 break;
1033 case 38:
1034 result = MkExpTypeAlign(CopyTypeName(exp->typeName));
1035 break;
1036 case 11:
1037 result = MkExpCast(CopyTypeName(exp->cast.typeName), CopyExpression(exp->cast.exp));
1038 break;
1039 case 12:
1040 {
1041 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1042 struct Expression * e;
1043
1044 for(e = (*exp->cond.exp).first; e; e = e->next)
1045 ListAdd(list, CopyExpression(e));
1046 result = MkExpCondition(CopyExpression(exp->cond.cond), list, CopyExpression(exp->cond.elseExp));
1047 break;
1048 }
1049 case 36:
1050 result = MkExpVaArg(CopyExpression(exp->vaArg.exp), CopyTypeName(exp->vaArg.typeName));
1051 break;
1052 case 25:
1053 result = MkExpExtensionCompound(CopyStatement(exp->compound));
1054 break;
1055 }
1056 if(result)
1057 {
1058 result->expType = exp->expType;
1059 if(exp->expType)
1060 exp->expType->refCount++;
1061 result->destType = exp->destType;
1062 if(exp->destType)
1063 exp->destType->refCount++;
1064 result->loc = exp->loc;
1065 result->isConstant = exp->isConstant;
1066 result->byReference = exp->byReference;
1067 }
1068 return result;
1069 }
1070
1071 extern struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements);
1072
1073 struct Declaration * CopyDeclaration(struct Declaration * decl);
1074
1075 extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions);
1076
1077 extern struct Statement * MkBadDeclStmt(struct Declaration * decl);
1078
1079 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
1080
1081 static struct Statement * CopyStatement(struct Statement * stmt)
1082 {
1083 struct Statement * result = (((void *)0));
1084
1085 if(stmt)
1086 {
1087 switch(stmt->type)
1088 {
1089 case 2:
1090 result = MkCompoundStmt(CopyList(stmt->compound.declarations, CopyDeclaration), CopyList(stmt->compound.statements, CopyStatement));
1091 result->compound.context = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1092 break;
1093 case 3:
1094 result = MkExpressionStmt(CopyList(stmt->expressions, CopyExpression));
1095 break;
1096 case 14:
1097 result = MkBadDeclStmt(CopyDeclaration(stmt->decl));
1098 break;
1099 }
1100 }
1101 if(result)
1102 {
1103 result->loc = stmt->loc;
1104 }
1105 return result;
1106 }
1107
1108 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
1109
1110 struct Enumerator
1111 {
1112 struct Enumerator * prev;
1113 struct Enumerator * next;
1114 struct Location loc;
1115 struct Identifier * id;
1116 struct Expression * exp;
1117 } __attribute__ ((gcc_struct));
1118
1119 extern struct Enumerator * MkEnumerator(struct Identifier * id, struct Expression * exp);
1120
1121 static struct Enumerator * CopyEnumerator(struct Enumerator * enumerator)
1122 {
1123 return MkEnumerator(CopyIdentifier(enumerator->id), CopyExpression(enumerator->exp));
1124 }
1125
1126 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1127
1128 struct PropertyDef;
1129
1130 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1131
1132 struct PropertyWatch;
1133
1134 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1135
1136 struct ClassDef
1137 {
1138 struct ClassDef * prev;
1139 struct ClassDef * next;
1140 struct Location loc;
1141 int type;
1142 union
1143 {
1144 struct Declaration * decl;
1145 struct ClassFunction * function;
1146 struct __ecereNameSpace__ecere__sys__OldList *  defProperties;
1147 struct PropertyDef * propertyDef;
1148 struct PropertyWatch * propertyWatch;
1149 char *  designer;
1150 struct Identifier * defaultProperty;
1151 struct
1152 {
1153 struct Identifier * id;
1154 struct Initializer * initializer;
1155 } __attribute__ ((gcc_struct));
1156 } __attribute__ ((gcc_struct));
1157 int memberAccess;
1158 void *  object;
1159 } __attribute__ ((gcc_struct));
1160
1161 extern struct ClassDef * MkClassDefDeclaration(struct Declaration * decl);
1162
1163 struct ClassDef * CopyClassDef(struct ClassDef * def)
1164 {
1165 switch(def->type)
1166 {
1167 case 0:
1168 return (((void *)0));
1169 case 1:
1170 return (((void *)0));
1171 case 2:
1172 return MkClassDefDeclaration(CopyDeclaration(def->decl));
1173 case 3:
1174 return (((void *)0));
1175 }
1176 return (((void *)0));
1177 }
1178
1179 extern struct Specifier * MkSpecifier(int specifier);
1180
1181 extern struct Specifier * MkEnum(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * list);
1182
1183 extern struct Specifier * MkStructOrUnion(int type, struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * definitions);
1184
1185 struct ExtDecl * CopyExtDecl(struct ExtDecl * extDecl);
1186
1187 extern char *  __ecereNameSpace__ecere__sys__CopyString(char *  string);
1188
1189 extern struct Specifier * MkSpecifierSubClass(struct Specifier * _class);
1190
1191 extern struct Specifier * MkSpecifierExtended(struct ExtDecl * extDecl);
1192
1193 struct Specifier * CopySpecifier(struct Specifier * spec)
1194 {
1195 if(spec)
1196 switch(spec->type)
1197 {
1198 case 0:
1199 return MkSpecifier(spec->specifier);
1200 case 2:
1201 {
1202 struct Identifier * id = CopyIdentifier(spec->id);
1203 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1204 struct Enumerator * enumerator;
1205
1206 if(spec->list)
1207 {
1208 for(enumerator = (*spec->list).first; enumerator; enumerator = enumerator->next)
1209 ListAdd(list, CopyEnumerator(enumerator));
1210 }
1211 return MkEnum(id, list);
1212 }
1213 case 3:
1214 case 4:
1215 {
1216 struct Identifier * id = CopyIdentifier(spec->id);
1217 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
1218 struct ClassDef * def;
1219 struct Specifier * s;
1220
1221 if(spec->definitions)
1222 {
1223 list = MkList();
1224 if(spec->list)
1225 {
1226 for(def = (*spec->list).first; def; def = def->next)
1227 ListAdd(list, CopyClassDef(def));
1228 }
1229 }
1230 s = MkStructOrUnion(spec->type, id, list);
1231 s->extDeclStruct = CopyExtDecl(spec->extDeclStruct);
1232 return s;
1233 }
1234 case 1:
1235 {
1236 struct Specifier * copy = (copy = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier), copy->type = 1, copy->name = __ecereNameSpace__ecere__sys__CopyString(spec->name), copy->symbol = spec->symbol, copy->templateArgs = (((void *)0)), copy);
1237
1238 return copy;
1239 }
1240 case 7:
1241 return MkSpecifierSubClass(CopySpecifier(spec->_class));
1242 case 8:
1243 return __extension__ ({
1244 struct Specifier * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier);
1245
1246 __ecereInstance1->loc = spec->loc, __ecereInstance1->type = 8, __ecereInstance1->templateParameter = spec->templateParameter, __ecereInstance1;
1247 });
1248 case 5:
1249 return MkSpecifierExtended(CopyExtDecl(spec->extDecl));
1250 }
1251 return (((void *)0));
1252 }
1253
1254 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
1255
1256 struct Declarator * CopyDeclarator(struct Declarator * declarator);
1257
1258 struct TypeName * CopyTypeName(struct TypeName * typeName)
1259 {
1260 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
1261 struct TypeName * copy;
1262
1263 if(typeName->qualifiers)
1264 {
1265 struct Specifier * spec;
1266
1267 list = MkList();
1268 for(spec = (*typeName->qualifiers).first; spec; spec = spec->next)
1269 ListAdd(list, CopySpecifier(spec));
1270 }
1271 copy = MkTypeName(list, CopyDeclarator(typeName->declarator));
1272 copy->classObjectType = typeName->classObjectType;
1273 return copy;
1274 }
1275
1276 extern struct ExtDecl * MkExtDeclAttrib(struct Attrib * attr);
1277
1278 struct Attrib * CopyAttrib(struct Attrib * attrib);
1279
1280 extern struct ExtDecl * MkExtDeclString(char * s);
1281
1282 struct ExtDecl * CopyExtDecl(struct ExtDecl * extDecl)
1283 {
1284 if(extDecl)
1285 {
1286 if(extDecl->type == 1)
1287 return MkExtDeclAttrib(CopyAttrib(extDecl->attr));
1288 else if(extDecl->type == 0)
1289 return MkExtDeclString(__ecereNameSpace__ecere__sys__CopyString(extDecl->s));
1290 }
1291 return (((void *)0));
1292 }
1293
1294 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
1295
1296 struct Attribute
1297 {
1298 struct Attribute * prev;
1299 struct Attribute * next;
1300 struct Location loc;
1301 char * attr;
1302 struct Expression * exp;
1303 } __attribute__ ((gcc_struct));
1304
1305 extern struct Attribute * MkAttribute(char * attr, struct Expression * exp);
1306
1307 struct Attribute * CopyAttribute(struct Attribute * attrib)
1308 {
1309 if(attrib)
1310 return MkAttribute(__ecereNameSpace__ecere__sys__CopyString(attrib->attr), CopyExpression(attrib->exp));
1311 return (((void *)0));
1312 }
1313
1314 extern struct Attrib * MkAttrib(int type, struct __ecereNameSpace__ecere__sys__OldList *  attribs);
1315
1316 struct Attrib * CopyAttrib(struct Attrib * attrib)
1317 {
1318 if(attrib)
1319 return MkAttrib(attrib->type, CopyList(attrib->attribs, CopyAttribute));
1320 return (((void *)0));
1321 }
1322
1323 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
1324
1325 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1326
1327 extern struct Declarator * MkDeclaratorBrackets(struct Declarator * declarator);
1328
1329 extern struct Declarator * MkDeclaratorEnumArray(struct Declarator * declarator, struct Specifier * _class);
1330
1331 extern struct Declarator * MkDeclaratorArray(struct Declarator * declarator, struct Expression * exp);
1332
1333 extern struct Declarator * MkDeclaratorFunction(struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * parameters);
1334
1335 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
1336
1337 extern struct Declarator * MkDeclaratorExtended(struct ExtDecl * extended, struct Declarator * declarator);
1338
1339 extern struct Declarator * MkDeclaratorExtendedEnd(struct ExtDecl * extended, struct Declarator * declarator);
1340
1341 struct Declarator * CopyDeclarator(struct Declarator * declarator)
1342 {
1343 if(declarator)
1344 {
1345 switch(declarator->type)
1346 {
1347 case 0:
1348 {
1349 struct Declarator * decl = MkStructDeclarator(CopyDeclarator(declarator->declarator), CopyExpression(declarator->structDecl.exp));
1350
1351 if(declarator->structDecl.attrib)
1352 decl->structDecl.attrib = CopyAttrib(declarator->structDecl.attrib);
1353 return decl;
1354 }
1355 case 1:
1356 return MkDeclaratorIdentifier(CopyIdentifier(declarator->identifier));
1357 case 2:
1358 return MkDeclaratorBrackets(CopyDeclarator(declarator->declarator));
1359 case 3:
1360 if(declarator->array.enumClass)
1361 return MkDeclaratorEnumArray(CopyDeclarator(declarator->declarator), CopySpecifier(declarator->array.enumClass));
1362 else
1363 return MkDeclaratorArray(CopyDeclarator(declarator->declarator), CopyExpression(declarator->array.exp));
1364 case 4:
1365 {
1366 struct __ecereNameSpace__ecere__sys__OldList * parameters = MkList();
1367 struct TypeName * param;
1368
1369 if(declarator->function.parameters)
1370 {
1371 for(param = (*declarator->function.parameters).first; param; param = param->next)
1372 ListAdd(parameters, CopyTypeName(param));
1373 }
1374 return MkDeclaratorFunction(CopyDeclarator(declarator->declarator), parameters);
1375 }
1376 case 5:
1377 return MkDeclaratorPointer(CopyPointer(declarator->pointer.pointer), CopyDeclarator(declarator->declarator));
1378 case 6:
1379 return MkDeclaratorExtended(CopyExtDecl(declarator->extended.extended), CopyDeclarator(declarator->declarator));
1380 case 7:
1381 return MkDeclaratorExtendedEnd(CopyExtDecl(declarator->extended.extended), CopyDeclarator(declarator->declarator));
1382 }
1383 }
1384 return (((void *)0));
1385 }
1386
1387 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
1388
1389 struct InitDeclarator
1390 {
1391 struct InitDeclarator * prev;
1392 struct InitDeclarator * next;
1393 struct Location loc;
1394 struct Declarator * declarator;
1395 struct Initializer * initializer;
1396 } __attribute__ ((gcc_struct));
1397
1398 extern struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer);
1399
1400 struct InitDeclarator * CopyInitDeclarator(struct InitDeclarator * initDecl)
1401 {
1402 return MkInitDeclarator(CopyDeclarator(initDecl->declarator), CopyInitializer(initDecl->initializer));
1403 }
1404
1405 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
1406
1407 struct Declaration * CopyDeclaration(struct Declaration * decl)
1408 {
1409 if(decl->type == 1)
1410 {
1411 return MkDeclaration(CopyList(decl->specifiers, CopySpecifier), CopyList(decl->declarators, CopyInitDeclarator));
1412 }
1413 else
1414 {
1415 struct __ecereNameSpace__ecere__sys__OldList * specifiers = MkList(), * declarators = MkList();
1416 struct Specifier * spec;
1417 struct Declarator * declarator;
1418
1419 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
1420 ListAdd(specifiers, CopySpecifier(spec));
1421 if(decl->declarators)
1422 {
1423 for(declarator = (*decl->declarators).first; declarator; declarator = declarator->next)
1424 ListAdd(declarators, CopyDeclarator(declarator));
1425 }
1426 return MkDeclaration(specifiers, declarators);
1427 }
1428 }
1429
1430 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__Item;
1431
1432 struct __ecereNameSpace__ecere__sys__Item
1433 {
1434 struct __ecereNameSpace__ecere__sys__Item * prev;
1435 struct __ecereNameSpace__ecere__sys__Item * next;
1436 } __attribute__ ((gcc_struct));
1437
1438 struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void *))
1439 {
1440 struct __ecereNameSpace__ecere__sys__OldList * list = (((void *)0));
1441
1442 if(source)
1443 {
1444 struct __ecereNameSpace__ecere__sys__Item * item;
1445
1446 list = MkList();
1447 for(item = (*source).first; item; item = item->next)
1448 ListAdd(list, CopyFunction(item));
1449 }
1450 return list;
1451 }
1452
1453 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
1454
1455 struct __ecereNameSpace__ecere__com__GlobalFunction;
1456
1457 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
1458
1459 void __ecereRegisterModule_copy(struct __ecereNameSpace__ecere__com__Instance * module)
1460 {
1461 struct __ecereNameSpace__ecere__com__Class * class;
1462
1463 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyIdentifier", "Identifier CopyIdentifier(Identifier id)", CopyIdentifier, module, 2);
1464 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyExpression", "Expression CopyExpression(Expression exp)", CopyExpression, module, 1);
1465 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyClassDef", "ClassDef CopyClassDef(ClassDef def)", CopyClassDef, module, 2);
1466 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopySpecifier", "Specifier CopySpecifier(Specifier spec)", CopySpecifier, module, 2);
1467 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyTypeName", "TypeName CopyTypeName(TypeName typeName)", CopyTypeName, module, 2);
1468 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyExtDecl", "ExtDecl CopyExtDecl(ExtDecl extDecl)", CopyExtDecl, module, 2);
1469 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyAttribute", "Attribute CopyAttribute(Attribute attrib)", CopyAttribute, module, 2);
1470 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyAttrib", "Attrib CopyAttrib(Attrib attrib)", CopyAttrib, module, 2);
1471 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyDeclarator", "Declarator CopyDeclarator(Declarator declarator)", CopyDeclarator, module, 2);
1472 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyInitDeclarator", "InitDeclarator CopyInitDeclarator(InitDeclarator initDecl)", CopyInitDeclarator, module, 2);
1473 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyDeclaration", "Declaration CopyDeclaration(Declaration decl)", CopyDeclaration, module, 2);
1474 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyList", "ecere::sys::OldList * CopyList(ecere::sys::OldList * source, void * (* CopyFunction)(void *))", CopyList, module, 2);
1475 }
1476
1477 void __ecereUnregisterModule_copy(struct __ecereNameSpace__ecere__com__Instance * module)
1478 {
1479
1480 }
1481