compiler/ecere: completed intptr/uintptr support
[sdk] / compiler / bootstrap / libec / bootstrap / freeAst.c
1 #if defined(__GNUC__)
2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #elif defined(__TINYC__)
5 #include <stdarg.h>
6 #define __builtin_va_list va_list
7 #define __builtin_va_start va_start
8 #define __builtin_va_end va_end
9 #ifdef _WIN32
10 #define strcasecmp stricmp
11 #define strncasecmp strnicmp
12 #define __declspec(x) __attribute__((x))
13 #endif
14 typedef long long int64;
15 typedef unsigned long long uint64;
16 #else
17 typedef __int64 int64;
18 typedef unsigned __int64 uint64;
19 #endif
20 #ifdef __BIG_ENDIAN__
21 #define __ENDIAN_PAD(x) (8 - (x))
22 #else
23 #define __ENDIAN_PAD(x) 0
24 #endif
25 #include <stdint.h>
26 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
27
28 struct __ecereNameSpace__ecere__sys__BTNode;
29
30 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
31
32 struct __ecereNameSpace__ecere__sys__BinaryTree
33 {
34 struct __ecereNameSpace__ecere__sys__BTNode * root;
35 int count;
36 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
37 void (*  FreeKey)(void *  key);
38 } __attribute__ ((gcc_struct));
39
40 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
41
42 struct __ecereNameSpace__ecere__sys__OldList
43 {
44 void *  first;
45 void *  last;
46 int count;
47 unsigned int offset;
48 unsigned int circ;
49 } __attribute__ ((gcc_struct));
50
51 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
52
53 struct __ecereNameSpace__ecere__com__Method
54 {
55 char *  name;
56 struct __ecereNameSpace__ecere__com__Method * parent;
57 struct __ecereNameSpace__ecere__com__Method * left;
58 struct __ecereNameSpace__ecere__com__Method * right;
59 int depth;
60 int (*  function)();
61 int vid;
62 int type;
63 struct __ecereNameSpace__ecere__com__Class * _class;
64 void *  symbol;
65 char *  dataTypeString;
66 struct Type * dataType;
67 int memberAccess;
68 } __attribute__ ((gcc_struct));
69
70 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
71
72 struct __ecereNameSpace__ecere__com__Property
73 {
74 struct __ecereNameSpace__ecere__com__Property * prev;
75 struct __ecereNameSpace__ecere__com__Property * next;
76 char *  name;
77 unsigned int isProperty;
78 int memberAccess;
79 int id;
80 struct __ecereNameSpace__ecere__com__Class * _class;
81 char *  dataTypeString;
82 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
83 struct Type * dataType;
84 void (*  Set)();
85 int (*  Get)();
86 unsigned int (*  IsSet)();
87 void *  data;
88 void *  symbol;
89 int vid;
90 unsigned int conversion;
91 unsigned int watcherOffset;
92 char *  category;
93 unsigned int compiled;
94 unsigned int selfWatchable;
95 unsigned int isWatchable;
96 } __attribute__ ((gcc_struct));
97
98 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
99
100 struct CodePosition
101 {
102 int line;
103 int charPos;
104 int pos;
105 unsigned int included;
106 } __attribute__ ((gcc_struct));
107
108 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
109
110 struct Location
111 {
112 struct CodePosition start;
113 struct CodePosition end;
114 } __attribute__ ((gcc_struct));
115
116 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
117
118 struct Attrib
119 {
120 struct Location loc;
121 int type;
122 struct __ecereNameSpace__ecere__sys__OldList *  attribs;
123 } __attribute__ ((gcc_struct));
124
125 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
126
127 struct ExtDecl
128 {
129 struct Location loc;
130 int type;
131 union
132 {
133 char * s;
134 struct Attrib * attr;
135 } __attribute__ ((gcc_struct));
136 } __attribute__ ((gcc_struct));
137
138 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
139
140 struct ClassDefinition
141 {
142 struct ClassDefinition * prev;
143 struct ClassDefinition * next;
144 struct Location loc;
145 struct Specifier * _class;
146 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
147 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
148 struct Symbol * symbol;
149 struct Location blockStart;
150 struct Location nameLoc;
151 int endid;
152 int declMode;
153 unsigned int deleteWatchable;
154 } __attribute__ ((gcc_struct));
155
156 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
157
158 struct Context
159 {
160 struct Context * parent;
161 struct __ecereNameSpace__ecere__sys__BinaryTree types;
162 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
163 struct __ecereNameSpace__ecere__sys__BinaryTree symbols;
164 struct __ecereNameSpace__ecere__sys__BinaryTree structSymbols;
165 int nextID;
166 int simpleID;
167 struct __ecereNameSpace__ecere__sys__BinaryTree templateTypes;
168 struct ClassDefinition * classDef;
169 unsigned int templateTypesOnly;
170 unsigned int hasNameSpace;
171 } __attribute__ ((gcc_struct));
172
173 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
174
175 struct Instantiation
176 {
177 struct Instantiation * prev;
178 struct Instantiation * next;
179 struct Location loc;
180 struct Specifier * _class;
181 struct Expression * exp;
182 struct __ecereNameSpace__ecere__sys__OldList *  members;
183 struct Symbol * symbol;
184 unsigned int fullSet;
185 unsigned int isConstant;
186 unsigned char *  data;
187 struct Location nameLoc;
188 struct Location insideLoc;
189 unsigned int built;
190 } __attribute__ ((gcc_struct));
191
192 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
193
194 struct Declaration
195 {
196 struct Declaration * prev;
197 struct Declaration * next;
198 struct Location loc;
199 int type;
200 union
201 {
202 struct
203 {
204 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
205 struct __ecereNameSpace__ecere__sys__OldList *  declarators;
206 } __attribute__ ((gcc_struct));
207 struct Instantiation * inst;
208 struct
209 {
210 struct Identifier * id;
211 struct Expression * exp;
212 } __attribute__ ((gcc_struct));
213 } __attribute__ ((gcc_struct));
214 struct Specifier * extStorage;
215 struct Symbol * symbol;
216 int declMode;
217 } __attribute__ ((gcc_struct));
218
219 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
220
221 struct Statement
222 {
223 struct Statement * prev;
224 struct Statement * next;
225 struct Location loc;
226 int type;
227 union
228 {
229 struct __ecereNameSpace__ecere__sys__OldList *  expressions;
230 struct
231 {
232 struct Identifier * id;
233 struct Statement * stmt;
234 } __attribute__ ((gcc_struct)) labeled;
235 struct
236 {
237 struct Expression * exp;
238 struct Statement * stmt;
239 } __attribute__ ((gcc_struct)) caseStmt;
240 struct
241 {
242 struct __ecereNameSpace__ecere__sys__OldList * declarations;
243 struct __ecereNameSpace__ecere__sys__OldList * statements;
244 struct Context * context;
245 unsigned int isSwitch;
246 } __attribute__ ((gcc_struct)) compound;
247 struct
248 {
249 struct __ecereNameSpace__ecere__sys__OldList * exp;
250 struct Statement * stmt;
251 struct Statement * elseStmt;
252 } __attribute__ ((gcc_struct)) ifStmt;
253 struct
254 {
255 struct __ecereNameSpace__ecere__sys__OldList * exp;
256 struct Statement * stmt;
257 } __attribute__ ((gcc_struct)) switchStmt;
258 struct
259 {
260 struct __ecereNameSpace__ecere__sys__OldList * exp;
261 struct Statement * stmt;
262 } __attribute__ ((gcc_struct)) whileStmt;
263 struct
264 {
265 struct __ecereNameSpace__ecere__sys__OldList * exp;
266 struct Statement * stmt;
267 } __attribute__ ((gcc_struct)) doWhile;
268 struct
269 {
270 struct Statement * init;
271 struct Statement * check;
272 struct __ecereNameSpace__ecere__sys__OldList * increment;
273 struct Statement * stmt;
274 } __attribute__ ((gcc_struct)) forStmt;
275 struct
276 {
277 struct Identifier * id;
278 } __attribute__ ((gcc_struct)) gotoStmt;
279 struct
280 {
281 struct Specifier * spec;
282 char * statements;
283 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
284 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
285 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
286 } __attribute__ ((gcc_struct)) asmStmt;
287 struct
288 {
289 struct Expression * watcher;
290 struct Expression * object;
291 struct __ecereNameSpace__ecere__sys__OldList * watches;
292 } __attribute__ ((gcc_struct)) _watch;
293 struct
294 {
295 struct Identifier * id;
296 struct __ecereNameSpace__ecere__sys__OldList * exp;
297 struct __ecereNameSpace__ecere__sys__OldList * filter;
298 struct Statement * stmt;
299 } __attribute__ ((gcc_struct)) forEachStmt;
300 struct Declaration * decl;
301 } __attribute__ ((gcc_struct));
302 } __attribute__ ((gcc_struct));
303
304 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
305
306 struct TypeName
307 {
308 struct TypeName * prev;
309 struct TypeName * next;
310 struct Location loc;
311 struct __ecereNameSpace__ecere__sys__OldList *  qualifiers;
312 struct Declarator * declarator;
313 int classObjectType;
314 struct Expression * bitCount;
315 } __attribute__ ((gcc_struct));
316
317 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
318
319 struct Initializer
320 {
321 struct Initializer * prev;
322 struct Initializer * next;
323 struct Location loc;
324 int type;
325 union
326 {
327 struct Expression * exp;
328 struct __ecereNameSpace__ecere__sys__OldList *  list;
329 } __attribute__ ((gcc_struct));
330 unsigned int isConstant;
331 } __attribute__ ((gcc_struct));
332
333 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
334
335 struct __ecereNameSpace__ecere__com__DataValue
336 {
337 union
338 {
339 char c;
340 unsigned char uc;
341 short s;
342 unsigned short us;
343 int i;
344 unsigned int ui;
345 void *  p;
346 float f;
347 double d;
348 long long i64;
349 uint64 ui64;
350 } __attribute__ ((gcc_struct));
351 } __attribute__ ((gcc_struct));
352
353 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
354
355 struct Expression
356 {
357 struct Expression * prev;
358 struct Expression * next;
359 struct Location loc;
360 int type;
361 union
362 {
363 struct
364 {
365 char *  constant;
366 struct Identifier * identifier;
367 } __attribute__ ((gcc_struct));
368 struct Statement * compound;
369 struct Instantiation * instance;
370 char *  string;
371 struct __ecereNameSpace__ecere__sys__OldList *  list;
372 struct
373 {
374 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
375 struct Declarator * decl;
376 } __attribute__ ((gcc_struct)) _classExp;
377 struct
378 {
379 struct Identifier * id;
380 } __attribute__ ((gcc_struct)) classData;
381 struct
382 {
383 struct Expression * exp;
384 struct __ecereNameSpace__ecere__sys__OldList * arguments;
385 struct Location argLoc;
386 } __attribute__ ((gcc_struct)) call;
387 struct
388 {
389 struct Expression * exp;
390 struct __ecereNameSpace__ecere__sys__OldList * index;
391 } __attribute__ ((gcc_struct)) index;
392 struct
393 {
394 struct Expression * exp;
395 struct Identifier * member;
396 int memberType;
397 unsigned int thisPtr;
398 } __attribute__ ((gcc_struct)) member;
399 struct
400 {
401 int op;
402 struct Expression * exp1;
403 struct Expression * exp2;
404 } __attribute__ ((gcc_struct)) op;
405 struct TypeName * typeName;
406 struct Specifier * _class;
407 struct
408 {
409 struct TypeName * typeName;
410 struct Expression * exp;
411 } __attribute__ ((gcc_struct)) cast;
412 struct
413 {
414 struct Expression * cond;
415 struct __ecereNameSpace__ecere__sys__OldList * exp;
416 struct Expression * elseExp;
417 } __attribute__ ((gcc_struct)) cond;
418 struct
419 {
420 struct TypeName * typeName;
421 struct Expression * size;
422 } __attribute__ ((gcc_struct)) _new;
423 struct
424 {
425 struct TypeName * typeName;
426 struct Expression * size;
427 struct Expression * exp;
428 } __attribute__ ((gcc_struct)) _renew;
429 struct
430 {
431 char * table;
432 struct Identifier * id;
433 } __attribute__ ((gcc_struct)) db;
434 struct
435 {
436 struct Expression * ds;
437 struct Expression * name;
438 } __attribute__ ((gcc_struct)) dbopen;
439 struct
440 {
441 struct TypeName * typeName;
442 struct Initializer * initializer;
443 } __attribute__ ((gcc_struct)) initializer;
444 struct
445 {
446 struct Expression * exp;
447 struct TypeName * typeName;
448 } __attribute__ ((gcc_struct)) vaArg;
449 } __attribute__ ((gcc_struct));
450 unsigned int debugValue;
451 struct __ecereNameSpace__ecere__com__DataValue val;
452 unsigned int address;
453 unsigned int hasAddress;
454 struct Type * expType;
455 struct Type * destType;
456 unsigned int usage;
457 int tempCount;
458 unsigned int byReference;
459 unsigned int isConstant;
460 unsigned int addedThis;
461 unsigned int needCast;
462 unsigned int thisPtr;
463 } __attribute__ ((gcc_struct));
464
465 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
466
467 struct TemplateDatatype
468 {
469 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
470 struct Declarator * decl;
471 } __attribute__ ((gcc_struct));
472
473 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
474
475 struct TemplateArgument
476 {
477 struct TemplateArgument * prev;
478 struct TemplateArgument * next;
479 struct Location loc;
480 struct Identifier * name;
481 int type;
482 union
483 {
484 struct Expression * expression;
485 struct Identifier * identifier;
486 struct TemplateDatatype * templateDatatype;
487 } __attribute__ ((gcc_struct));
488 } __attribute__ ((gcc_struct));
489
490 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
491
492 struct TemplateParameter
493 {
494 struct TemplateParameter * prev;
495 struct TemplateParameter * next;
496 struct Location loc;
497 int type;
498 struct Identifier * identifier;
499 union
500 {
501 struct TemplateDatatype * dataType;
502 int memberType;
503 } __attribute__ ((gcc_struct));
504 struct TemplateArgument * defaultArgument;
505 char *  dataTypeString;
506 struct Type * baseType;
507 } __attribute__ ((gcc_struct));
508
509 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
510
511 struct Specifier
512 {
513 struct Specifier * prev;
514 struct Specifier * next;
515 struct Location loc;
516 int type;
517 union
518 {
519 int specifier;
520 struct
521 {
522 struct ExtDecl * extDecl;
523 char *  name;
524 struct Symbol * symbol;
525 struct __ecereNameSpace__ecere__sys__OldList *  templateArgs;
526 } __attribute__ ((gcc_struct));
527 struct
528 {
529 struct Identifier * id;
530 struct __ecereNameSpace__ecere__sys__OldList *  list;
531 struct __ecereNameSpace__ecere__sys__OldList *  baseSpecs;
532 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
533 unsigned int addNameSpace;
534 struct Context * ctx;
535 } __attribute__ ((gcc_struct));
536 struct Expression * expression;
537 struct Specifier * _class;
538 struct TemplateParameter * templateParameter;
539 } __attribute__ ((gcc_struct));
540 } __attribute__ ((gcc_struct));
541
542 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
543
544 struct Identifier
545 {
546 struct Identifier * prev;
547 struct Identifier * next;
548 struct Location loc;
549 struct Symbol * classSym;
550 struct Specifier * _class;
551 char *  string;
552 struct Identifier * badID;
553 } __attribute__ ((gcc_struct));
554
555 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
556
557 struct Pointer
558 {
559 struct Pointer * prev;
560 struct Pointer * next;
561 struct Location loc;
562 struct __ecereNameSpace__ecere__sys__OldList *  qualifiers;
563 struct Pointer * pointer;
564 } __attribute__ ((gcc_struct));
565
566 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
567
568 struct Declarator
569 {
570 struct Declarator * prev;
571 struct Declarator * next;
572 struct Location loc;
573 int type;
574 struct Symbol * symbol;
575 struct Declarator * declarator;
576 union
577 {
578 struct Identifier * identifier;
579 struct
580 {
581 struct Expression * exp;
582 struct Expression * posExp;
583 struct Attrib * attrib;
584 } __attribute__ ((gcc_struct)) structDecl;
585 struct
586 {
587 struct Expression * exp;
588 struct Specifier * enumClass;
589 } __attribute__ ((gcc_struct)) array;
590 struct
591 {
592 struct __ecereNameSpace__ecere__sys__OldList * parameters;
593 } __attribute__ ((gcc_struct)) function;
594 struct
595 {
596 struct Pointer * pointer;
597 } __attribute__ ((gcc_struct)) pointer;
598 struct
599 {
600 struct ExtDecl * extended;
601 } __attribute__ ((gcc_struct)) extended;
602 } __attribute__ ((gcc_struct));
603 } __attribute__ ((gcc_struct));
604
605 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
606
607 struct FunctionDefinition
608 {
609 struct FunctionDefinition * prev;
610 struct FunctionDefinition * next;
611 struct Location loc;
612 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
613 struct Declarator * declarator;
614 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
615 struct Statement * body;
616 struct __ecereNameSpace__ecere__com__Class * _class;
617 struct __ecereNameSpace__ecere__sys__OldList attached;
618 int declMode;
619 struct Type * type;
620 struct Symbol * propSet;
621 int tempCount;
622 unsigned int propertyNoThis;
623 } __attribute__ ((gcc_struct));
624
625 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
626
627 struct DBTableDef
628 {
629 char *  name;
630 struct Symbol * symbol;
631 struct __ecereNameSpace__ecere__sys__OldList *  definitions;
632 int declMode;
633 } __attribute__ ((gcc_struct));
634
635 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
636
637 struct External
638 {
639 struct External * prev;
640 struct External * next;
641 struct Location loc;
642 int type;
643 struct Symbol * symbol;
644 union
645 {
646 struct FunctionDefinition * function;
647 struct ClassDefinition * _class;
648 struct Declaration * declaration;
649 char *  importString;
650 struct Identifier * id;
651 struct DBTableDef * table;
652 } __attribute__ ((gcc_struct));
653 int importType;
654 } __attribute__ ((gcc_struct));
655
656 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
657
658 struct ModuleImport
659 {
660 struct ModuleImport * prev;
661 struct ModuleImport * next;
662 char *  name;
663 struct __ecereNameSpace__ecere__sys__OldList classes;
664 struct __ecereNameSpace__ecere__sys__OldList functions;
665 int importType;
666 int importAccess;
667 } __attribute__ ((gcc_struct));
668
669 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
670
671 struct ClassImport
672 {
673 struct ClassImport * prev;
674 struct ClassImport * next;
675 char *  name;
676 struct __ecereNameSpace__ecere__sys__OldList methods;
677 struct __ecereNameSpace__ecere__sys__OldList properties;
678 unsigned int itself;
679 unsigned int isRemote;
680 } __attribute__ ((gcc_struct));
681
682 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
683
684 struct Symbol
685 {
686 char *  string;
687 struct Symbol * parent;
688 struct Symbol * left;
689 struct Symbol * right;
690 int depth;
691 struct Type * type;
692 union
693 {
694 struct __ecereNameSpace__ecere__com__Method * method;
695 struct __ecereNameSpace__ecere__com__Property * _property;
696 struct __ecereNameSpace__ecere__com__Class * registered;
697 } __attribute__ ((gcc_struct));
698 int id;
699 int idCode;
700 union
701 {
702 struct
703 {
704 struct External * pointerExternal;
705 struct External * structExternal;
706 } __attribute__ ((gcc_struct));
707 struct
708 {
709 struct External * externalGet;
710 struct External * externalSet;
711 struct External * externalPtr;
712 struct External * externalIsSet;
713 } __attribute__ ((gcc_struct));
714 struct
715 {
716 struct External * methodExternal;
717 struct External * methodCodeExternal;
718 } __attribute__ ((gcc_struct));
719 } __attribute__ ((gcc_struct));
720 unsigned int imported;
721 unsigned int declaredStructSym;
722 struct __ecereNameSpace__ecere__com__Class * _class;
723 unsigned int declaredStruct;
724 unsigned int needConstructor;
725 unsigned int needDestructor;
726 char *  constructorName;
727 char *  structName;
728 char *  className;
729 char *  destructorName;
730 struct ModuleImport * module;
731 struct ClassImport * _import;
732 struct Location nameLoc;
733 unsigned int isParam;
734 unsigned int isRemote;
735 unsigned int isStruct;
736 unsigned int fireWatchersDone;
737 int declaring;
738 unsigned int classData;
739 unsigned int isStatic;
740 char *  shortName;
741 struct __ecereNameSpace__ecere__sys__OldList *  templateParams;
742 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
743 struct Context * ctx;
744 int isIterator;
745 struct Expression * propCategory;
746 } __attribute__ ((gcc_struct));
747
748 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
749
750 struct Type
751 {
752 struct Type * prev;
753 struct Type * next;
754 int refCount;
755 union
756 {
757 struct Symbol * _class;
758 struct
759 {
760 struct __ecereNameSpace__ecere__sys__OldList members;
761 char *  enumName;
762 } __attribute__ ((gcc_struct));
763 struct
764 {
765 struct Type * returnType;
766 struct __ecereNameSpace__ecere__sys__OldList params;
767 struct Symbol * thisClass;
768 unsigned int staticMethod;
769 struct TemplateParameter * thisClassTemplate;
770 } __attribute__ ((gcc_struct));
771 struct
772 {
773 struct __ecereNameSpace__ecere__com__Method * method;
774 struct __ecereNameSpace__ecere__com__Class * methodClass;
775 struct __ecereNameSpace__ecere__com__Class * usedClass;
776 } __attribute__ ((gcc_struct));
777 struct
778 {
779 struct Type * arrayType;
780 int arraySize;
781 struct Expression * arraySizeExp;
782 unsigned int freeExp;
783 struct Symbol * enumClass;
784 } __attribute__ ((gcc_struct));
785 struct Type * type;
786 struct TemplateParameter * templateParameter;
787 } __attribute__ ((gcc_struct));
788 unsigned int isSigned;
789 int kind;
790 unsigned int constant;
791 unsigned int size;
792 char *  name;
793 char *  typeName;
794 unsigned int count;
795 unsigned int truth;
796 int classObjectType;
797 unsigned int byReference;
798 unsigned int extraParam;
799 int alignment;
800 unsigned int directClassAccess;
801 unsigned int computing;
802 unsigned int dllExport;
803 unsigned int offset;
804 unsigned int keepCast;
805 unsigned int passAsTemplate;
806 int bitFieldCount;
807 } __attribute__ ((gcc_struct));
808
809 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
810
811 struct __ecereNameSpace__ecere__com__Class
812 {
813 struct __ecereNameSpace__ecere__com__Class * prev;
814 struct __ecereNameSpace__ecere__com__Class * next;
815 char *  name;
816 int offset;
817 int structSize;
818 int (* *  _vTbl)();
819 int vTblSize;
820 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
821 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
822 int offsetClass;
823 int sizeClass;
824 struct __ecereNameSpace__ecere__com__Class * base;
825 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
826 struct __ecereNameSpace__ecere__sys__BinaryTree members;
827 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
828 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
829 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
830 struct __ecereNameSpace__ecere__sys__OldList derivatives;
831 int memberID;
832 int startMemberID;
833 int type;
834 struct __ecereNameSpace__ecere__com__Instance * module;
835 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
836 char *  dataTypeString;
837 struct Type * dataType;
838 int typeSize;
839 int defaultAlignment;
840 void (*  Initialize)();
841 int memberOffset;
842 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
843 char *  designerClass;
844 unsigned int noExpansion;
845 char *  defaultProperty;
846 unsigned int comRedefinition;
847 int count;
848 unsigned int isRemote;
849 unsigned int internalDecl;
850 void *  data;
851 unsigned int computeSize;
852 int structAlignment;
853 int destructionWatchOffset;
854 unsigned int fixed;
855 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
856 int inheritanceAccess;
857 char *  fullName;
858 void *  symbol;
859 struct __ecereNameSpace__ecere__sys__OldList conversions;
860 struct __ecereNameSpace__ecere__sys__OldList templateParams;
861 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
862 struct __ecereNameSpace__ecere__com__Class * templateClass;
863 struct __ecereNameSpace__ecere__sys__OldList templatized;
864 int numParams;
865 } __attribute__ ((gcc_struct));
866
867 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
868
869 struct __ecereNameSpace__ecere__com__Instance
870 {
871 int (* *  _vTbl)();
872 struct __ecereNameSpace__ecere__com__Class * _class;
873 int _refCount;
874 } __attribute__ ((gcc_struct));
875
876 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
877
878 struct __ecereNameSpace__ecere__com__DataMember
879 {
880 struct __ecereNameSpace__ecere__com__DataMember * prev;
881 struct __ecereNameSpace__ecere__com__DataMember * next;
882 char *  name;
883 unsigned int isProperty;
884 int memberAccess;
885 int id;
886 struct __ecereNameSpace__ecere__com__Class * _class;
887 char *  dataTypeString;
888 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
889 struct Type * dataType;
890 int type;
891 int offset;
892 int memberID;
893 struct __ecereNameSpace__ecere__sys__OldList members;
894 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
895 int memberOffset;
896 int structAlignment;
897 } __attribute__ ((gcc_struct));
898
899 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
900
901 struct __ecereNameSpace__ecere__com__SerialBuffer
902 {
903 unsigned char *  _buffer;
904 unsigned int count;
905 unsigned int _size;
906 unsigned int pos;
907 } __attribute__ ((gcc_struct));
908
909 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
910
911 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
912 {
913 union
914 {
915 struct
916 {
917 char *  dataTypeString;
918 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
919 } __attribute__ ((gcc_struct));
920 struct __ecereNameSpace__ecere__com__DataValue expression;
921 struct
922 {
923 char *  memberString;
924 union
925 {
926 struct __ecereNameSpace__ecere__com__DataMember * member;
927 struct __ecereNameSpace__ecere__com__Property * prop;
928 struct __ecereNameSpace__ecere__com__Method * method;
929 } __attribute__ ((gcc_struct));
930 } __attribute__ ((gcc_struct));
931 } __attribute__ ((gcc_struct));
932 } __attribute__ ((gcc_struct));
933
934 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
935
936 void FreeList(struct __ecereNameSpace__ecere__sys__OldList * list, void (* FreeFunction)(void *))
937 {
938 if(list != (((void *)0)))
939 {
940 struct __ecereNameSpace__ecere__sys__Item * item;
941
942 while(item = list->first)
943 {
944 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list, item);
945 FreeFunction(item);
946 }
947 (__ecereNameSpace__ecere__com__eSystem_Delete(list), list = 0);
948 }
949 }
950
951 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
952
953 struct __ecereNameSpace__ecere__sys__NamedLink
954 {
955 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
956 struct __ecereNameSpace__ecere__sys__NamedLink * next;
957 char *  name;
958 void *  data;
959 } __attribute__ ((gcc_struct));
960
961 void FreeExpression(struct Expression * exp);
962
963 void FreeType(struct Type * type)
964 {
965 if(type)
966 {
967 type->refCount--;
968 if(type->refCount <= 0)
969 {
970 switch(type->kind)
971 {
972 case 15:
973 {
974 struct __ecereNameSpace__ecere__sys__NamedLink * member, * next;
975
976 if(type->enumName)
977 (__ecereNameSpace__ecere__com__eSystem_Delete(type->enumName), type->enumName = 0);
978 for(member = type->members.first; member; member = next)
979 {
980 next = member->next;
981 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&type->members, member);
982 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
983 ((member ? (__ecereClass___ecereNameSpace__ecere__sys__NamedLink->Destructor ? __ecereClass___ecereNameSpace__ecere__sys__NamedLink->Destructor(member) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(member)) : 0), member = 0);
984 }
985 break;
986 }
987 case 9:
988 case 10:
989 {
990 struct Type * member, * next;
991
992 (__ecereNameSpace__ecere__com__eSystem_Delete(type->enumName), type->enumName = 0);
993 for(member = type->members.first; member; member = next)
994 {
995 next = member->next;
996 if(member->refCount == 1)
997 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&type->members, member);
998 FreeType(member);
999 }
1000 break;
1001 }
1002 case 11:
1003 {
1004 struct Type * param, * next;
1005
1006 if(type->returnType)
1007 FreeType(type->returnType);
1008 for(param = type->params.first; param; param = next)
1009 {
1010 next = param->next;
1011 FreeType(param);
1012 }
1013 break;
1014 }
1015 case 12:
1016 if(type->freeExp && type->arraySizeExp)
1017 FreeExpression(type->arraySizeExp);
1018 case 13:
1019 if(type->type)
1020 FreeType(type->type);
1021 break;
1022 }
1023 (__ecereNameSpace__ecere__com__eSystem_Delete(type->name), type->name = 0);
1024 (__ecereNameSpace__ecere__com__eSystem_Delete(type->typeName), type->typeName = 0);
1025 ((type ? (__ecereClass_Type->Destructor ? __ecereClass_Type->Destructor(type) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(type)) : 0), type = 0);
1026 }
1027 }
1028 }
1029
1030 void FreeTemplateParameter(struct TemplateParameter * param);
1031
1032 void FreeContext(struct Context * context);
1033
1034 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
1035
1036 void FreeSymbol(struct Symbol * symbol)
1037 {
1038 struct __ecereNameSpace__ecere__sys__OldLink * link;
1039
1040 if(symbol->propCategory)
1041 FreeExpression(symbol->propCategory);
1042 FreeType(symbol->type);
1043 while(link = symbol->templatedClasses.first)
1044 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&symbol->templatedClasses, link);
1045 (__ecereNameSpace__ecere__com__eSystem_Delete(symbol->string), symbol->string = 0);
1046 if(symbol->templateParams)
1047 FreeList(symbol->templateParams, FreeTemplateParameter);
1048 (__ecereNameSpace__ecere__com__eSystem_Delete(symbol->constructorName), symbol->constructorName = 0);
1049 (__ecereNameSpace__ecere__com__eSystem_Delete(symbol->structName), symbol->structName = 0);
1050 (__ecereNameSpace__ecere__com__eSystem_Delete(symbol->className), symbol->className = 0);
1051 (__ecereNameSpace__ecere__com__eSystem_Delete(symbol->destructorName), symbol->destructorName = 0);
1052 (__ecereNameSpace__ecere__com__eSystem_Delete(symbol->shortName), symbol->shortName = 0);
1053 if(symbol->ctx)
1054 {
1055 FreeContext(symbol->ctx);
1056 ((symbol->ctx ? (__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor(symbol->ctx) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(symbol->ctx)) : 0), symbol->ctx = 0);
1057 }
1058 ((symbol ? (__ecereClass_Symbol->Destructor ? __ecereClass_Symbol->Destructor(symbol) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(symbol)) : 0), symbol = 0);
1059 }
1060
1061 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MethodImport;
1062
1063 struct MethodImport
1064 {
1065 struct MethodImport * prev;
1066 struct MethodImport * next;
1067 char *  name;
1068 unsigned int isVirtual;
1069 } __attribute__ ((gcc_struct));
1070
1071 void FreeMethodImport(struct MethodImport * imp)
1072 {
1073 (__ecereNameSpace__ecere__com__eSystem_Delete(imp->name), imp->name = 0);
1074 }
1075
1076 void FreePropertyImport(struct MethodImport * imp)
1077 {
1078 (__ecereNameSpace__ecere__com__eSystem_Delete(imp->name), imp->name = 0);
1079 }
1080
1081 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (*  freeFn)(void * ));
1082
1083 void FreeClassImport(struct ClassImport * imp)
1084 {
1085 (__ecereNameSpace__ecere__com__eSystem_Delete(imp->name), imp->name = 0);
1086 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&imp->methods, FreeMethodImport);
1087 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&imp->properties, FreePropertyImport);
1088 }
1089
1090 void FreeFunctionImport(struct ClassImport * imp)
1091 {
1092 (__ecereNameSpace__ecere__com__eSystem_Delete(imp->name), imp->name = 0);
1093 }
1094
1095 void FreeModuleImport(struct ModuleImport * imp)
1096 {
1097 (__ecereNameSpace__ecere__com__eSystem_Delete(imp->name), imp->name = 0);
1098 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&imp->classes, FreeClassImport);
1099 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&imp->functions, FreeFunctionImport);
1100 }
1101
1102 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Definition;
1103
1104 struct Definition
1105 {
1106 struct Definition * prev;
1107 struct Definition * next;
1108 char *  name;
1109 int type;
1110 } __attribute__ ((gcc_struct));
1111
1112 void FreeModuleDefine(struct Definition * def)
1113 {
1114 (__ecereNameSpace__ecere__com__eSystem_Delete(def->name), def->name = 0);
1115 }
1116
1117 void FreeExcludedSymbols(struct __ecereNameSpace__ecere__sys__OldList * excludedSymbols)
1118 {
1119 struct Symbol * symbol;
1120
1121 while(symbol = excludedSymbols->first)
1122 {
1123 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(excludedSymbols, symbol);
1124 FreeSymbol(symbol);
1125 }
1126 }
1127
1128 void FreeIdentifier(struct Identifier * id);
1129
1130 void FreeTemplateDataType(struct TemplateDatatype * type);
1131
1132 void FreeTemplateArgument(struct TemplateArgument * arg)
1133 {
1134 switch(arg->type)
1135 {
1136 case 2:
1137 if(arg->expression)
1138 FreeExpression(arg->expression);
1139 break;
1140 case 1:
1141 if(arg->identifier)
1142 FreeIdentifier(arg->identifier);
1143 break;
1144 case 0:
1145 if(arg->templateDatatype)
1146 FreeTemplateDataType(arg->templateDatatype);
1147 break;
1148 }
1149 if(arg->name)
1150 FreeIdentifier(arg->name);
1151 ((arg ? (__ecereClass_TemplateArgument->Destructor ? __ecereClass_TemplateArgument->Destructor(arg) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(arg)) : 0), arg = 0);
1152 }
1153
1154 void FreeDeclarator(struct Declarator * decl);
1155
1156 void FreeSpecifier(struct Specifier * spec);
1157
1158 void FreeTemplateDataType(struct TemplateDatatype * type)
1159 {
1160 if(type->decl)
1161 FreeDeclarator(type->decl);
1162 if(type->specifiers)
1163 FreeList(type->specifiers, FreeSpecifier);
1164 ((type ? (__ecereClass_TemplateDatatype->Destructor ? __ecereClass_TemplateDatatype->Destructor(type) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(type)) : 0), type = 0);
1165 }
1166
1167 void FreeTemplateParameter(struct TemplateParameter * param)
1168 {
1169 if(param->identifier)
1170 {
1171 FreeIdentifier(param->identifier);
1172 }
1173 if(param->type == 0 || param->type == 2)
1174 {
1175 if(param->dataType)
1176 FreeTemplateDataType(param->dataType);
1177 }
1178 if(param->defaultArgument)
1179 FreeTemplateArgument(param->defaultArgument);
1180 if(param->baseType)
1181 FreeType(param->baseType);
1182 ((param ? (__ecereClass_TemplateParameter->Destructor ? __ecereClass_TemplateParameter->Destructor(param) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(param)) : 0), param = 0);
1183 }
1184
1185 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplatedType;
1186
1187 void FreeTemplateType(struct TemplatedType * type)
1188 {
1189 ((type ? (__ecereClass_TemplatedType->Destructor ? __ecereClass_TemplatedType->Destructor(type) : 0, __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor ? __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor(type) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(type)) : 0), type = 0);
1190 }
1191
1192 extern struct Context * curContext;
1193
1194 extern struct Context * globalContext;
1195
1196 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1197
1198 void FreeContext(struct Context * context)
1199 {
1200 struct Symbol * symbol;
1201
1202 if(context == curContext)
1203 curContext = globalContext;
1204 while(symbol = (struct Symbol *)context->types.root)
1205 {
1206 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(&context->types, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol);
1207 FreeSymbol(symbol);
1208 }
1209 while(symbol = (struct Symbol *)context->classes.root)
1210 {
1211 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(&context->classes, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol);
1212 FreeSymbol(symbol);
1213 }
1214 while(symbol = (struct Symbol *)context->symbols.root)
1215 {
1216 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(&context->symbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol);
1217 FreeSymbol(symbol);
1218 }
1219 while(symbol = (struct Symbol *)context->structSymbols.root)
1220 {
1221 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(&context->structSymbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol);
1222 FreeSymbol(symbol);
1223 }
1224 while(symbol = (struct Symbol *)context->templateTypes.root)
1225 {
1226 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(&context->templateTypes, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol);
1227 FreeTemplateType((struct TemplatedType *)symbol);
1228 }
1229 context->nextID = 0;
1230 context->simpleID = 0;
1231 context->parent = (((void *)0));
1232 }
1233
1234 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
1235
1236 struct Enumerator
1237 {
1238 struct Enumerator * prev;
1239 struct Enumerator * next;
1240 struct Location loc;
1241 struct Identifier * id;
1242 struct Expression * exp;
1243 } __attribute__ ((gcc_struct));
1244
1245 void FreeEnumerator(struct Enumerator * enumerator)
1246 {
1247 if(enumerator->id)
1248 FreeIdentifier(enumerator->id);
1249 if(enumerator->exp)
1250 FreeExpression(enumerator->exp);
1251 ((enumerator ? (__ecereClass_Enumerator->Destructor ? __ecereClass_Enumerator->Destructor(enumerator) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(enumerator)) : 0), enumerator = 0);
1252 }
1253
1254 void FreeExtDecl(struct ExtDecl * extDecl);
1255
1256 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
1257
1258 struct ClassFunction
1259 {
1260 struct ClassFunction * prev;
1261 struct ClassFunction * next;
1262 struct Location loc;
1263 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1264 struct Declarator * declarator;
1265 struct __ecereNameSpace__ecere__sys__OldList *  declarations;
1266 struct Statement * body;
1267 struct __ecereNameSpace__ecere__com__Class * _class;
1268 struct __ecereNameSpace__ecere__sys__OldList attached;
1269 int declMode;
1270 struct Type * type;
1271 struct Symbol * propSet;
1272 unsigned int isVirtual;
1273 unsigned int isConstructor;
1274 unsigned int isDestructor;
1275 unsigned int dontMangle;
1276 int id;
1277 int idCode;
1278 } __attribute__ ((gcc_struct));
1279
1280 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1281
1282 struct PropertyDef
1283 {
1284 struct PropertyDef * prev;
1285 struct PropertyDef * next;
1286 struct Location loc;
1287 struct __ecereNameSpace__ecere__sys__OldList *  specifiers;
1288 struct Declarator * declarator;
1289 struct Identifier * id;
1290 struct Statement * getStmt;
1291 struct Statement * setStmt;
1292 struct Statement * issetStmt;
1293 struct Symbol * symbol;
1294 unsigned int conversion;
1295 unsigned int isWatchable;
1296 struct Expression * category;
1297 } __attribute__ ((gcc_struct));
1298
1299 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1300
1301 struct PropertyWatch
1302 {
1303 struct PropertyWatch * prev;
1304 struct PropertyWatch * next;
1305 struct Location loc;
1306 struct Statement * compound;
1307 struct __ecereNameSpace__ecere__sys__OldList *  properties;
1308 unsigned int deleteWatch;
1309 } __attribute__ ((gcc_struct));
1310
1311 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1312
1313 struct ClassDef
1314 {
1315 struct ClassDef * prev;
1316 struct ClassDef * next;
1317 struct Location loc;
1318 int type;
1319 union
1320 {
1321 struct Declaration * decl;
1322 struct ClassFunction * function;
1323 struct __ecereNameSpace__ecere__sys__OldList *  defProperties;
1324 struct PropertyDef * propertyDef;
1325 struct PropertyWatch * propertyWatch;
1326 char *  designer;
1327 struct Identifier * defaultProperty;
1328 struct
1329 {
1330 struct Identifier * id;
1331 struct Initializer * initializer;
1332 } __attribute__ ((gcc_struct));
1333 } __attribute__ ((gcc_struct));
1334 int memberAccess;
1335 void *  object;
1336 } __attribute__ ((gcc_struct));
1337
1338 void FreeClassDef(struct ClassDef * def);
1339
1340 void FreeSpecifier(struct Specifier * spec)
1341 {
1342 if(spec)
1343 {
1344 switch(spec->type)
1345 {
1346 case 1:
1347 (__ecereNameSpace__ecere__com__eSystem_Delete(spec->name), spec->name = 0);
1348 if(spec->templateArgs)
1349 FreeList(spec->templateArgs, FreeTemplateArgument);
1350 break;
1351 case 5:
1352 if(spec->extDecl)
1353 FreeExtDecl(spec->extDecl);
1354 break;
1355 case 2:
1356 if(spec->id)
1357 FreeIdentifier(spec->id);
1358 if(spec->list)
1359 FreeList(spec->list, FreeEnumerator);
1360 if(spec->definitions)
1361 FreeList(spec->definitions, FreeClassDef);
1362 break;
1363 case 3:
1364 case 4:
1365 if(spec->id)
1366 FreeIdentifier(spec->id);
1367 if(spec->definitions)
1368 FreeList(spec->definitions, FreeClassDef);
1369 if(spec->baseSpecs)
1370 FreeList(spec->baseSpecs, FreeSpecifier);
1371 if(spec->ctx)
1372 {
1373 FreeContext(spec->ctx);
1374 ((spec->ctx ? (__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor(spec->ctx) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(spec->ctx)) : 0), spec->ctx = 0);
1375 }
1376 break;
1377 case 7:
1378 if(spec->_class)
1379 FreeSpecifier(spec->_class);
1380 break;
1381 }
1382 ((spec ? (__ecereClass_Specifier->Destructor ? __ecereClass_Specifier->Destructor(spec) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(spec)) : 0), spec = 0);
1383 }
1384 }
1385
1386 void FreeIdentifier(struct Identifier * id)
1387 {
1388 if(id->badID)
1389 FreeIdentifier(id->badID);
1390 (__ecereNameSpace__ecere__com__eSystem_Delete(id->string), id->string = 0);
1391 if(id->_class)
1392 FreeSpecifier(id->_class);
1393 ((id ? (__ecereClass_Identifier->Destructor ? __ecereClass_Identifier->Destructor(id) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(id)) : 0), id = 0);
1394 }
1395
1396 void FreeTypeName(struct TypeName * typeName)
1397 {
1398 if(typeName->qualifiers)
1399 FreeList(typeName->qualifiers, FreeSpecifier);
1400 if(typeName->declarator)
1401 FreeDeclarator(typeName->declarator);
1402 if(typeName->bitCount)
1403 FreeExpression(typeName->bitCount);
1404 ((typeName ? (__ecereClass_TypeName->Destructor ? __ecereClass_TypeName->Destructor(typeName) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(typeName)) : 0), typeName = 0);
1405 }
1406
1407 static void _FreeExpression(struct Expression * exp, unsigned int freePointer);
1408
1409 void FreeExpContents(struct Expression * exp)
1410 {
1411 _FreeExpression(exp, 0x0);
1412 }
1413
1414 void FreeExpression(struct Expression * exp)
1415 {
1416 _FreeExpression(exp, 0x1);
1417 }
1418
1419 void FreeInstance(struct Instantiation * inst);
1420
1421 void FreeStatement(struct Statement * stmt);
1422
1423 void FreeInitializer(struct Initializer * initializer);
1424
1425 static void _FreeExpression(struct Expression * exp, unsigned int freePointer)
1426 {
1427 switch(exp->type)
1428 {
1429 case 13:
1430 case 28:
1431 FreeExpression(exp->_new.size);
1432 FreeTypeName(exp->_new.typeName);
1433 break;
1434 case 14:
1435 case 29:
1436 FreeExpression(exp->_renew.exp);
1437 FreeExpression(exp->_renew.size);
1438 FreeTypeName(exp->_renew.typeName);
1439 break;
1440 case 2:
1441 (__ecereNameSpace__ecere__com__eSystem_Delete(exp->constant), exp->constant = 0);
1442 break;
1443 case 0:
1444 if(exp->identifier)
1445 FreeIdentifier(exp->identifier);
1446 break;
1447 case 1:
1448 if(exp->instance)
1449 FreeInstance(exp->instance);
1450 break;
1451 case 3:
1452 (__ecereNameSpace__ecere__com__eSystem_Delete(exp->string), exp->string = 0);
1453 break;
1454 case 4:
1455 if(exp->op.exp1)
1456 FreeExpression(exp->op.exp1);
1457 if(exp->op.exp2)
1458 FreeExpression(exp->op.exp2);
1459 break;
1460 case 5:
1461 {
1462 FreeList(exp->list, FreeExpression);
1463 break;
1464 }
1465 case 6:
1466 {
1467 if(exp->index.exp)
1468 FreeExpression(exp->index.exp);
1469 if(exp->index.index)
1470 FreeList(exp->index.index, FreeExpression);
1471 break;
1472 }
1473 case 7:
1474 {
1475 FreeExpression(exp->call.exp);
1476 if(exp->call.arguments)
1477 FreeList(exp->call.arguments, FreeExpression);
1478 break;
1479 }
1480 case 8:
1481 case 9:
1482 if(exp->member.exp)
1483 FreeExpression(exp->member.exp);
1484 if(exp->member.member)
1485 FreeIdentifier(exp->member.member);
1486 break;
1487 case 10:
1488 FreeTypeName(exp->_new.typeName);
1489 break;
1490 case 38:
1491 FreeTypeName(exp->_new.typeName);
1492 break;
1493 case 11:
1494 if(exp->cast.exp)
1495 FreeExpression(exp->cast.exp);
1496 FreeTypeName(exp->cast.typeName);
1497 break;
1498 case 12:
1499 {
1500 if(exp->cond.cond)
1501 FreeExpression(exp->cond.cond);
1502 if(exp->cond.exp)
1503 FreeList(exp->cond.exp, FreeExpression);
1504 if(exp->cond.elseExp)
1505 FreeExpression(exp->cond.elseExp);
1506 break;
1507 }
1508 case 25:
1509 {
1510 if(exp->compound)
1511 FreeStatement(exp->compound);
1512 break;
1513 }
1514 case 34:
1515 {
1516 if(exp->list)
1517 FreeList(exp->list, FreeExpression);
1518 break;
1519 }
1520 case 35:
1521 {
1522 if(exp->initializer.typeName)
1523 FreeTypeName(exp->initializer.typeName);
1524 if(exp->initializer.initializer)
1525 FreeInitializer(exp->initializer.initializer);
1526 break;
1527 }
1528 case 16:
1529 break;
1530 case 26:
1531 if(exp->_classExp.specifiers)
1532 FreeList(exp->_classExp.specifiers, FreeSpecifier);
1533 if(exp->_classExp.decl)
1534 FreeDeclarator(exp->_classExp.decl);
1535 break;
1536 case 31:
1537 case 33:
1538 case 32:
1539 if(exp->db.id)
1540 FreeIdentifier(exp->db.id);
1541 (__ecereNameSpace__ecere__com__eSystem_Delete(exp->db.table), exp->db.table = 0);
1542 break;
1543 case 30:
1544 if(exp->dbopen.ds)
1545 FreeExpression(exp->dbopen.ds);
1546 if(exp->dbopen.name)
1547 FreeExpression(exp->dbopen.name);
1548 break;
1549 case 36:
1550 if(exp->vaArg.exp)
1551 FreeExpression(exp->vaArg.exp);
1552 if(exp->vaArg.typeName)
1553 FreeTypeName(exp->vaArg.typeName);
1554 break;
1555 case 37:
1556 if(exp->list)
1557 FreeList(exp->list, FreeExpression);
1558 break;
1559 case 15:
1560 if(exp->_class)
1561 FreeSpecifier(exp->_class);
1562 break;
1563 case 27:
1564 if(exp->classData.id)
1565 FreeIdentifier(exp->classData.id);
1566 break;
1567 }
1568 if(freePointer)
1569 {
1570 if(exp->expType)
1571 FreeType(exp->expType);
1572 if(exp->destType)
1573 FreeType(exp->destType);
1574 ((exp ? (__ecereClass_Expression->Destructor ? __ecereClass_Expression->Destructor(exp) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(exp)) : 0), exp = 0);
1575 }
1576 }
1577
1578 void FreePointer(struct Pointer * pointer)
1579 {
1580 if(pointer->pointer)
1581 FreePointer(pointer->pointer);
1582 if(pointer->qualifiers)
1583 FreeList(pointer->qualifiers, FreeSpecifier);
1584 ((pointer ? (__ecereClass_Pointer->Destructor ? __ecereClass_Pointer->Destructor(pointer) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(pointer)) : 0), pointer = 0);
1585 }
1586
1587 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
1588
1589 struct Attribute
1590 {
1591 struct Attribute * prev;
1592 struct Attribute * next;
1593 struct Location loc;
1594 char * attr;
1595 struct Expression * exp;
1596 } __attribute__ ((gcc_struct));
1597
1598 void FreeAttribute(struct Attribute * attr);
1599
1600 void FreeAttrib(struct Attrib * attr)
1601 {
1602 if(attr->attribs)
1603 FreeList(attr->attribs, FreeAttribute);
1604 ((attr ? (__ecereClass_Attrib->Destructor ? __ecereClass_Attrib->Destructor(attr) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(attr)) : 0), attr = 0);
1605 }
1606
1607 void FreeAttribute(struct Attribute * attr)
1608 {
1609 (__ecereNameSpace__ecere__com__eSystem_Delete(attr->attr), attr->attr = 0);
1610 if(attr->exp)
1611 FreeExpression(attr->exp);
1612 ((attr ? (__ecereClass_Attribute->Destructor ? __ecereClass_Attribute->Destructor(attr) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(attr)) : 0), attr = 0);
1613 }
1614
1615 void FreeExtDecl(struct ExtDecl * extDecl)
1616 {
1617 if(extDecl->type == 1 && extDecl->attr)
1618 FreeAttrib(extDecl->attr);
1619 else if(extDecl->type == 0)
1620 (__ecereNameSpace__ecere__com__eSystem_Delete(extDecl->s), extDecl->s = 0);
1621 ((extDecl ? (__ecereClass_ExtDecl->Destructor ? __ecereClass_ExtDecl->Destructor(extDecl) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(extDecl)) : 0), extDecl = 0);
1622 }
1623
1624 void FreeDeclarator(struct Declarator * decl)
1625 {
1626 if(decl->declarator)
1627 FreeDeclarator(decl->declarator);
1628 switch(decl->type)
1629 {
1630 case 0:
1631 if(decl->structDecl.exp)
1632 FreeExpression(decl->structDecl.exp);
1633 if(decl->structDecl.posExp)
1634 FreeExpression(decl->structDecl.posExp);
1635 if(decl->structDecl.attrib)
1636 FreeAttrib(decl->structDecl.attrib);
1637 break;
1638 case 1:
1639 FreeIdentifier(decl->identifier);
1640 break;
1641 case 2:
1642 break;
1643 case 3:
1644 if(decl->array.exp)
1645 FreeExpression(decl->array.exp);
1646 if(decl->array.enumClass)
1647 FreeSpecifier(decl->array.enumClass);
1648 break;
1649 case 4:
1650 FreeList(decl->function.parameters, FreeTypeName);
1651 break;
1652 case 5:
1653 if(decl->pointer.pointer)
1654 FreePointer(decl->pointer.pointer);
1655 break;
1656 case 6:
1657 case 7:
1658 if(decl->extended.extended)
1659 FreeExtDecl(decl->extended.extended);
1660 break;
1661 }
1662 ((decl ? (__ecereClass_Declarator->Destructor ? __ecereClass_Declarator->Destructor(decl) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(decl)) : 0), decl = 0);
1663 }
1664
1665 void FreePropertyWatch(struct PropertyWatch * watcher)
1666 {
1667 if(watcher->properties)
1668 FreeList(watcher->properties, FreeIdentifier);
1669 if(watcher->compound)
1670 FreeStatement(watcher->compound);
1671 ((watcher ? (__ecereClass_PropertyWatch->Destructor ? __ecereClass_PropertyWatch->Destructor(watcher) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(watcher)) : 0), watcher = 0);
1672 }
1673
1674 void FreeDeclaration(struct Declaration * decl);
1675
1676 void FreeStatement(struct Statement * stmt)
1677 {
1678 switch(stmt->type)
1679 {
1680 case 0:
1681 if(stmt->labeled.stmt)
1682 FreeStatement(stmt->labeled.stmt);
1683 break;
1684 case 1:
1685 if(stmt->caseStmt.exp)
1686 FreeExpression(stmt->caseStmt.exp);
1687 if(stmt->caseStmt.stmt)
1688 FreeStatement(stmt->caseStmt.stmt);
1689 break;
1690 case 14:
1691 FreeDeclaration(stmt->decl);
1692 break;
1693 case 2:
1694 {
1695 if(stmt->compound.declarations)
1696 FreeList(stmt->compound.declarations, FreeDeclaration);
1697 if(stmt->compound.statements)
1698 FreeList(stmt->compound.statements, FreeStatement);
1699 if(stmt->compound.context)
1700 {
1701 FreeContext(stmt->compound.context);
1702 ((stmt->compound.context ? (__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor(stmt->compound.context) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(stmt->compound.context)) : 0), stmt->compound.context = 0);
1703 }
1704 break;
1705 }
1706 case 3:
1707 {
1708 if(stmt->expressions)
1709 FreeList(stmt->expressions, FreeExpression);
1710 break;
1711 }
1712 case 4:
1713 {
1714 if(stmt->ifStmt.exp)
1715 FreeList(stmt->ifStmt.exp, FreeExpression);
1716 if(stmt->ifStmt.stmt)
1717 FreeStatement(stmt->ifStmt.stmt);
1718 if(stmt->ifStmt.elseStmt)
1719 FreeStatement(stmt->ifStmt.elseStmt);
1720 break;
1721 }
1722 case 5:
1723 {
1724 if(stmt->switchStmt.exp)
1725 FreeList(stmt->switchStmt.exp, FreeExpression);
1726 if(stmt->switchStmt.stmt)
1727 FreeStatement(stmt->switchStmt.stmt);
1728 break;
1729 }
1730 case 6:
1731 {
1732 if(stmt->whileStmt.exp)
1733 FreeList(stmt->whileStmt.exp, FreeExpression);
1734 if(stmt->whileStmt.stmt)
1735 FreeStatement(stmt->whileStmt.stmt);
1736 break;
1737 }
1738 case 7:
1739 {
1740 if(stmt->doWhile.stmt)
1741 FreeStatement(stmt->doWhile.stmt);
1742 if(stmt->doWhile.exp)
1743 FreeList(stmt->doWhile.exp, FreeExpression);
1744 break;
1745 }
1746 case 8:
1747 {
1748 if(stmt->forStmt.init)
1749 FreeStatement(stmt->forStmt.init);
1750 if(stmt->forStmt.check)
1751 FreeStatement(stmt->forStmt.check);
1752 if(stmt->forStmt.increment)
1753 FreeList(stmt->forStmt.increment, FreeExpression);
1754 if(stmt->forStmt.stmt)
1755 FreeStatement(stmt->forStmt.stmt);
1756 break;
1757 }
1758 case 18:
1759 {
1760 if(stmt->forEachStmt.id)
1761 FreeIdentifier(stmt->forEachStmt.id);
1762 if(stmt->forEachStmt.exp)
1763 FreeList(stmt->forEachStmt.exp, FreeExpression);
1764 if(stmt->forEachStmt.filter)
1765 FreeList(stmt->forEachStmt.filter, FreeExpression);
1766 if(stmt->forEachStmt.stmt)
1767 FreeStatement(stmt->forEachStmt.stmt);
1768 break;
1769 }
1770 case 9:
1771 break;
1772 case 10:
1773 break;
1774 case 11:
1775 break;
1776 case 12:
1777 if(stmt->expressions)
1778 FreeList(stmt->expressions, FreeExpression);
1779 break;
1780 case 17:
1781 case 15:
1782 case 16:
1783 {
1784 if(stmt->_watch.watcher)
1785 FreeExpression(stmt->_watch.watcher);
1786 if(stmt->_watch.object)
1787 FreeExpression(stmt->_watch.object);
1788 if(stmt->_watch.watches)
1789 FreeList(stmt->_watch.watches, (stmt->type == 17) ? FreePropertyWatch : FreeIdentifier);
1790 break;
1791 }
1792 }
1793 ((stmt ? (__ecereClass_Statement->Destructor ? __ecereClass_Statement->Destructor(stmt) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(stmt)) : 0), stmt = 0);
1794 }
1795
1796 void FreeInitializer(struct Initializer * initializer)
1797 {
1798 switch(initializer->type)
1799 {
1800 case 1:
1801 {
1802 FreeList(initializer->list, FreeInitializer);
1803 break;
1804 }
1805 case 0:
1806 if(initializer->exp)
1807 FreeExpression(initializer->exp);
1808 break;
1809 }
1810 ((initializer ? (__ecereClass_Initializer->Destructor ? __ecereClass_Initializer->Destructor(initializer) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(initializer)) : 0), initializer = 0);
1811 }
1812
1813 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
1814
1815 struct InitDeclarator
1816 {
1817 struct InitDeclarator * prev;
1818 struct InitDeclarator * next;
1819 struct Location loc;
1820 struct Declarator * declarator;
1821 struct Initializer * initializer;
1822 } __attribute__ ((gcc_struct));
1823
1824 void FreeInitDeclarator(struct InitDeclarator * decl)
1825 {
1826 if(decl->declarator)
1827 FreeDeclarator(decl->declarator);
1828 if(decl->initializer)
1829 FreeInitializer(decl->initializer);
1830 ((decl ? (__ecereClass_InitDeclarator->Destructor ? __ecereClass_InitDeclarator->Destructor(decl) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(decl)) : 0), decl = 0);
1831 }
1832
1833 void FreeDeclaration(struct Declaration * decl)
1834 {
1835 if(decl->symbol && !decl->symbol->type)
1836 {
1837 }
1838 switch(decl->type)
1839 {
1840 case 0:
1841 {
1842 if(decl->specifiers)
1843 FreeList(decl->specifiers, FreeSpecifier);
1844 if(decl->declarators)
1845 FreeList(decl->declarators, FreeDeclarator);
1846 if(decl->extStorage)
1847 FreeSpecifier(decl->extStorage);
1848 break;
1849 }
1850 case 1:
1851 {
1852 if(decl->specifiers)
1853 FreeList(decl->specifiers, FreeSpecifier);
1854 if(decl->declarators)
1855 FreeList(decl->declarators, FreeInitDeclarator);
1856 break;
1857 }
1858 case 2:
1859 if(decl->inst)
1860 FreeInstance(decl->inst);
1861 break;
1862 case 3:
1863 {
1864 if(decl->exp)
1865 FreeExpression(decl->exp);
1866 if(decl->id)
1867 FreeIdentifier(decl->id);
1868 break;
1869 }
1870 }
1871 ((decl ? (__ecereClass_Declaration->Destructor ? __ecereClass_Declaration->Destructor(decl) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(decl)) : 0), decl = 0);
1872 }
1873
1874 void FreeFunction(struct FunctionDefinition * func)
1875 {
1876 if(func->body)
1877 FreeStatement(func->body);
1878 if(func->declarator)
1879 FreeDeclarator(func->declarator);
1880 if(func->specifiers)
1881 FreeList(func->specifiers, FreeSpecifier);
1882 if(func->declarations)
1883 FreeList(func->declarations, FreeDeclaration);
1884 if(func->type)
1885 FreeType(func->type);
1886 ((func ? (__ecereClass_FunctionDefinition->Destructor ? __ecereClass_FunctionDefinition->Destructor(func) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(func)) : 0), func = 0);
1887 }
1888
1889 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
1890
1891 struct MemberInit
1892 {
1893 struct MemberInit * prev;
1894 struct MemberInit * next;
1895 struct Location loc;
1896 struct Location realLoc;
1897 struct __ecereNameSpace__ecere__sys__OldList *  identifiers;
1898 struct Initializer * initializer;
1899 unsigned int used;
1900 unsigned int variable;
1901 unsigned int takeOutExp;
1902 } __attribute__ ((gcc_struct));
1903
1904 void FreeMemberInit(struct MemberInit * init)
1905 {
1906 if(init->initializer)
1907 FreeInitializer(init->initializer);
1908 if(init->identifiers)
1909 FreeList(init->identifiers, FreeIdentifier);
1910 ((init ? (__ecereClass_MemberInit->Destructor ? __ecereClass_MemberInit->Destructor(init) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(init)) : 0), init = 0);
1911 }
1912
1913 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
1914
1915 struct MembersInit
1916 {
1917 struct MembersInit * prev;
1918 struct MembersInit * next;
1919 struct Location loc;
1920 int type;
1921 union
1922 {
1923 struct __ecereNameSpace__ecere__sys__OldList *  dataMembers;
1924 struct ClassFunction * function;
1925 } __attribute__ ((gcc_struct));
1926 } __attribute__ ((gcc_struct));
1927
1928 void FreeClassFunction(struct ClassFunction * func);
1929
1930 void FreeMembersInit(struct MembersInit * init)
1931 {
1932 if(init->type == 0 && init->dataMembers)
1933 FreeList(init->dataMembers, FreeMemberInit);
1934 if(init->type == 1 && init->function)
1935 {
1936 FreeClassFunction(init->function);
1937 }
1938 ((init ? (__ecereClass_MembersInit->Destructor ? __ecereClass_MembersInit->Destructor(init) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(init)) : 0), init = 0);
1939 }
1940
1941 extern struct Symbol * FindClass(char *  name);
1942
1943 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
1944
1945 void FreeInstance(struct Instantiation * inst)
1946 {
1947 if(inst->members)
1948 {
1949 FreeList(inst->members, FreeMembersInit);
1950 }
1951 if(inst->exp)
1952 FreeExpression(inst->exp);
1953 if(inst->data)
1954 {
1955 struct Symbol * classSym = FindClass(inst->_class->name);
1956 struct __ecereNameSpace__ecere__com__Class * _class = classSym ? classSym->registered : (((void *)0));
1957
1958 if(_class)
1959 {
1960 if(_class->type == 0)
1961 {
1962 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)inst->data;
1963
1964 (__ecereNameSpace__ecere__com__eInstance_DecRef(instance), instance = 0);
1965 }
1966 else if(_class->type == 5)
1967 {
1968 if(_class->Destructor)
1969 _class->Destructor((struct __ecereNameSpace__ecere__com__Instance *)inst->data);
1970 (__ecereNameSpace__ecere__com__eSystem_Delete(inst->data), inst->data = 0);
1971 }
1972 else if(_class->type == 1)
1973 {
1974 (__ecereNameSpace__ecere__com__eSystem_Delete(inst->data), inst->data = 0);
1975 }
1976 }
1977 else
1978 {
1979 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)inst->data;
1980
1981 (__ecereNameSpace__ecere__com__eInstance_DecRef(instance), instance = 0);
1982 }
1983 }
1984 if(inst->_class)
1985 FreeSpecifier(inst->_class);
1986 ((inst ? (__ecereClass_Instantiation->Destructor ? __ecereClass_Instantiation->Destructor(inst) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(inst)) : 0), inst = 0);
1987 }
1988
1989 void FreeClassFunction(struct ClassFunction * func)
1990 {
1991 if(func->declarator && func->declarator->symbol)
1992 {
1993 }
1994 if(func->type)
1995 FreeType(func->type);
1996 if(func->body)
1997 FreeStatement(func->body);
1998 if(func->declarator)
1999 FreeDeclarator(func->declarator);
2000 if(func->specifiers)
2001 FreeList(func->specifiers, FreeSpecifier);
2002 if(func->declarations)
2003 FreeList(func->declarations, FreeDeclaration);
2004 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&func->attached, (((void *)0)));
2005 ((func ? (__ecereClass_ClassFunction->Destructor ? __ecereClass_ClassFunction->Destructor(func) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(func)) : 0), func = 0);
2006 }
2007
2008 void FreeProperty(struct PropertyDef * def)
2009 {
2010 if(def->specifiers)
2011 FreeList(def->specifiers, FreeSpecifier);
2012 if(def->declarator)
2013 FreeDeclarator(def->declarator);
2014 if(def->id)
2015 FreeIdentifier(def->id);
2016 if(def->getStmt)
2017 FreeStatement(def->getStmt);
2018 if(def->setStmt)
2019 FreeStatement(def->setStmt);
2020 if(def->issetStmt)
2021 FreeStatement(def->issetStmt);
2022 if(def->category)
2023 FreeExpression(def->category);
2024 if(def->symbol)
2025 {
2026 }
2027 ((def ? (__ecereClass_PropertyDef->Destructor ? __ecereClass_PropertyDef->Destructor(def) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(def)) : 0), def = 0);
2028 }
2029
2030 void FreeClassDef(struct ClassDef * def)
2031 {
2032 switch(def->type)
2033 {
2034 case 2:
2035 if(def->decl)
2036 FreeDeclaration(def->decl);
2037 break;
2038 case 1:
2039 {
2040 FreeList(def->defProperties, FreeMemberInit);
2041 break;
2042 }
2043 case 0:
2044 if(def->function)
2045 FreeClassFunction(def->function);
2046 break;
2047 case 3:
2048 if(def->propertyDef)
2049 FreeProperty(def->propertyDef);
2050 break;
2051 case 10:
2052 if(def->propertyDef)
2053 FreeProperty(def->propertyDef);
2054 break;
2055 case 13:
2056 break;
2057 case 9:
2058 {
2059 if(def->decl)
2060 FreeDeclaration(def->decl);
2061 break;
2062 }
2063 case 5:
2064 {
2065 (__ecereNameSpace__ecere__com__eSystem_Delete(def->designer), def->designer = 0);
2066 break;
2067 }
2068 case 7:
2069 break;
2070 case 6:
2071 break;
2072 case 11:
2073 if(def->id)
2074 FreeIdentifier(def->id);
2075 if(def->initializer)
2076 FreeInitializer(def->initializer);
2077 break;
2078 case 8:
2079 {
2080 if(def->defaultProperty)
2081 FreeIdentifier(def->defaultProperty);
2082 break;
2083 }
2084 case 12:
2085 break;
2086 case 4:
2087 {
2088 if(def->propertyWatch)
2089 FreePropertyWatch(def->propertyWatch);
2090 break;
2091 }
2092 }
2093 ((def ? (__ecereClass_ClassDef->Destructor ? __ecereClass_ClassDef->Destructor(def) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(def)) : 0), def = 0);
2094 }
2095
2096 void FreeClass(struct ClassDefinition * _class)
2097 {
2098 if(_class->definitions)
2099 FreeList(_class->definitions, FreeClassDef);
2100 if(_class->_class)
2101 FreeSpecifier(_class->_class);
2102 if(_class->baseSpecs)
2103 FreeList(_class->baseSpecs, FreeSpecifier);
2104 ((_class ? (__ecereClass_ClassDefinition->Destructor ? __ecereClass_ClassDefinition->Destructor(_class) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(_class)) : 0), _class = 0);
2105 }
2106
2107 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
2108
2109 struct DBIndexItem
2110 {
2111 struct DBIndexItem * prev;
2112 struct DBIndexItem * next;
2113 struct Identifier * id;
2114 int order;
2115 } __attribute__ ((gcc_struct));
2116
2117 void FreeDBIndexItem(struct DBIndexItem * item)
2118 {
2119 if(item->id)
2120 FreeIdentifier(item->id);
2121 ((item ? (__ecereClass_DBIndexItem->Destructor ? __ecereClass_DBIndexItem->Destructor(item) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(item)) : 0), item = 0);
2122 }
2123
2124 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
2125
2126 struct DBTableEntry
2127 {
2128 struct DBTableEntry * prev;
2129 struct DBTableEntry * next;
2130 int type;
2131 struct Identifier * id;
2132 union
2133 {
2134 struct
2135 {
2136 struct TypeName * dataType;
2137 char *  name;
2138 } __attribute__ ((gcc_struct));
2139 struct __ecereNameSpace__ecere__sys__OldList *  items;
2140 } __attribute__ ((gcc_struct));
2141 } __attribute__ ((gcc_struct));
2142
2143 void FreeDBTableEntry(struct DBTableEntry * entry)
2144 {
2145 if(entry->id)
2146 FreeIdentifier(entry->id);
2147 switch(entry->type)
2148 {
2149 case 0:
2150 if(entry->dataType)
2151 FreeTypeName(entry->dataType);
2152 if(entry->name)
2153 (__ecereNameSpace__ecere__com__eSystem_Delete(entry->name), entry->name = 0);
2154 break;
2155 case 1:
2156 if(entry->items)
2157 FreeList(entry->items, FreeDBIndexItem);
2158 break;
2159 }
2160 ((entry ? (__ecereClass_DBTableEntry->Destructor ? __ecereClass_DBTableEntry->Destructor(entry) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(entry)) : 0), entry = 0);
2161 }
2162
2163 void FreeDBTable(struct DBTableDef * table)
2164 {
2165 if(table->definitions)
2166 FreeList(table->definitions, FreeDBTableEntry);
2167 if(table->name)
2168 (__ecereNameSpace__ecere__com__eSystem_Delete(table->name), table->name = 0);
2169 ((table ? (__ecereClass_DBTableDef->Destructor ? __ecereClass_DBTableDef->Destructor(table) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(table)) : 0), table = 0);
2170 }
2171
2172 void FreeExternal(struct External * external)
2173 {
2174 switch(external->type)
2175 {
2176 case 0:
2177 if(external->function)
2178 FreeFunction(external->function);
2179 break;
2180 case 1:
2181 if(external->declaration)
2182 FreeDeclaration(external->declaration);
2183 break;
2184 case 2:
2185 if(external->_class)
2186 FreeClass(external->_class);
2187 break;
2188 case 3:
2189 (__ecereNameSpace__ecere__com__eSystem_Delete(external->importString), external->importString = 0);
2190 break;
2191 case 4:
2192 FreeIdentifier(external->id);
2193 break;
2194 case 5:
2195 if(external->table)
2196 FreeDBTable(external->table);
2197 break;
2198 }
2199 ((external ? (__ecereClass_External->Destructor ? __ecereClass_External->Destructor(external) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(external)) : 0), external = 0);
2200 }
2201
2202 void FreeASTTree(struct __ecereNameSpace__ecere__sys__OldList * ast)
2203 {
2204 if(ast != (((void *)0)))
2205 {
2206 struct External * external;
2207
2208 while(external = ast->first)
2209 {
2210 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(ast, external);
2211 FreeExternal(external);
2212 }
2213 (__ecereNameSpace__ecere__com__eSystem_Delete(ast), ast = 0);
2214 }
2215 }
2216
2217 static void FreeDataMember(struct __ecereNameSpace__ecere__com__DataMember * parentMember)
2218 {
2219 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
2220
2221 for(dataMember = parentMember->members.first; dataMember; dataMember = dataMember->next)
2222 {
2223 if(dataMember->type == 2 || dataMember->type == 1)
2224 FreeDataMember(dataMember);
2225 if(dataMember->dataType)
2226 {
2227 FreeType(dataMember->dataType);
2228 dataMember->dataType = (((void *)0));
2229 }
2230 }
2231 }
2232
2233 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
2234
2235 struct __ecereNameSpace__ecere__com__NameSpace
2236 {
2237 char *  name;
2238 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
2239 struct __ecereNameSpace__ecere__com__NameSpace *  left;
2240 struct __ecereNameSpace__ecere__com__NameSpace *  right;
2241 int depth;
2242 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
2243 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
2244 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
2245 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
2246 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
2247 } __attribute__ ((gcc_struct));
2248
2249 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
2250
2251 struct __ecereNameSpace__ecere__com__Module
2252 {
2253 struct __ecereNameSpace__ecere__com__Instance * application;
2254 struct __ecereNameSpace__ecere__sys__OldList classes;
2255 struct __ecereNameSpace__ecere__sys__OldList defines;
2256 struct __ecereNameSpace__ecere__sys__OldList functions;
2257 struct __ecereNameSpace__ecere__sys__OldList modules;
2258 struct __ecereNameSpace__ecere__com__Instance * prev;
2259 struct __ecereNameSpace__ecere__com__Instance * next;
2260 char *  name;
2261 void *  library;
2262 void *  Unload;
2263 int importType;
2264 int origImportType;
2265 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
2266 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
2267 } __attribute__ ((gcc_struct));
2268
2269 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
2270
2271 struct __ecereNameSpace__ecere__com__ClassTemplateParameter
2272 {
2273 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prev;
2274 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * next;
2275 char *  name;
2276 int type;
2277 union
2278 {
2279 char *  dataTypeString;
2280 int memberType;
2281 } __attribute__ ((gcc_struct));
2282 struct __ecereNameSpace__ecere__com__ClassTemplateArgument defaultArg;
2283 void *  param;
2284 char __ecere_padding[4];
2285 } __attribute__ ((gcc_struct));
2286
2287 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
2288
2289 struct __ecereNameSpace__ecere__com__GlobalFunction
2290 {
2291 struct __ecereNameSpace__ecere__com__GlobalFunction * prev;
2292 struct __ecereNameSpace__ecere__com__GlobalFunction * next;
2293 char *  name;
2294 int (*  function)();
2295 struct __ecereNameSpace__ecere__com__Instance * module;
2296 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
2297 char *  dataTypeString;
2298 struct Type * dataType;
2299 void *  symbol;
2300 } __attribute__ ((gcc_struct));
2301
2302 extern unsigned int inCompiler;
2303
2304 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
2305
2306 struct __ecereNameSpace__ecere__com__IteratorPointer;
2307
2308 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MapIterator;
2309
2310 struct __ecereNameSpace__ecere__com__MapIterator
2311 {
2312 struct __ecereNameSpace__ecere__com__Instance * container;
2313 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
2314 } __attribute__ ((gcc_struct));
2315
2316 extern struct __ecereNameSpace__ecere__com__Instance * loadedModules;
2317
2318 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Iterator;
2319
2320 struct __ecereNameSpace__ecere__com__Iterator
2321 {
2322 struct __ecereNameSpace__ecere__com__Instance * container;
2323 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
2324 } __attribute__ ((gcc_struct));
2325
2326 extern void __ecereNameSpace__ecere__com__eModule_Unload(struct __ecereNameSpace__ecere__com__Instance * fromModule, struct __ecereNameSpace__ecere__com__Instance * module);
2327
2328 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
2329
2330 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
2331
2332 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
2333
2334 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
2335
2336 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
2337
2338 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_map(struct __ecereNameSpace__ecere__com__MapIterator * this);
2339
2340 void __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(struct __ecereNameSpace__ecere__com__MapIterator * this, struct __ecereNameSpace__ecere__com__Instance * value);
2341
2342 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__MapIterator_map;
2343
2344 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next();
2345
2346 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
2347
2348 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
2349
2350 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__Iterator_data;
2351
2352 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove;
2353
2354 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__LinkList;
2355
2356 struct __ecereNameSpace__ecere__com__LinkList
2357 {
2358 void * first;
2359 void * last;
2360 int count;
2361 } __attribute__ ((gcc_struct));
2362
2363 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 index, unsigned int create);
2364
2365 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst;
2366
2367 void FreeModuleData(struct __ecereNameSpace__ecere__com__Instance * module)
2368 {
2369 struct __ecereNameSpace__ecere__com__Class * _class;
2370 struct __ecereNameSpace__ecere__com__GlobalFunction * function;
2371
2372 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes.first; _class; _class = _class->next)
2373 {
2374 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
2375 struct __ecereNameSpace__ecere__com__Method * method;
2376 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2377 struct __ecereNameSpace__ecere__com__ClassProperty * classProp;
2378
2379 if(_class->dataType)
2380 {
2381 FreeType(_class->dataType);
2382 _class->dataType = (((void *)0));
2383 }
2384 for(dataMember = _class->membersAndProperties.first; dataMember; dataMember = dataMember->next)
2385 {
2386 if(dataMember->isProperty)
2387 {
2388 struct __ecereNameSpace__ecere__com__Property * prop = (struct __ecereNameSpace__ecere__com__Property *)dataMember;
2389
2390 if(prop->symbol)
2391 {
2392 FreeSymbol(prop->symbol);
2393 }
2394 }
2395 else
2396 {
2397 if(dataMember->type == 2 || dataMember->type == 1)
2398 FreeDataMember(dataMember);
2399 }
2400 if(dataMember->dataType)
2401 {
2402 FreeType(dataMember->dataType);
2403 dataMember->dataType = (((void *)0));
2404 }
2405 }
2406 for(dataMember = _class->conversions.first; dataMember; dataMember = dataMember->next)
2407 {
2408 struct __ecereNameSpace__ecere__com__Property * prop = (struct __ecereNameSpace__ecere__com__Property *)dataMember;
2409
2410 if(prop->symbol)
2411 {
2412 FreeSymbol(prop->symbol);
2413 }
2414 if(prop->dataType)
2415 {
2416 FreeType(prop->dataType);
2417 prop->dataType = (((void *)0));
2418 }
2419 }
2420 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method)))
2421 {
2422 if(method->dataType)
2423 {
2424 FreeType(method->dataType);
2425 method->dataType = (((void *)0));
2426 }
2427 if(method->symbol)
2428 {
2429 FreeSymbol(method->symbol);
2430 }
2431 }
2432 for(param = _class->templateParams.first; param; param = param->next)
2433 {
2434 if(param->param)
2435 {
2436 FreeTemplateParameter(param->param);
2437 param->param = (((void *)0));
2438 }
2439 }
2440 }
2441 for(function = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions.first; function; function = function->next)
2442 {
2443 if(function->dataType)
2444 FreeType(function->dataType);
2445 if(function->symbol)
2446 FreeSymbol(function->symbol);
2447 }
2448 if(!inCompiler)
2449 {
2450 struct __ecereNameSpace__ecere__com__MapIterator mapIt = (mapIt.container = (void *)0, mapIt.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&mapIt, loadedModules), mapIt);
2451
2452 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&mapIt))
2453 {
2454 struct __ecereNameSpace__ecere__com__Instance * list = ((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&mapIt));
2455 struct __ecereNameSpace__ecere__com__Iterator it = 
2456 {
2457 list, 0
2458 };
2459 unsigned int found = 0x0;
2460
2461 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&it))
2462 {
2463 if(((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&it)) == (uint64)(module))
2464 {
2465 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))list->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(list, it.pointer);
2466 found = 0x1;
2467 break;
2468 }
2469 }
2470 if(found)
2471 {
2472 if(((struct __ecereNameSpace__ecere__com__LinkList *)(((char *)list + 12)))->count == 1)
2473 {
2474 struct __ecereNameSpace__ecere__com__Instance * mod = (__extension__ ({
2475 struct __ecereNameSpace__ecere__com__Iterator __internalIterator = 
2476 {
2477 list, 0
2478 };
2479
2480 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(((uint64)(0))), 0x0);
2481 ((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&__internalIterator));
2482 }));
2483
2484 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))list->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(list, ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *))list->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_GetFirst])(list));
2485 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))loadedModules->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(loadedModules, mapIt.pointer);
2486 (__ecereNameSpace__ecere__com__eInstance_DecRef(list), list = 0);
2487 __ecereNameSpace__ecere__com__eModule_Unload(__thisModule, mod);
2488 }
2489 break;
2490 }
2491 }
2492 }
2493 }
2494
2495 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
2496
2497 struct __ecereNameSpace__ecere__com__Application
2498 {
2499 int argc;
2500 char * *  argv;
2501 int exitCode;
2502 unsigned int isGUIApp;
2503 struct __ecereNameSpace__ecere__sys__OldList allModules;
2504 char *  parsedCommand;
2505 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
2506 } __attribute__ ((gcc_struct));
2507
2508 void FreeTypeData(struct __ecereNameSpace__ecere__com__Instance * privateModule)
2509 {
2510 struct __ecereNameSpace__ecere__com__Instance * m;
2511
2512 for(m = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)privateModule + 12)))->application + 300)))->allModules.first; m; m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->next)
2513 {
2514 FreeModuleData(m);
2515 }
2516 FreeModuleData(privateModule);
2517 }
2518
2519 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);
2520
2521 void __ecereRegisterModule_freeAst(struct __ecereNameSpace__ecere__com__Instance * module)
2522 {
2523 struct __ecereNameSpace__ecere__com__Class * class;
2524
2525 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeList", "void FreeList(ecere::sys::OldList list, void( *)(void *))", FreeList, module, 2);
2526 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeType", "void FreeType(Type type)", FreeType, module, 1);
2527 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeSymbol", "void FreeSymbol(Symbol symbol)", FreeSymbol, module, 2);
2528 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeMethodImport", "void FreeMethodImport(MethodImport imp)", FreeMethodImport, module, 2);
2529 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreePropertyImport", "void FreePropertyImport(MethodImport imp)", FreePropertyImport, module, 2);
2530 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeClassImport", "void FreeClassImport(ClassImport imp)", FreeClassImport, module, 2);
2531 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeFunctionImport", "void FreeFunctionImport(ClassImport imp)", FreeFunctionImport, module, 2);
2532 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeModuleImport", "void FreeModuleImport(ModuleImport imp)", FreeModuleImport, module, 1);
2533 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeModuleDefine", "void FreeModuleDefine(Definition def)", FreeModuleDefine, module, 1);
2534 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeExcludedSymbols", "void FreeExcludedSymbols(ecere::sys::OldList excludedSymbols)", FreeExcludedSymbols, module, 1);
2535 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeTemplateArgument", "void FreeTemplateArgument(TemplateArgument arg)", FreeTemplateArgument, module, 1);
2536 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeTemplateDataType", "void FreeTemplateDataType(TemplateDatatype type)", FreeTemplateDataType, module, 1);
2537 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeTemplateParameter", "void FreeTemplateParameter(TemplateParameter param)", FreeTemplateParameter, module, 1);
2538 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeTemplateType", "void FreeTemplateType(TemplatedType type)", FreeTemplateType, module, 1);
2539 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeContext", "void FreeContext(Context context)", FreeContext, module, 1);
2540 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeEnumerator", "void FreeEnumerator(Enumerator enumerator)", FreeEnumerator, module, 2);
2541 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeSpecifier", "void FreeSpecifier(Specifier spec)", FreeSpecifier, module, 2);
2542 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeIdentifier", "void FreeIdentifier(Identifier id)", FreeIdentifier, module, 1);
2543 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeTypeName", "void FreeTypeName(TypeName typeName)", FreeTypeName, module, 2);
2544 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeExpContents", "void FreeExpContents(Expression exp)", FreeExpContents, module, 1);
2545 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeExpression", "void FreeExpression(Expression exp)", FreeExpression, module, 1);
2546 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreePointer", "void FreePointer(Pointer pointer)", FreePointer, module, 2);
2547 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeAttrib", "void FreeAttrib(Attrib attr)", FreeAttrib, module, 2);
2548 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeAttribute", "void FreeAttribute(Attribute attr)", FreeAttribute, module, 2);
2549 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeExtDecl", "void FreeExtDecl(ExtDecl extDecl)", FreeExtDecl, module, 2);
2550 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeDeclarator", "void FreeDeclarator(Declarator decl)", FreeDeclarator, module, 2);
2551 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreePropertyWatch", "void FreePropertyWatch(PropertyWatch watcher)", FreePropertyWatch, module, 2);
2552 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeStatement", "void FreeStatement(Statement stmt)", FreeStatement, module, 2);
2553 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeInitializer", "void FreeInitializer(Initializer initializer)", FreeInitializer, module, 2);
2554 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeInitDeclarator", "void FreeInitDeclarator(InitDeclarator decl)", FreeInitDeclarator, module, 2);
2555 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeDeclaration", "void FreeDeclaration(Declaration decl)", FreeDeclaration, module, 2);
2556 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeFunction", "void FreeFunction(FunctionDefinition func)", FreeFunction, module, 2);
2557 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeMemberInit", "void FreeMemberInit(MemberInit init)", FreeMemberInit, module, 2);
2558 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeMembersInit", "void FreeMembersInit(MembersInit init)", FreeMembersInit, module, 2);
2559 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeInstance", "void FreeInstance(Instantiation inst)", FreeInstance, module, 2);
2560 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeClassFunction", "void FreeClassFunction(ClassFunction func)", FreeClassFunction, module, 1);
2561 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeProperty", "void FreeProperty(PropertyDef def)", FreeProperty, module, 2);
2562 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeClassDef", "void FreeClassDef(ClassDef def)", FreeClassDef, module, 2);
2563 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeClass", "void FreeClass(ClassDefinition _class)", FreeClass, module, 2);
2564 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeDBIndexItem", "void FreeDBIndexItem(DBIndexItem item)", FreeDBIndexItem, module, 2);
2565 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeDBTableEntry", "void FreeDBTableEntry(DBTableEntry entry)", FreeDBTableEntry, module, 2);
2566 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeDBTable", "void FreeDBTable(DBTableDef table)", FreeDBTable, module, 2);
2567 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeExternal", "void FreeExternal(External external)", FreeExternal, module, 2);
2568 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeASTTree", "void FreeASTTree(ecere::sys::OldList ast)", FreeASTTree, module, 1);
2569 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeModuleData", "void FreeModuleData(ecere::com::Module module)", FreeModuleData, module, 2);
2570 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FreeTypeData", "void FreeTypeData(ecere::com::Module privateModule)", FreeTypeData, module, 1);
2571 }
2572
2573 void __ecereUnregisterModule_freeAst(struct __ecereNameSpace__ecere__com__Instance * module)
2574 {
2575
2576 }
2577