compiler/ecere: completed intptr/uintptr support
[sdk] / compiler / bootstrap / ecere / bootstrap / BinaryTree.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 struct __ecereNameSpace__ecere__sys__BTNode
27 {
28 uintptr_t key;
29 struct __ecereNameSpace__ecere__sys__BTNode * parent;
30 struct __ecereNameSpace__ecere__sys__BTNode * left;
31 struct __ecereNameSpace__ecere__sys__BTNode * right;
32 int depth;
33 } __attribute__ ((gcc_struct));
34
35 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
36
37 struct __ecereNameSpace__ecere__sys__BinaryTree
38 {
39 struct __ecereNameSpace__ecere__sys__BTNode * root;
40 int count;
41 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
42 void (* FreeKey)(void * key);
43 } __attribute__ ((gcc_struct));
44
45 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
46
47 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
48
49 struct __ecereNameSpace__ecere__sys__OldList
50 {
51 void *  first;
52 void *  last;
53 int count;
54 unsigned int offset;
55 unsigned int circ;
56 } __attribute__ ((gcc_struct));
57
58 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
59
60 struct __ecereNameSpace__ecere__com__Class
61 {
62 struct __ecereNameSpace__ecere__com__Class * prev;
63 struct __ecereNameSpace__ecere__com__Class * next;
64 char *  name;
65 int offset;
66 int structSize;
67 int (* *  _vTbl)();
68 int vTblSize;
69 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
70 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
71 int offsetClass;
72 int sizeClass;
73 struct __ecereNameSpace__ecere__com__Class * base;
74 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
75 struct __ecereNameSpace__ecere__sys__BinaryTree members;
76 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
77 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
78 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
79 struct __ecereNameSpace__ecere__sys__OldList derivatives;
80 int memberID;
81 int startMemberID;
82 int type;
83 struct __ecereNameSpace__ecere__com__Instance * module;
84 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
85 char *  dataTypeString;
86 struct __ecereNameSpace__ecere__com__Instance * dataType;
87 int typeSize;
88 int defaultAlignment;
89 void (*  Initialize)();
90 int memberOffset;
91 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
92 char *  designerClass;
93 unsigned int noExpansion;
94 char *  defaultProperty;
95 unsigned int comRedefinition;
96 int count;
97 unsigned int isRemote;
98 unsigned int internalDecl;
99 void *  data;
100 unsigned int computeSize;
101 int structAlignment;
102 int destructionWatchOffset;
103 unsigned int fixed;
104 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
105 int inheritanceAccess;
106 char *  fullName;
107 void *  symbol;
108 struct __ecereNameSpace__ecere__sys__OldList conversions;
109 struct __ecereNameSpace__ecere__sys__OldList templateParams;
110 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
111 struct __ecereNameSpace__ecere__com__Class * templateClass;
112 struct __ecereNameSpace__ecere__sys__OldList templatized;
113 int numParams;
114 } __attribute__ ((gcc_struct));
115
116 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
117
118 struct __ecereNameSpace__ecere__com__Instance
119 {
120 int (* *  _vTbl)();
121 struct __ecereNameSpace__ecere__com__Class * _class;
122 int _refCount;
123 } __attribute__ ((gcc_struct));
124
125 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
126
127 struct __ecereNameSpace__ecere__com__Property
128 {
129 struct __ecereNameSpace__ecere__com__Property * prev;
130 struct __ecereNameSpace__ecere__com__Property * next;
131 char *  name;
132 unsigned int isProperty;
133 int memberAccess;
134 int id;
135 struct __ecereNameSpace__ecere__com__Class * _class;
136 char *  dataTypeString;
137 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
138 struct __ecereNameSpace__ecere__com__Instance * dataType;
139 void (*  Set)();
140 int (*  Get)();
141 unsigned int (*  IsSet)();
142 void *  data;
143 void *  symbol;
144 int vid;
145 unsigned int conversion;
146 unsigned int watcherOffset;
147 char *  category;
148 unsigned int compiled;
149 unsigned int selfWatchable;
150 unsigned int isWatchable;
151 } __attribute__ ((gcc_struct));
152
153 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
154
155 struct __ecereNameSpace__ecere__com__DataMember
156 {
157 struct __ecereNameSpace__ecere__com__DataMember * prev;
158 struct __ecereNameSpace__ecere__com__DataMember * next;
159 char *  name;
160 unsigned int isProperty;
161 int memberAccess;
162 int id;
163 struct __ecereNameSpace__ecere__com__Class * _class;
164 char *  dataTypeString;
165 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
166 struct __ecereNameSpace__ecere__com__Instance * dataType;
167 int type;
168 int offset;
169 int memberID;
170 struct __ecereNameSpace__ecere__sys__OldList members;
171 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
172 int memberOffset;
173 int structAlignment;
174 } __attribute__ ((gcc_struct));
175
176 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
177
178 struct __ecereNameSpace__ecere__com__Method
179 {
180 char *  name;
181 struct __ecereNameSpace__ecere__com__Method * parent;
182 struct __ecereNameSpace__ecere__com__Method * left;
183 struct __ecereNameSpace__ecere__com__Method * right;
184 int depth;
185 int (*  function)();
186 int vid;
187 int type;
188 struct __ecereNameSpace__ecere__com__Class * _class;
189 void *  symbol;
190 char *  dataTypeString;
191 struct __ecereNameSpace__ecere__com__Instance * dataType;
192 int memberAccess;
193 } __attribute__ ((gcc_struct));
194
195 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
196
197 struct __ecereNameSpace__ecere__com__SerialBuffer
198 {
199 unsigned char *  _buffer;
200 unsigned int count;
201 unsigned int _size;
202 unsigned int pos;
203 } __attribute__ ((gcc_struct));
204
205 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
206
207 struct __ecereNameSpace__ecere__com__DataValue
208 {
209 union
210 {
211 char c;
212 unsigned char uc;
213 short s;
214 unsigned short us;
215 int i;
216 unsigned int ui;
217 void *  p;
218 float f;
219 double d;
220 long long i64;
221 uint64 ui64;
222 } __attribute__ ((gcc_struct));
223 } __attribute__ ((gcc_struct));
224
225 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
226
227 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
228 {
229 union
230 {
231 struct
232 {
233 char *  dataTypeString;
234 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
235 } __attribute__ ((gcc_struct));
236 struct __ecereNameSpace__ecere__com__DataValue expression;
237 struct
238 {
239 char *  memberString;
240 union
241 {
242 struct __ecereNameSpace__ecere__com__DataMember * member;
243 struct __ecereNameSpace__ecere__com__Property * prop;
244 struct __ecereNameSpace__ecere__com__Method * method;
245 } __attribute__ ((gcc_struct));
246 } __attribute__ ((gcc_struct));
247 } __attribute__ ((gcc_struct));
248 } __attribute__ ((gcc_struct));
249
250 static struct __ecereNameSpace__ecere__sys__BinaryTree __ecereNameSpace__ecere__sys__dummy;
251
252 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first, * __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_first;
253
254 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_last, * __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_last;
255
256 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
257
258 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__com__Instance * channel)
259 {
260 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, this->root);
261 }
262
263 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * *  data);
264
265 int __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count(struct __ecereNameSpace__ecere__sys__BTNode * this);
266
267 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_count;
268
269 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__com__Instance * channel)
270 {
271 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__BTNode, &(*(this)).root);
272 (*(this)).count = (*(this)).root ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count((*(this)).root) : 0;
273 }
274
275 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareInt(struct __ecereNameSpace__ecere__sys__BinaryTree * this, uintptr_t a, uintptr_t b)
276 {
277 return (a > b) ? 1 : ((a < b) ? -1 : 0);
278 }
279
280 extern int strcmp(const char * , const char * );
281
282 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * a, char * b)
283 {
284 return (a && b) ? strcmp(a, b) : -1;
285 }
286
287 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FreeString(char * string)
288 {
289 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
290 }
291
292 void __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(struct __ecereNameSpace__ecere__sys__BTNode * this, void (*  FreeKey)(void *  key));
293
294 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Free(struct __ecereNameSpace__ecere__sys__BinaryTree * this)
295 {
296 if(this->root)
297 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Free(this->root, this->FreeKey);
298 this->root = (((void *)0));
299 this->count = 0;
300 }
301
302 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Add(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree, struct __ecereNameSpace__ecere__sys__BTNode * node);
303
304 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance();
305
306 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node)
307 {
308 if(!this->CompareKey)
309 this->CompareKey = __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareInt;
310 if(!this->root)
311 this->root = node;
312 else if(__ecereMethod___ecereNameSpace__ecere__sys__BTNode_Add(this->root, this, node))
313 this->root = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Rebalance(node);
314 else
315 return 0x0;
316 this->count++;
317 return 0x1;
318 }
319
320 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Find(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t key);
321
322 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find(struct __ecereNameSpace__ecere__sys__BinaryTree * this, uintptr_t key)
323 {
324 if(!this->CompareKey)
325 this->CompareKey = __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareInt;
326 return this->root ? __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Find(this->root, this, key) : (((void *)0));
327 }
328
329 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString(struct __ecereNameSpace__ecere__sys__BTNode * this, char *  key);
330
331 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * key)
332 {
333 return this->root ? __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindString(this->root, key) : (((void *)0));
334 }
335
336 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindPrefix(struct __ecereNameSpace__ecere__sys__BTNode * this, char *  key);
337
338 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindPrefix(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * key)
339 {
340 return this->root ? __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindPrefix(this->root, key) : (((void *)0));
341 }
342
343 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(struct __ecereNameSpace__ecere__sys__BTNode * this, uintptr_t key);
344
345 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindAll(struct __ecereNameSpace__ecere__sys__BinaryTree * this, uintptr_t key)
346 {
347 return this->root ? __ecereMethod___ecereNameSpace__ecere__sys__BTNode_FindAll(this->root, key) : (((void *)0));
348 }
349
350 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapRight();
351
352 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node)
353 {
354 struct __ecereNameSpace__ecere__sys__BTNode * parent = node->parent;
355
356 if(parent || this->root == node)
357 {
358 this->root = __ecereMethod___ecereNameSpace__ecere__sys__BTNode_RemoveSwapRight(node);
359 this->count--;
360 node->parent = (((void *)0));
361 }
362 }
363
364 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node)
365 {
366 void * voidNode = node;
367
368 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(this, node);
369 (__ecereNameSpace__ecere__com__eSystem_Delete(voidNode), voidNode = 0);
370 }
371
372 char *  __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(struct __ecereNameSpace__ecere__sys__BTNode * this, char *  output, int tps);
373
374 char * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Print(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * output, int tps)
375 {
376 output[0] = (char)0;
377 if(this->root)
378 __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Print(this->root, output, tps);
379 return output;
380 }
381
382 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(struct __ecereNameSpace__ecere__sys__BTNode * this, struct __ecereNameSpace__ecere__sys__BinaryTree * tree);
383
384 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Check(struct __ecereNameSpace__ecere__sys__BinaryTree * this)
385 {
386 return this->root ? __ecereMethod___ecereNameSpace__ecere__sys__BTNode_Check(this->root, this) : 0x1;
387 }
388
389 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(struct __ecereNameSpace__ecere__sys__BTNode * this);
390
391 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_minimum;
392
393 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this)
394 {
395 return this->root ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_minimum(this->root) : (((void *)0));
396 }
397
398 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(struct __ecereNameSpace__ecere__sys__BTNode * this);
399
400 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_maximum;
401
402 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_last(struct __ecereNameSpace__ecere__sys__BinaryTree * this)
403 {
404 return this->root ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_maximum(this->root) : (((void *)0));
405 }
406
407 struct __ecereNameSpace__ecere__sys__StringBinaryTree
408 {
409 struct __ecereNameSpace__ecere__sys__BTNode * root;
410 int count;
411 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
412 void (*  FreeKey)(void *  key);
413 } __attribute__ ((gcc_struct));
414
415 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__StringBinaryTree;
416
417 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__StringBTNode;
418
419 void __ecereMethod___ecereNameSpace__ecere__sys__StringBinaryTree_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__StringBinaryTree * this, struct __ecereNameSpace__ecere__com__Instance * channel)
420 {
421 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, (struct __ecereNameSpace__ecere__sys__StringBTNode *)this->root);
422 }
423
424 void __ecereMethod___ecereNameSpace__ecere__sys__StringBinaryTree_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__sys__StringBinaryTree * this, struct __ecereNameSpace__ecere__com__Instance * channel)
425 {
426 struct __ecereNameSpace__ecere__sys__StringBTNode * root = (((void *)0));
427
428 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass___ecereNameSpace__ecere__sys__StringBTNode, &root);
429 (*(this)).root = (struct __ecereNameSpace__ecere__sys__BTNode *)root;
430 (*(this)).count = root ? __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_count((*(this)).root) : 0;
431 }
432
433 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
434
435 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
436
437 struct __ecereNameSpace__ecere__com__NameSpace
438 {
439 char *  name;
440 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
441 struct __ecereNameSpace__ecere__com__NameSpace *  left;
442 struct __ecereNameSpace__ecere__com__NameSpace *  right;
443 int depth;
444 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
445 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
446 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
447 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
448 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
449 } __attribute__ ((gcc_struct));
450
451 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
452
453 struct __ecereNameSpace__ecere__com__Module
454 {
455 struct __ecereNameSpace__ecere__com__Instance * application;
456 struct __ecereNameSpace__ecere__sys__OldList classes;
457 struct __ecereNameSpace__ecere__sys__OldList defines;
458 struct __ecereNameSpace__ecere__sys__OldList functions;
459 struct __ecereNameSpace__ecere__sys__OldList modules;
460 struct __ecereNameSpace__ecere__com__Instance * prev;
461 struct __ecereNameSpace__ecere__com__Instance * next;
462 char *  name;
463 void *  library;
464 void *  Unload;
465 int importType;
466 int origImportType;
467 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
468 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
469 } __attribute__ ((gcc_struct));
470
471 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
472
473 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
474
475 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, unsigned int size, unsigned int alignment, int declMode);
476
477 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  dataType, void *  setStmt, void *  getStmt, int declMode);
478
479 void __ecereRegisterModule_BinaryTree(struct __ecereNameSpace__ecere__com__Instance * module)
480 {
481 struct __ecereNameSpace__ecere__com__Class * class;
482
483 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::sys::BinaryTree", 0, sizeof(struct __ecereNameSpace__ecere__sys__BinaryTree), 0, 0, 0, module, 4, 1);
484 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
485 __ecereClass___ecereNameSpace__ecere__sys__BinaryTree = class;
486 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_OnSerialize, 1);
487 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_OnUnserialize, 1);
488 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "bool Add(ecere::sys::BTNode node)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add, 1);
489 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Check", "bool Check()", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Check, 1);
490 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "CompareInt", "int CompareInt(uintptr a, uintptr b)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareInt, 1);
491 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "CompareString", "int CompareString(char * a, char * b)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, 1);
492 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Delete", "void Delete(ecere::sys::BTNode node)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete, 1);
493 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", "ecere::sys::BTNode Find(uintptr key)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find, 1);
494 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindAll", "ecere::sys::BTNode FindAll(uintptr key)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindAll, 1);
495 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindPrefix", "ecere::sys::BTNode FindPrefix(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindPrefix, 1);
496 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindString", "ecere::sys::BTNode FindString(char * key)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString, 1);
497 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Free, 1);
498 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FreeString", "void ::FreeString(char * string)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FreeString, 1);
499 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Print", "char * Print(char * output, ecere::sys::TreePrintStyle tps)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Print, 1);
500 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(ecere::sys::BTNode node)", __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove, 1);
501 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "root", "ecere::sys::BTNode", 4, 4, 1);
502 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
503 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "CompareKey", "int( *)(ecere::sys::BinaryTree tree, uintptr a, uintptr b)", 4, 4, 1);
504 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "FreeKey", "void( *)(void * key)", 4, 4, 1);
505 __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_first = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "first", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first, 1);
506 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
507 __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first = __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_first, __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_first = (void *)0;
508 __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_last = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "last", "ecere::sys::BTNode", 0, __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_last, 1);
509 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
510 __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_last = __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_last, __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_last = (void *)0;
511 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::sys::StringBinaryTree", "ecere::sys::BinaryTree", sizeof(struct __ecereNameSpace__ecere__sys__StringBinaryTree) - sizeof(struct __ecereNameSpace__ecere__sys__BinaryTree), 0, 0, 0, module, 4, 1);
512 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
513 __ecereClass___ecereNameSpace__ecere__sys__StringBinaryTree = class;
514 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBinaryTree_OnSerialize, 1);
515 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__sys__StringBinaryTree_OnUnserialize, 1);
516 }
517
518 void __ecereUnregisterModule_BinaryTree(struct __ecereNameSpace__ecere__com__Instance * module)
519 {
520
521 __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_first = (void *)0;
522 __ecerePropM___ecereNameSpace__ecere__sys__BinaryTree_last = (void *)0;
523 }
524