1 /* Code generated from eC source file: ecs.ec */
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
7 #define __runtimePlatform 2
10 typedef long long int64;
11 typedef unsigned long long uint64;
15 #elif defined(__TINYC__)
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
27 typedef long long int64;
28 typedef unsigned long long uint64;
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
34 #define __ENDIAN_PAD(x) (8 - (x))
36 #define __ENDIAN_PAD(x) 0
39 #include <sys/types.h>
41 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
47 #define arch_PointerSize sizeof(void *)
48 #define structSize_Instance (_64BIT ? 24 : 12)
49 #define structSize_Module (_64BIT ? 560 : 300)
51 struct __ecereNameSpace__ecere__com__Instance;
53 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
55 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
57 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
59 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
61 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
63 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
65 struct __ecereNameSpace__ecere__sys__BTNode;
67 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
69 struct __ecereNameSpace__ecere__sys__BinaryTree
71 struct __ecereNameSpace__ecere__sys__BTNode * root;
73 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
74 void (* FreeKey)(void * key);
75 } __attribute__ ((gcc_struct));
77 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
79 struct __ecereNameSpace__ecere__sys__OldList
86 } __attribute__ ((gcc_struct));
88 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
90 struct __ecereNameSpace__ecere__com__Method
93 struct __ecereNameSpace__ecere__com__Method * parent;
94 struct __ecereNameSpace__ecere__com__Method * left;
95 struct __ecereNameSpace__ecere__com__Method * right;
100 struct __ecereNameSpace__ecere__com__Class * _class;
102 const char * dataTypeString;
103 struct Type * dataType;
105 } __attribute__ ((gcc_struct));
107 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
109 struct __ecereNameSpace__ecere__com__Property
111 struct __ecereNameSpace__ecere__com__Property * prev;
112 struct __ecereNameSpace__ecere__com__Property * next;
114 unsigned int isProperty;
117 struct __ecereNameSpace__ecere__com__Class * _class;
118 const char * dataTypeString;
119 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
120 struct Type * dataType;
121 void (* Set)(void * , int);
122 int (* Get)(void * );
123 unsigned int (* IsSet)(void * );
127 unsigned int conversion;
128 unsigned int watcherOffset;
129 const char * category;
130 unsigned int compiled;
131 unsigned int selfWatchable;
132 unsigned int isWatchable;
133 } __attribute__ ((gcc_struct));
135 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
143 } __attribute__ ((gcc_struct));
145 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
149 struct CodePosition start;
150 struct CodePosition end;
151 } __attribute__ ((gcc_struct));
153 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
157 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
161 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
163 struct ClassDefinition;
165 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
169 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
171 struct Instantiation;
173 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
177 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
181 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
185 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
189 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
191 struct __ecereNameSpace__ecere__com__DataValue
206 } __attribute__ ((gcc_struct)) __anon1;
207 } __attribute__ ((gcc_struct));
209 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
213 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
215 struct TemplateDatatype;
217 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
219 struct TemplateArgument;
221 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
223 struct TemplateParameter;
225 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
229 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
233 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
237 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
239 struct FunctionDefinition;
241 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
245 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
249 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
253 struct ModuleImport * prev;
254 struct ModuleImport * next;
256 struct __ecereNameSpace__ecere__sys__OldList classes;
257 struct __ecereNameSpace__ecere__sys__OldList functions;
260 } __attribute__ ((gcc_struct));
262 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
266 struct ClassImport * prev;
267 struct ClassImport * next;
269 struct __ecereNameSpace__ecere__sys__OldList methods;
270 struct __ecereNameSpace__ecere__sys__OldList properties;
273 } __attribute__ ((gcc_struct));
275 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
280 struct Symbol * parent;
281 struct Symbol * left;
282 struct Symbol * right;
287 struct __ecereNameSpace__ecere__com__Method * method;
288 struct __ecereNameSpace__ecere__com__Property * _property;
289 struct __ecereNameSpace__ecere__com__Class * registered;
290 } __attribute__ ((gcc_struct)) __anon1;
297 struct External * pointerExternal;
298 struct External * structExternal;
299 } __attribute__ ((gcc_struct)) __anon1;
302 struct External * externalGet;
303 struct External * externalSet;
304 struct External * externalPtr;
305 struct External * externalIsSet;
306 } __attribute__ ((gcc_struct)) __anon2;
309 struct External * methodExternal;
310 struct External * methodCodeExternal;
311 } __attribute__ ((gcc_struct)) __anon3;
312 } __attribute__ ((gcc_struct)) __anon2;
313 unsigned int imported;
314 unsigned int declaredStructSym;
315 struct __ecereNameSpace__ecere__com__Class * _class;
316 unsigned int declaredStruct;
317 unsigned int needConstructor;
318 unsigned int needDestructor;
319 char * constructorName;
322 char * destructorName;
323 struct ModuleImport * module;
324 struct ClassImport * _import;
325 struct Location nameLoc;
326 unsigned int isParam;
327 unsigned int isRemote;
328 unsigned int isStruct;
329 unsigned int fireWatchersDone;
331 unsigned int classData;
332 unsigned int isStatic;
334 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
335 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
336 struct Context * ctx;
338 struct Expression * propCategory;
339 } __attribute__ ((gcc_struct));
341 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
350 struct Symbol * _class;
353 struct __ecereNameSpace__ecere__sys__OldList members;
355 } __attribute__ ((gcc_struct)) __anon1;
358 struct Type * returnType;
359 struct __ecereNameSpace__ecere__sys__OldList params;
360 struct Symbol * thisClass;
361 unsigned int staticMethod;
362 struct TemplateParameter * thisClassTemplate;
363 } __attribute__ ((gcc_struct)) __anon2;
366 struct __ecereNameSpace__ecere__com__Method * method;
367 struct __ecereNameSpace__ecere__com__Class * methodClass;
368 struct __ecereNameSpace__ecere__com__Class * usedClass;
369 } __attribute__ ((gcc_struct)) __anon3;
372 struct Type * arrayType;
374 struct Expression * arraySizeExp;
375 unsigned int freeExp;
376 struct Symbol * enumClass;
377 } __attribute__ ((gcc_struct)) __anon4;
379 struct TemplateParameter * templateParameter;
380 } __attribute__ ((gcc_struct)) __anon1;
390 unsigned int isSigned : 1;
391 unsigned int constant : 1;
392 unsigned int truth : 1;
393 unsigned int byReference : 1;
394 unsigned int extraParam : 1;
395 unsigned int directClassAccess : 1;
396 unsigned int computing : 1;
397 unsigned int keepCast : 1;
398 unsigned int passAsTemplate : 1;
399 unsigned int dllExport : 1;
400 unsigned int attrStdcall : 1;
401 unsigned int declaredWithStruct : 1;
402 unsigned int typedByReference : 1;
403 unsigned int casted : 1;
404 } __attribute__ ((gcc_struct));
406 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
408 struct __ecereNameSpace__ecere__com__Class
410 struct __ecereNameSpace__ecere__com__Class * prev;
411 struct __ecereNameSpace__ecere__com__Class * next;
417 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
418 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
421 struct __ecereNameSpace__ecere__com__Class * base;
422 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
423 struct __ecereNameSpace__ecere__sys__BinaryTree members;
424 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
425 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
426 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
427 struct __ecereNameSpace__ecere__sys__OldList derivatives;
431 struct __ecereNameSpace__ecere__com__Instance * module;
432 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
433 const char * dataTypeString;
434 struct Type * dataType;
436 int defaultAlignment;
437 void (* Initialize)();
439 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
440 const char * designerClass;
441 unsigned int noExpansion;
442 const char * defaultProperty;
443 unsigned int comRedefinition;
446 unsigned int internalDecl;
448 unsigned int computeSize;
450 int destructionWatchOffset;
452 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
453 int inheritanceAccess;
454 const char * fullName;
456 struct __ecereNameSpace__ecere__sys__OldList conversions;
457 struct __ecereNameSpace__ecere__sys__OldList templateParams;
458 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
459 struct __ecereNameSpace__ecere__com__Class * templateClass;
460 struct __ecereNameSpace__ecere__sys__OldList templatized;
462 unsigned int isInstanceClass;
463 unsigned int byValueSystemClass;
464 } __attribute__ ((gcc_struct));
466 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
468 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
470 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
472 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
474 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
476 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
478 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
480 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
482 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
484 struct __ecereNameSpace__ecere__com__Instance
487 struct __ecereNameSpace__ecere__com__Class * _class;
489 } __attribute__ ((gcc_struct));
491 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
493 struct __ecereNameSpace__ecere__com__DataMember
495 struct __ecereNameSpace__ecere__com__DataMember * prev;
496 struct __ecereNameSpace__ecere__com__DataMember * next;
498 unsigned int isProperty;
501 struct __ecereNameSpace__ecere__com__Class * _class;
502 const char * dataTypeString;
503 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
504 struct Type * dataType;
508 struct __ecereNameSpace__ecere__sys__OldList members;
509 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
512 } __attribute__ ((gcc_struct));
514 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
516 struct __ecereNameSpace__ecere__com__SerialBuffer
518 unsigned char * _buffer;
522 } __attribute__ ((gcc_struct));
524 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
526 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
532 const char * dataTypeString;
533 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
534 } __attribute__ ((gcc_struct)) __anon1;
535 struct __ecereNameSpace__ecere__com__DataValue expression;
538 const char * memberString;
541 struct __ecereNameSpace__ecere__com__DataMember * member;
542 struct __ecereNameSpace__ecere__com__Property * prop;
543 struct __ecereNameSpace__ecere__com__Method * method;
544 } __attribute__ ((gcc_struct)) __anon1;
545 } __attribute__ ((gcc_struct)) __anon2;
546 } __attribute__ ((gcc_struct)) __anon1;
547 } __attribute__ ((gcc_struct));
550 static unsigned int i18n;
552 static unsigned int outputPot;
554 static unsigned int disabledPooling;
556 static int targetPlatform;
558 static int targetBits;
560 static unsigned int isConsole;
562 static unsigned int isDynamicLibrary;
564 static unsigned int isStaticLibrary;
566 static struct __ecereNameSpace__ecere__sys__OldList modules;
568 static struct __ecereNameSpace__ecere__com__Instance * dcomSymbols;
570 struct __ecereNameSpace__ecere__sys__OldList _defines =
575 struct __ecereNameSpace__ecere__sys__OldList _imports =
580 struct __ecereNameSpace__ecere__sys__OldList _excludedSymbols =
582 0, 0, 0, (unsigned int)(uintptr_t)&((struct Symbol *)(void * )0)->left, 0
585 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
587 struct __ecereNameSpace__ecere__com__NameSpace
590 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
591 struct __ecereNameSpace__ecere__com__NameSpace * left;
592 struct __ecereNameSpace__ecere__com__NameSpace * right;
594 struct __ecereNameSpace__ecere__com__NameSpace * parent;
595 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
596 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
597 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
598 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
599 } __attribute__ ((gcc_struct));
601 static struct __ecereNameSpace__ecere__com__NameSpace globalData;
603 static struct Context * theGlobalContext;
605 static struct ModuleImport * mainModule;
607 static struct __ecereNameSpace__ecere__com__Instance * privateModule;
609 static char mainModuleName[797];
611 static char projectName[797];
613 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(const char * fileName, int mode);
615 extern char * __ecereNameSpace__ecere__sys__TrimLSpaces(const char * string, char * output);
617 extern int strcmp(const char * , const char * );
619 extern struct ModuleImport * GetMainModule(void);
621 extern void SetMainModule(struct ModuleImport * moduleImport);
623 extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string);
625 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MethodImport;
629 struct MethodImport * prev;
630 struct MethodImport * next;
632 unsigned int isVirtual;
633 } __attribute__ ((gcc_struct));
635 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyImport;
637 struct PropertyImport
639 struct PropertyImport * prev;
640 struct PropertyImport * next;
642 unsigned int isVirtual;
645 } __attribute__ ((gcc_struct));
647 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
649 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionImport;
651 struct FunctionImport
653 struct FunctionImport * prev;
654 struct FunctionImport * next;
656 } __attribute__ ((gcc_struct));
658 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(struct __ecereNameSpace__ecere__com__Instance * this, char * s, int max);
660 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
662 void * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(struct __ecereNameSpace__ecere__sys__OldList * this, const char * name, unsigned int warn);
664 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
666 static void LoadImports(const char * fileName)
668 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
676 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
678 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
681 if(!strcmp(line, "[Imported Modules]"))
683 struct ModuleImport * module = (((void *)0));
687 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
689 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
690 if(!strcmp(line, "."))
694 struct ClassImport * _class = (((void *)0));
695 struct FunctionImport * function = (((void *)0));
697 if(!strcmp(line, "[This]"))
699 if((mainModule = GetMainModule()))
703 mainModule = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleImport);
704 SetMainModule(mainModule);
706 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_imports, module);
709 else if(!strcmp(line, "[Static]"))
711 module->importType = 1;
713 else if(!strcmp(line, "[Remote]"))
715 module->importType = 2;
717 else if(!strcmp(line, "[Private]"))
719 if(module->importAccess != 1)
720 module->importAccess = 2;
722 else if(!strcmp(line, "[Public]"))
724 module->importAccess = 1;
726 else if(!strcmp(line, "[Imported Classes]"))
730 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
732 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
733 if(!strcmp(line, "."))
737 if(!strcmp(line, "[Instantiated]"))
741 else if(!strcmp(line, "[Remote]"))
743 _class->isRemote = 1;
745 else if(!strcmp(line, "[Imported Methods]"))
747 struct MethodImport * method = (((void *)0));
751 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
753 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
754 if(!strcmp(line, "."))
758 if(!(method = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_class->methods, line, 0)))
760 method = __extension__ ({
761 struct MethodImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_MethodImport);
763 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
765 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_class->methods, method);
768 else if(!strcmp(line, "[Virtual]"))
769 method->isVirtual = 1;
772 else if(!strcmp(line, "[Imported Properties]"))
774 struct PropertyImport * prop = (((void *)0));
778 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
780 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
781 if(!strcmp(line, "."))
785 if(!(prop = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_class->properties, line, 0)))
787 prop = __extension__ ({
788 struct PropertyImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_PropertyImport);
790 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
792 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_class->properties, prop);
795 else if(!strcmp(line, "[Set]"))
797 else if(!strcmp(line, "[Get]"))
799 else if(!strcmp(line, "[Virtual]"))
806 if(!(_class = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&module->classes, line, 0)))
808 _class = __extension__ ({
809 struct ClassImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassImport);
811 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
813 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&module->classes, _class);
818 else if(!strcmp(line, "[Imported Functions]"))
822 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
824 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
825 if(!strcmp(line, "."))
832 if(!(function = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&module->functions, line, 0)))
834 function = __extension__ ({
835 struct FunctionImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_FunctionImport);
837 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
839 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&module->functions, function);
847 if(!(module = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_imports, line, 0)))
849 if(!strcmp(line, "ecereCOM"))
851 module = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_imports, "ecere", 0);
853 else if(!strcmp(line, "ecere"))
855 module = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_imports, "ecereCOM", 0);
858 (__ecereNameSpace__ecere__com__eSystem_Delete(module->name), module->name = 0);
859 module->name = __ecereNameSpace__ecere__sys__CopyString("ecere");
864 module = __extension__ ({
865 struct ModuleImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleImport);
867 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
869 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_imports, module);
877 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
881 static struct __ecereNameSpace__ecere__com__Class * thisAppClass;
885 struct ModuleInfo * prev, * next;
887 unsigned int globalInstance;
888 } __attribute__ ((gcc_struct));
890 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleInfo;
892 extern char * __ecereNameSpace__ecere__sys__GetLastDirectory(const char * string, char * output);
894 extern unsigned int __ecereNameSpace__ecere__sys__StripExtension(char * string);
896 extern char * strcpy(char * , const char * );
898 extern void FixModuleName(char * moduleName);
900 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ImportedModule;
902 struct ImportedModule
904 struct ImportedModule * prev;
905 struct ImportedModule * next;
909 unsigned int globalInstance;
910 unsigned int dllOnly;
912 } __attribute__ ((gcc_struct));
914 static void BindDCOMServer();
916 static void BindDCOMClient();
918 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, const char * name);
920 extern void FullClassNameCat(char * output, const char * className, unsigned int includeTemplateParams);
922 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, struct __ecereNameSpace__ecere__com__Instance * module);
924 extern struct Context * SetupTemplatesContext(struct __ecereNameSpace__ecere__com__Class * _class);
926 extern struct Type * ProcessTypeString(const char * string, unsigned int staticMethod);
928 extern void FinishTemplatesContext(struct Context * context);
930 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
932 struct __ecereNameSpace__ecere__com__GlobalFunction
934 struct __ecereNameSpace__ecere__com__GlobalFunction * prev;
935 struct __ecereNameSpace__ecere__com__GlobalFunction * next;
938 struct __ecereNameSpace__ecere__com__Instance * module;
939 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
940 const char * dataTypeString;
941 struct Type * dataType;
943 } __attribute__ ((gcc_struct));
945 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, const char * name);
947 extern int sprintf(char * , const char * , ...);
949 extern void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance);
951 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
953 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
955 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, const char * format, ...);
957 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
959 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof;
961 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
963 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write;
965 static void WriteMain(const char * fileName)
967 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 2);
971 struct ModuleImport * module;
972 struct ModuleInfo * defModule;
973 unsigned int anyMethod = 0, anyProp = 0, anyFunction = 0;
974 struct ImportedModule * importedModule;
976 __ecereNameSpace__ecere__sys__GetLastDirectory(fileName, mainModuleName);
977 __ecereNameSpace__ecere__sys__StripExtension(mainModuleName);
980 strcpy(projectName, mainModuleName);
981 __ecereNameSpace__ecere__sys__StripExtension(projectName);
983 FixModuleName(mainModuleName);
984 if(targetPlatform == 1 && !isConsole && !isStaticLibrary && !isDynamicLibrary)
986 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
987 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
989 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
990 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef void * HINSTANCE;\n");
991 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
992 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
994 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
995 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "#define WINAPI __stdcall\n");
997 for(importedModule = _defines.first; importedModule; importedModule = importedModule->next)
999 if(importedModule->type == 0)
1001 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "import ");
1002 if(importedModule->importType == 1)
1003 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "static ", importedModule->name);
1004 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\"%s\"\n", importedModule->name);
1007 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1008 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1010 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1011 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
1012 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1013 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1015 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1016 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static Module __currentModule;\n\n");
1017 if(!isStaticLibrary)
1018 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1019 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1021 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1022 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "Module __thisModule;\n\n");
1026 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereRegisterModule_%s(Module module);\n\n", mainModuleName);
1027 for(module = _imports.first; module; module = module->next)
1029 struct ClassImport * _class;
1030 struct FunctionImport * function;
1032 if(module->importType == 1)
1035 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "bool __ecereDll_Load_%s(Module module);\n", module->name);
1036 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "bool __ecereDll_Unload_%s(Module module);\n", module->name);
1039 for(_class = module->classes.first; _class; _class = _class->next)
1041 struct MethodImport * method;
1042 struct PropertyImport * prop;
1043 char className[1024] = "";
1044 struct __ecereNameSpace__ecere__com__Class * regClass = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, _class->name);
1046 FullClassNameCat(className, _class->name, 1);
1048 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "Class __ecereClass_%s;\n", className);
1051 for(method = _class->methods.first; method; method = method->next)
1053 struct __ecereNameSpace__ecere__com__Method * meth = __ecereNameSpace__ecere__com__eClass_FindMethod(regClass, method->name, privateModule);
1055 if(meth && !meth->dataType)
1057 struct Context * context = SetupTemplatesContext(regClass);
1059 meth->dataType = ProcessTypeString(meth->dataTypeString, 0);
1060 FinishTemplatesContext(context);
1062 if(method->isVirtual)
1063 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "int __ecereVMethodID_%s_%s;\n", className, method->name);
1064 else if((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1 && (!meth || !meth->dataType->dllExport))
1066 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "int (*__ecereMethod_%s_%s)();\n", className, method->name);
1071 for(prop = _class->properties.first; prop; prop = prop->next)
1073 char propName[1024];
1075 propName[0] = (char)0;
1076 FullClassNameCat(propName, prop->name, 1);
1077 if((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1)
1080 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void * __ecereProp_%s_Set_%s;\n", className, propName);
1082 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void * __ecereProp_%s_Get_%s;\n", className, propName);
1084 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "Property __ecereProp_%s_%s;\n", className, propName);
1089 for(function = module->functions.first; function; function = function->next)
1091 struct __ecereNameSpace__ecere__com__GlobalFunction * func = __ecereNameSpace__ecere__com__eSystem_FindFunction(privateModule, function->name);
1093 if(func && !func->dataType)
1094 func->dataType = ProcessTypeString(func->dataTypeString, 0);
1095 if(module->name && module->importType != 1 && (!func || !func->dataType || !func->dataType->dllExport))
1097 char functionName[1024];
1099 functionName[0] = (char)0;
1100 FullClassNameCat(functionName, function->name, 0);
1101 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void * __ecereFunction_%s;\n", functionName);
1106 for(defModule = modules.first; defModule; defModule = defModule->next)
1108 char moduleName[1024];
1110 strcpy(moduleName, defModule->name);
1111 FixModuleName(moduleName);
1112 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereRegisterModule_%s(Module module);\n", moduleName);
1113 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereUnregisterModule_%s(Module module);\n", moduleName);
1114 if(defModule->globalInstance)
1116 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereCreateModuleInstances_%s();\n", moduleName);
1117 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereDestroyModuleInstances_%s();\n", moduleName);
1122 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1123 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
1124 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = dcomSymbols;
1126 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1127 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(dcomSymbols, 0, 0);
1128 while(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
1129 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = dcomSymbols;
1131 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1132 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(dcomSymbols))
1135 int read = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
1136 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = dcomSymbols;
1138 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1139 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(dcomSymbols, buffer, 1, sizeof (buffer));
1143 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void * buffer, unsigned int size, unsigned int count))__extension__ ({
1144 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1146 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1147 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(f, buffer, 1, read);
1149 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1153 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\nbool __ecereDll_Load_%s(Module module)\n{\n", projectName);
1155 else if(isDynamicLibrary)
1157 if(targetPlatform == 1)
1158 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1159 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1161 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1162 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\ndllexport bool __stdcall __ecereDll_Load(Module module)\n{\n");
1164 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1165 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1167 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1168 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\ndllexport bool __ecereDll_Load(Module module)\n{\n");
1170 else if(targetPlatform == 1 && !isConsole)
1172 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1173 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1175 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1176 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\nint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, char * cmdLine, int show)\n{\n");
1179 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1180 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1182 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1183 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\nint main(int _argc, char * _argv[])\n{\n");
1184 if(!isDynamicLibrary)
1186 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1187 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1189 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1190 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " int exitCode;\n");
1191 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1192 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1194 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1195 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " Module module;\n");
1197 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1198 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1200 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1201 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __attribute__((unused)) Class _class;\n");
1203 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1204 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1206 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1207 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " Method method;\n");
1209 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1210 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1212 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1213 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " Property _property;\n");
1215 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1216 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1218 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1219 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " GlobalFunction function;\n");
1220 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1221 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1223 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1224 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
1227 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1228 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1230 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1231 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " eSystem_SetPoolingDisabled(true);\n");
1232 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1233 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1235 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1236 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
1238 if(isDynamicLibrary)
1240 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1241 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1243 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1244 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(!__currentModule)\n");
1245 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1246 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1248 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1249 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " {\n");
1250 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1251 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1253 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1254 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __currentModule = module;\n");
1255 if(!isStaticLibrary)
1256 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1257 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1259 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1260 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __thisModule = module;\n");
1261 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1262 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1264 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1265 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }\n\n");
1267 else if(targetPlatform == 1 && !isConsole)
1268 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1269 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1271 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1272 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __thisModule = __currentModule = module = __ecere_COM_Initialize(1, 0, null);\n\n");
1274 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1275 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1277 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1278 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __thisModule = __currentModule = module = __ecere_COM_Initialize(1, _argc, (void *)_argv);\n\n");
1281 for(module = _imports.first; module; module = module->next)
1286 if(module->importType == 1)
1287 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " eModule_LoadStatic(module, \"%s\", %s, __ecereDll_Load_%s, __ecereDll_Unload_%s);\n", module->name, (module->importAccess == 2) ? "privateAccess" : "publicAccess", module->name, module->name);
1289 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " eModule_Load(module, \"%s\", %s);\n", module->name, (module->importAccess == 2) ? "privateAccess" : "publicAccess");
1293 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1297 for(defModule = modules.first; defModule; defModule = defModule->next)
1299 char moduleName[1024];
1301 strcpy(moduleName, defModule->name);
1302 FixModuleName(moduleName);
1303 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereRegisterModule_%s(module);\n", moduleName);
1305 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1309 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereRegisterModule_%s(module);\n\n", mainModuleName);
1310 (__ecereNameSpace__ecere__com__eInstance_DecRef(dcomSymbols), dcomSymbols = 0);
1312 if(isDynamicLibrary)
1314 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1315 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1317 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1318 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__currentModule == module)\n");
1319 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1320 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1322 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1323 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " {\n");
1325 for(module = _imports.first; module; module = module->next)
1327 struct ClassImport * _class;
1328 struct FunctionImport * function;
1330 if(module->classes.count)
1332 for(_class = module->classes.first; _class; _class = _class->next)
1334 struct __ecereNameSpace__ecere__com__Class * regClass = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, _class->name);
1337 struct MethodImport * method;
1338 struct PropertyImport * prop;
1340 char className[1024] = "";
1342 FullClassNameCat(className, _class->name, 1);
1344 sprintf(classID, "__ecereClass_%s", className);
1346 strcpy(classID, "_class");
1347 if(isDynamicLibrary && !isStaticLibrary)
1348 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " %s = eSystem_FindClass(__currentModule, \"%s\");\n", classID, _class->name);
1350 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " %s = eSystem_FindClass(module, \"%s\");\n", classID, _class->name);
1351 for(method = _class->methods.first; method; method = method->next)
1353 struct __ecereNameSpace__ecere__com__Method * meth = __ecereNameSpace__ecere__com__eClass_FindMethod(regClass, method->name, privateModule);
1355 if(!meth || !meth->dataType->dllExport)
1357 if(method->isVirtual || ((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1))
1359 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " method = eClass_FindMethod(%s, \"%s\", module);\n", classID, method->name);
1360 if(method->isVirtual)
1361 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(method) __ecereVMethodID_%s_%s = method.vid;\n", className, method->name);
1363 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(method) __ecereMethod_%s_%s = method.function;\n", className, method->name);
1367 for(prop = _class->properties.first; prop; prop = prop->next)
1369 char propName[1024];
1371 propName[0] = (char)0;
1372 FullClassNameCat(propName, prop->name, 1);
1373 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereProp_%s_%s = _property = eClass_FindProperty(%s, \"%s\", module);\n", className, propName, classID, prop->name);
1374 if((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1)
1377 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereProp_%s_Set_%s = _property.Set;\n", className, propName);
1379 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereProp_%s_Get_%s = _property.Get;\n", className, propName);
1382 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1386 if(module->functions.count)
1388 for(function = module->functions.first; function; function = function->next)
1390 struct __ecereNameSpace__ecere__com__GlobalFunction * func = __ecereNameSpace__ecere__com__eSystem_FindFunction(privateModule, function->name);
1392 if(module->name && module->importType != 1 && (!func || !func->dataType || !func->dataType->dllExport))
1394 char functionName[1024];
1396 functionName[0] = (char)0;
1397 FullClassNameCat(functionName, function->name, 0);
1398 if(isDynamicLibrary && !isStaticLibrary)
1399 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " function = eSystem_FindFunction(__currentModule, \"%s\");\n", function->name);
1401 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " function = eSystem_FindFunction(module, \"%s\");\n", function->name);
1402 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(function) __ecereFunction_%s = function.function;\n", functionName);
1403 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1406 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1409 for(defModule = modules.first; defModule; defModule = defModule->next)
1410 if(defModule->globalInstance)
1412 if(!strcmp(defModule->name, "i18n"))
1413 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereCreateModuleInstances_i18n();\n");
1417 if(isDynamicLibrary)
1418 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " LoadTranslatedStrings(\"%s\", \"%s\");\n", projectName, projectName);
1420 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " LoadTranslatedStrings(null, \"%s\");\n", projectName);
1422 if(isDynamicLibrary)
1424 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1425 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1427 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1428 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }\n");
1430 if(!isDynamicLibrary && thisAppClass)
1432 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " _class = eSystem_FindClass(__currentModule, \"%s\");\n", thisAppClass->name);
1433 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " eInstance_Evolve((Instance *)&__currentModule, _class);\n");
1434 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __thisModule = __currentModule;\n");
1436 if(isDynamicLibrary)
1438 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1439 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1441 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1442 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__currentModule == module)\n");
1443 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1444 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1446 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1447 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " {\n");
1451 for(defModule = modules.first; defModule; defModule = defModule->next)
1452 if(defModule->globalInstance)
1454 char moduleName[1024];
1456 if(!strcmp(defModule->name, "i18n"))
1458 strcpy(moduleName, defModule->name);
1459 FixModuleName(moduleName);
1460 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereCreateModuleInstances_%s();\n", moduleName);
1462 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1464 if(isDynamicLibrary)
1466 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1467 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1469 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1470 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }\n");
1472 if(!isDynamicLibrary && thisAppClass)
1474 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ((void(*)(void *))(void *)__currentModule._vTbl[12])(__currentModule);\n");
1476 if(isDynamicLibrary)
1478 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1479 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1481 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1482 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " return true;\n");
1483 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1484 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1486 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1487 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
1490 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\nbool __ecereDll_Unload_%s(Module module)\n{\n", projectName);
1494 if(targetPlatform == 1)
1495 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1496 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1498 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1499 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\ndllexport bool __stdcall __ecereDll_Unload(Module module)\n{\n");
1501 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1502 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1504 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1505 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\ndllexport bool __ecereDll_Unload(Module module)\n{\n");
1508 if(isDynamicLibrary)
1510 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1511 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1513 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1514 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__currentModule == module)\n");
1515 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1516 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1518 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1519 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " {\n");
1522 unsigned int destroyI18n = 0;
1526 for(defModule = modules.first; defModule; defModule = defModule->next)
1527 if(defModule->globalInstance)
1529 char moduleName[1024];
1531 if(!strcmp(defModule->name, "i18n"))
1536 strcpy(moduleName, defModule->name);
1537 FixModuleName(moduleName);
1538 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereDestroyModuleInstances_%s();\n", moduleName);
1540 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1543 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " UnloadTranslatedStrings(\"%s\");\n", projectName);
1545 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereDestroyModuleInstances_i18n();\n");
1547 if(isDynamicLibrary)
1549 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1550 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1552 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1553 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }\n");
1554 if(isDynamicLibrary)
1559 for(defModule = modules.first; defModule; defModule = defModule->next)
1561 char moduleName[1024];
1563 strcpy(moduleName, defModule->name);
1564 FixModuleName(moduleName);
1565 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereUnregisterModule_%s(module);\n", moduleName);
1567 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1569 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1570 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1572 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1573 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__currentModule == module)\n");
1574 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1575 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1577 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1578 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __currentModule = (void *)0;\n");
1579 if(!isStaticLibrary)
1581 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1582 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1584 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1585 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__thisModule == module)\n");
1586 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1587 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1589 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1590 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __thisModule = (void *)0;\n");
1593 if(!isDynamicLibrary)
1595 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1596 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1598 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1599 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n _class = eSystem_FindClass(__currentModule, \"ecere::com::Application\");\n exitCode = ((ecere::com::Application)__currentModule).exitCode;\n delete __currentModule;\n return exitCode;\n");
1602 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1603 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1605 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1606 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " return true;\n");
1607 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1608 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1610 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1611 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
1612 __ecereNameSpace__ecere__com__eInstance_Delete(f);
1616 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BTNamedLink;
1618 struct __ecereNameSpace__ecere__com__BTNamedLink
1621 struct __ecereNameSpace__ecere__com__BTNamedLink * parent;
1622 struct __ecereNameSpace__ecere__com__BTNamedLink * left;
1623 struct __ecereNameSpace__ecere__com__BTNamedLink * right;
1626 } __attribute__ ((gcc_struct));
1628 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
1630 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
1632 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
1634 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
1636 static struct __ecereNameSpace__ecere__com__Class * FindAppClass(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, unsigned int thisModule)
1638 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
1639 struct __ecereNameSpace__ecere__com__NameSpace * ns;
1641 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*nameSpace).classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
1643 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
1645 if(strcmp(_class->fullName, "ecere::com::Application") && (!thisModule || _class->module == privateModule))
1647 struct __ecereNameSpace__ecere__com__Class * base;
1649 for(base = _class->base; base && base->type != 1000; base = base->base)
1650 if(!strcmp(base->fullName, "ecere::com::Application"))
1654 for(ns = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*nameSpace).nameSpaces); ns; ns = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)ns)))
1656 struct __ecereNameSpace__ecere__com__Class * _class = FindAppClass(ns, thisModule);
1661 return (((void *)0));
1664 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
1666 struct __ecereNameSpace__ecere__com__Module
1668 struct __ecereNameSpace__ecere__com__Instance * application;
1669 struct __ecereNameSpace__ecere__sys__OldList classes;
1670 struct __ecereNameSpace__ecere__sys__OldList defines;
1671 struct __ecereNameSpace__ecere__sys__OldList functions;
1672 struct __ecereNameSpace__ecere__sys__OldList modules;
1673 struct __ecereNameSpace__ecere__com__Instance * prev;
1674 struct __ecereNameSpace__ecere__com__Instance * next;
1680 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1681 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1682 } __attribute__ ((gcc_struct));
1684 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SubModule;
1686 struct __ecereNameSpace__ecere__com__SubModule
1688 struct __ecereNameSpace__ecere__com__SubModule * prev;
1689 struct __ecereNameSpace__ecere__com__SubModule * next;
1690 struct __ecereNameSpace__ecere__com__Instance * module;
1692 } __attribute__ ((gcc_struct));
1694 static struct __ecereNameSpace__ecere__com__Class * SearchAppClass_Module(struct __ecereNameSpace__ecere__com__Instance * module)
1696 struct __ecereNameSpace__ecere__com__Class * appClass;
1697 struct __ecereNameSpace__ecere__com__SubModule * subModule;
1699 appClass = FindAppClass(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace, 0x0);
1702 appClass = FindAppClass(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace, 0x0);
1705 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules.first; subModule; subModule = subModule->next)
1707 appClass = SearchAppClass_Module(subModule->module);
1711 return (((void *)0));
1714 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
1716 struct __ecereNameSpace__ecere__sys__OldLink
1718 struct __ecereNameSpace__ecere__sys__OldLink * prev;
1719 struct __ecereNameSpace__ecere__sys__OldLink * next;
1721 } __attribute__ ((gcc_struct));
1723 extern void DeclareClass(struct Symbol * classSym, const char * className);
1725 extern struct Symbol * FindClass(const char * name);
1727 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
1729 extern void PrintTypeNoConst(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
1731 extern void PrintType(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
1733 extern struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
1735 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1737 extern struct Identifier * MkIdentifier(const char * string);
1739 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
1741 extern void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
1743 extern char * strcat(char * , const char * );
1745 extern void DeclareMethod(struct __ecereNameSpace__ecere__com__Method * method, const char * name);
1747 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
1749 static void BindDCOMClient()
1751 struct __ecereNameSpace__ecere__com__Class * dcomClientObjectClass = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::net::DCOMClientObject");
1752 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
1754 if(dcomClientObjectClass && dcomClientObjectClass->derivatives.first)
1756 struct __ecereNameSpace__ecere__com__Instance * f;
1759 dcomSymbols = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
1761 for(deriv = dcomClientObjectClass->derivatives.first; deriv; deriv = deriv->next)
1763 struct __ecereNameSpace__ecere__com__Class * _class = deriv->data;
1764 struct __ecereNameSpace__ecere__com__Method * method, * next;
1767 unsigned int doVirtual;
1769 DeclareClass(FindClass("ecere::net::DCOMClientObject"), "__ecereClass___ecereNameSpace__ecere__net__DCOMClientObject");
1770 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "class %s : ecere::net::DCOMClientObject\n", _class->fullName);
1771 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
1772 if(_class->vTblSize > _class->base->vTblSize)
1776 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " virtual void CallVirtualMethod(uint __ecereMethodID, SerialBuffer __ecereBuffer)\n");
1777 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1778 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " switch(__ecereMethodID)\n");
1779 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1780 for(vid = _class->base->vTblSize; vid < _class->vTblSize; vid++)
1782 struct __ecereNameSpace__ecere__com__Method * method;
1784 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)))
1786 if(method->type == 1 && method->_class == _class && method->vid == vid)
1791 struct Type * param;
1793 method->dataType = ProcessTypeString(method->dataTypeString, 0);
1794 if(method->dataType && method->dataType->name)
1796 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " case %d:\n", vid - _class->base->vTblSize);
1797 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1799 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1801 struct TypeName * resultType;
1802 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1803 struct Declarator * decl;
1804 char type[1024] = "";
1805 char className[1024];
1806 struct Symbol * classSym;
1808 if(method->dataType->__anon1.__anon2.returnType->kind == 8)
1809 classSym = method->dataType->__anon1.__anon2.returnType->__anon1._class;
1812 PrintTypeNoConst(method->dataType->__anon1.__anon2.returnType, type, 0, 1);
1813 classSym = FindClass(type);
1816 strcpy(className, "__ecereClass_");
1817 FullClassNameCat(className, classSym->string, 1);
1818 DeclareClass(classSym, className);
1819 PrintType(method->dataType->__anon1.__anon2.returnType, type, 1, 1);
1820 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult")));
1821 resultType = MkTypeName(specs, decl);
1822 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1823 OutputTypeName(resultType, f, 0);
1824 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n");
1826 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1828 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
1830 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " char %s[1024];\n", param->name);
1831 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
1832 DeclareClass(FindClass("String"), "__ecereClass_String");
1836 struct TypeName * paramTypeName;
1837 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1838 struct Declarator * decl;
1839 char type[1024] = "";
1840 char className[1024];
1841 struct Symbol * classSym;
1843 if(param->kind == 8)
1844 classSym = param->__anon1._class;
1847 PrintTypeNoConst(param, type, 0, 1);
1848 classSym = FindClass(type);
1851 strcpy(className, "__ecereClass_");
1852 FullClassNameCat(className, classSym->string, 1);
1853 DeclareClass(classSym, className);
1854 PrintType(param, type, 1, 1);
1855 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier(param->name)));
1856 paramTypeName = MkTypeName(specs, decl);
1857 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1858 OutputTypeName(paramTypeName, f, 0);
1859 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n");
1862 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1863 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1865 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize(");
1866 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
1868 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
1869 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "(StaticString)");
1871 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1872 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1874 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1875 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, param->name);
1876 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
1878 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1879 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1880 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereResult = ");
1881 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s(", method->name);
1882 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1885 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ", ");
1886 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s", param->name);
1888 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
1889 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1891 if(param->kind == 8 && ((param->__anon1._class && param->__anon1._class->__anon1.registered && param->__anon1._class->__anon1.registered->type == 1) || !strcmp(param->__anon1._class->string, "String")) && !param->constant)
1893 if(!strcmp(param->__anon1._class->string, "String"))
1895 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
1896 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize((StaticString)%s);\n", param->name);
1899 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(%s);\n", param->name);
1902 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1904 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(__ecereResult);\n");
1906 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1908 if(param->kind == 8 && strcmp(param->__anon1._class->string, "String") && param->__anon1._class->__anon1.registered && (param->__anon1._class->__anon1.registered->type == 0 || param->__anon1._class->__anon1.registered->type == 5))
1910 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete %s;\n", param->name);
1913 if(method->dataType->__anon1.__anon2.returnType->kind == 8 && strcmp(method->dataType->__anon1.__anon2.returnType->__anon1._class->string, "String") && method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered && (method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered->type == 0 || method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered->type == 5))
1915 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete __ecereResult;\n");
1918 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " break;\n");
1919 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1923 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1924 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1925 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1929 vid = _class->base->vTblSize;
1930 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods);
1931 while(next && ((next->type == 1) != doVirtual || (doVirtual && next->vid != vid)))
1934 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)next));
1935 if(!next && doVirtual)
1937 if(vid == _class->vTblSize)
1942 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods);
1945 for(method = next; method; method = next)
1947 struct Type * param;
1949 if(!method->dataType)
1950 method->dataType = ProcessTypeString(method->dataTypeString, 0);
1951 if(method->dataType->name)
1953 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1958 strcpy(name, "__ecereVMethodID_");
1959 FullClassNameCat(name, method->_class->fullName, 1);
1961 strcat(name, method->name);
1962 DeclareMethod(method, name);
1963 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "virtual ");
1965 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s\n", method->dataTypeString);
1966 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1967 if(method->dataType)
1969 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1971 struct TypeName * resultType;
1972 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1973 struct Declarator * decl;
1974 char type[1024] = "";
1975 char className[1024];
1976 struct Symbol * classSym;
1978 if(method->dataType->__anon1.__anon2.returnType->kind == 8)
1979 classSym = method->dataType->__anon1.__anon2.returnType->__anon1._class;
1982 PrintTypeNoConst(method->dataType->__anon1.__anon2.returnType, type, 0, 1);
1983 classSym = FindClass(type);
1986 strcpy(className, "__ecereClass_");
1987 FullClassNameCat(className, classSym->string, 1);
1988 DeclareClass(classSym, className);
1989 PrintType(method->dataType->__anon1.__anon2.returnType, type, 1, 1);
1990 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult")));
1991 resultType = MkTypeName(specs, decl);
1992 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1993 OutputTypeName(resultType, f, 0);
1994 if(method->dataType->__anon1.__anon2.returnType->kind == 9)
1995 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " = { 0 }");
1996 else if(method->dataType->__anon1.__anon2.returnType->kind == 8 && method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered && method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered->type == 1)
1997 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " { }");
1999 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " = 0");
2000 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n\n");
2002 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " incref this;\n");
2003 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2005 char type[1024] = "";
2006 char className[1024];
2007 struct Symbol * classSym;
2009 if(param->kind == 8)
2010 classSym = param->__anon1._class;
2013 PrintTypeNoConst(param, type, 0, 1);
2014 classSym = FindClass(type);
2017 strcpy(className, "__ecereClass_");
2018 FullClassNameCat(className, classSym->string, 1);
2019 DeclareClass(classSym, className);
2020 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
2022 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
2023 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize((StaticString)%s);\n", param->name);
2026 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(%s);\n", param->name);
2028 DeclareMethod(__ecereNameSpace__ecere__com__eClass_FindMethod(__ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::net::DCOMClientObject"), "CallMethod", privateModule), "__ecereMethod___ecereNameSpace__ecere__net__DCOMClientObject_CallMethod");
2029 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(DCOMClientObject::CallMethod(%d))\n", id++);
2030 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
2031 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2033 if(param->kind == 8 && ((param->__anon1._class && param->__anon1._class->__anon1.registered && param->__anon1._class->__anon1.registered->type == 1) || !strcmp(param->__anon1._class->string, "String")) && !param->constant)
2035 if(!strcmp(param->__anon1._class->string, "String"))
2037 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
2038 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize((StaticString)%s);\n", param->name);
2041 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize(%s);\n", param->name);
2044 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
2046 if(method->dataType->__anon1.__anon2.returnType->kind == 8 && !strcmp(method->dataType->__anon1.__anon2.returnType->__anon1._class->string, "String"))
2048 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
2049 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize((StaticString)__ecereResult);\n");
2052 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize(__ecereResult);\n");
2054 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
2055 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Free();\n");
2056 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete this;\n");
2057 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
2059 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " return __ecereResult;\n");
2062 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
2064 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
2065 while(next && ((next->type == 1) != doVirtual || (doVirtual && next->vid != vid)))
2068 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)next));
2069 if(!next && doVirtual)
2071 if(vid == _class->vTblSize)
2076 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods);
2080 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2082 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
2084 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2089 static void BindDCOMServer()
2091 unsigned int mutexDeclared = 0;
2092 struct __ecereNameSpace__ecere__com__Class * _class;
2094 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)privateModule + 24)))->classes.first; _class; _class = _class->next)
2096 if(_class->isRemote == 3)
2101 struct __ecereNameSpace__ecere__com__Instance * f;
2104 dcomSymbols = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
2106 DeclareClass(FindClass("ecere::net::DCOMServerObject"), "__ecereClass___ecereNameSpace__ecere__net__DCOMServerObject");
2107 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)privateModule + structSize_Instance)))->classes.first; _class; _class = _class->next)
2109 if(_class->isRemote == 3)
2111 struct __ecereNameSpace__ecere__com__Method * method;
2115 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "class DCOM%s : ecere::net::DCOMServerObject\n", _class->fullName);
2116 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
2117 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " virtual void CallMethod(uint __ecereMethodID, SerialBuffer __ecereBuffer)\n");
2118 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
2119 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " %s inst = (%s)instance;\n", _class->fullName, _class->fullName);
2120 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " incref inst;\n");
2121 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " switch(__ecereMethodID)\n");
2122 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
2123 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)))
2125 struct Type * param;
2127 method->dataType = ProcessTypeString(method->dataTypeString, 0);
2128 if(method->dataType && method->dataType->name)
2130 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " case %d:\n", id++);
2131 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
2133 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
2135 struct TypeName * resultType;
2136 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
2137 struct Declarator * decl;
2138 char type[1024] = "";
2139 char className[1024];
2140 struct Symbol * classSym;
2142 if(method->dataType->__anon1.__anon2.returnType->kind == 8)
2143 classSym = method->dataType->__anon1.__anon2.returnType->__anon1._class;
2146 PrintTypeNoConst(method->dataType->__anon1.__anon2.returnType, type, 0, 1);
2147 classSym = FindClass(type);
2150 strcpy(className, "__ecereClass_");
2151 FullClassNameCat(className, classSym->string, 1);
2152 DeclareClass(classSym, className);
2153 PrintType(method->dataType->__anon1.__anon2.returnType, type, 1, 1);
2154 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult")));
2155 resultType = MkTypeName(specs, decl);
2156 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
2157 OutputTypeName(resultType, f, 0);
2158 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n");
2160 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2162 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
2164 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " char %s[1024];\n", param->name);
2165 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
2166 DeclareClass(FindClass("String"), "__ecereClass_String");
2170 struct TypeName * paramTypeName;
2171 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
2172 struct Declarator * decl;
2173 char type[1024] = "";
2174 char className[1024];
2175 struct Symbol * classSym;
2177 if(param->kind == 8)
2178 classSym = param->__anon1._class;
2181 PrintTypeNoConst(param, type, 0, 1);
2182 classSym = FindClass(type);
2185 strcpy(className, "__ecereClass_");
2186 FullClassNameCat(className, classSym->string, 1);
2187 DeclareClass(classSym, className);
2188 PrintType(param, type, 1, 1);
2189 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier(param->name)));
2190 paramTypeName = MkTypeName(specs, decl);
2191 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
2192 OutputTypeName(paramTypeName, f, 0);
2193 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n");
2196 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2197 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2199 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize(");
2200 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
2202 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
2203 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "(StaticString)");
2205 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2206 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2208 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2209 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, param->name);
2210 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
2212 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
2213 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
2214 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereResult = ");
2215 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "((%s)instance).%s(", _class->fullName, method->name);
2216 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2219 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ", ");
2220 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s", param->name);
2222 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
2223 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2225 if(param->kind == 8 && ((param->__anon1._class && param->__anon1._class->__anon1.registered && param->__anon1._class->__anon1.registered->type == 1) || !strcmp(param->__anon1._class->string, "String")) && !param->constant)
2227 if(!strcmp(param->__anon1._class->string, "String"))
2229 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
2230 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize((StaticString)%s);\n", param->name);
2233 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(%s);\n", param->name);
2236 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
2238 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(__ecereResult);\n");
2240 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2242 if(param->kind == 8 && strcmp(param->__anon1._class->string, "String") && param->__anon1._class->__anon1.registered && (param->__anon1._class->__anon1.registered->type == 0 || param->__anon1._class->__anon1.registered->type == 5))
2244 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete %s;\n", param->name);
2247 if(method->dataType->__anon1.__anon2.returnType->kind == 8 && strcmp(method->dataType->__anon1.__anon2.returnType->__anon1._class->string, "String") && method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered && (method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered->type == 0 || method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered->type == 5))
2249 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete __ecereResult;\n");
2252 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " break;\n");
2253 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
2256 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
2257 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete inst;\n");
2258 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
2259 for(vid = _class->base->vTblSize; vid < _class->vTblSize; vid++)
2261 struct __ecereNameSpace__ecere__com__Method * method;
2262 struct Type * param;
2264 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)))
2265 if(method->type == 1 && method->_class == _class && method->vid == vid)
2271 DeclareClass(FindClass("ecere::sys::Mutex"), "__ecereClass___ecereNameSpace__ecere__sys__Mutex");
2272 DeclareMethod(__ecereNameSpace__ecere__com__eClass_FindMethod(__ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::sys::Mutex"), "Wait", privateModule), "__ecereMethod___ecereNameSpace__ecere__sys__Mutex_Wait");
2273 DeclareMethod(__ecereNameSpace__ecere__com__eClass_FindMethod(__ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::sys::Mutex"), "Release", privateModule), "__ecereMethod___ecereNameSpace__ecere__sys__Mutex_Release");
2276 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2277 if(!method->dataType)
2278 method->dataType = ProcessTypeString(method->dataTypeString, 0);
2279 if(method->dataType->name)
2281 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " virtual %s\n", method->dataTypeString);
2282 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
2283 if(method->dataType)
2285 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " DCOM%s __ecereObject = (void *)_vTbl[-1];\n", _class->fullName);
2286 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
2288 struct TypeName * resultType;
2289 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
2290 struct Declarator * decl;
2291 char type[1024] = "";
2292 char className[1024];
2293 struct Symbol * classSym;
2295 if(method->dataType->__anon1.__anon2.returnType->kind == 8)
2296 classSym = method->dataType->__anon1.__anon2.returnType->__anon1._class;
2299 PrintTypeNoConst(method->dataType->__anon1.__anon2.returnType, type, 0, 1);
2300 classSym = FindClass(type);
2303 strcpy(className, "__ecereClass_");
2304 FullClassNameCat(className, classSym->string, 1);
2305 DeclareClass(classSym, className);
2306 PrintType(method->dataType->__anon1.__anon2.returnType, type, 1, 1);
2307 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult")));
2308 resultType = MkTypeName(specs, decl);
2309 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
2310 OutputTypeName(resultType, f, 0);
2311 if(method->dataType->__anon1.__anon2.returnType->kind == 9)
2312 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " = { 0 }");
2313 else if(method->dataType->__anon1.__anon2.returnType->kind == 8 && method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered && method->dataType->__anon1.__anon2.returnType->__anon1._class->__anon1.registered->type == 1)
2314 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " { }");
2316 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " = 0");
2317 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n\n");
2319 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " incref __ecereObject;\n");
2320 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereMethod___ecereNameSpace__ecere__sys__Mutex_Wait(__ecereObject.mutex);\n");
2321 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2323 char type[1024] = "";
2324 char className[1024];
2325 struct Symbol * classSym;
2327 if(param->kind == 8)
2328 classSym = param->__anon1._class;
2331 PrintTypeNoConst(param, type, 0, 1);
2332 classSym = FindClass(type);
2335 strcpy(className, "__ecereClass_");
2336 FullClassNameCat(className, classSym->string, 1);
2337 DeclareClass(classSym, className);
2338 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
2340 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
2341 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.argsBuffer.Serialize((StaticString)%s);\n", param->name);
2344 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.argsBuffer.Serialize(%s);\n", param->name);
2346 DeclareMethod(__ecereNameSpace__ecere__com__eClass_FindMethod(__ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::net::DCOMServerObject"), "CallVirtualMethod", privateModule), "__ecereMethod___ecereNameSpace__ecere__net__DCOMServerObject_CallVirtualMethod");
2348 unsigned int hasReturnValue = method->dataType->__anon1.__anon2.returnType->kind != 0;
2352 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2354 if(param->kind == 8 && ((param->__anon1._class && param->__anon1._class->__anon1.registered && param->__anon1._class->__anon1.registered->type == 1) || !strcmp(param->__anon1._class->string, "String")) && !param->constant)
2361 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(__ecereObject.CallVirtualMethod(%d, %s))\n", vid - _class->base->vTblSize, hasReturnValue ? "true" : "false");
2363 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
2364 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2366 if(param->kind == 8 && ((param->__anon1._class && param->__anon1._class->__anon1.registered && param->__anon1._class->__anon1.registered->type == 1) || !strcmp(param->__anon1._class->string, "String")) && !param->constant)
2368 if(!strcmp(param->__anon1._class->string, "String"))
2370 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
2371 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Unserialize((StaticString)%s);\n", param->name);
2374 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Unserialize(%s);\n", param->name);
2377 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
2379 if(method->dataType->__anon1.__anon2.returnType->kind == 8 && !strcmp(method->dataType->__anon1.__anon2.returnType->__anon1._class->string, "String"))
2381 DeclareClass(FindClass("StaticString"), "__ecereClass_StaticString");
2382 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Unserialize((StaticString)__ecereResult);\n");
2385 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Unserialize(__ecereResult);\n");
2387 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
2388 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " else\n");
2389 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ((%s)this).%s::%s(", _class->fullName, _class->fullName, method->name);
2390 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
2392 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s", param->name);
2394 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ", ");
2396 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
2397 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Free();\n");
2398 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereMethod___ecereNameSpace__ecere__sys__Mutex_Release(__ecereObject.mutex);\n");
2399 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete __ecereObject;\n");
2400 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
2402 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " return __ecereResult;\n");
2405 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
2409 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
2415 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_SymbolgenApp;
2417 extern int GetHostBits(void);
2419 extern void SetSymbolsDir(const char * s);
2421 extern int printf(const char * , ...);
2423 extern const char * __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char * string, const char * stringAndContext);
2425 extern char * __ecereNameSpace__ecere__sys__GetExtension(const char * string, char * output);
2427 extern void SetDefines(struct __ecereNameSpace__ecere__sys__OldList * list);
2429 extern void SetImports(struct __ecereNameSpace__ecere__sys__OldList * list);
2431 extern void SetGlobalData(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace);
2433 extern void SetExcludedSymbols(struct __ecereNameSpace__ecere__sys__OldList * list);
2435 extern void SetGlobalContext(struct Context * context);
2437 extern void SetTopContext(struct Context * context);
2439 extern void SetCurrentContext(struct Context * context);
2441 extern void SetTargetPlatform(int platform);
2443 extern void SetTargetBits(int bits);
2445 extern void SetInSymbolGen(unsigned int b);
2447 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[]);
2449 extern void SetPrivateModule(struct __ecereNameSpace__ecere__com__Instance * module);
2451 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
2453 struct __ecereNameSpace__ecere__com__IteratorPointer;
2455 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MapIterator;
2457 struct __ecereNameSpace__ecere__com__MapIterator
2459 struct __ecereNameSpace__ecere__com__Instance * container;
2460 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
2461 } __attribute__ ((gcc_struct));
2463 extern int __ecereNameSpace__ecere__sys__Tokenize(char * string, int maxTokens, char * tokens[], unsigned int esc);
2465 extern int strcasecmp(const char * , const char * );
2467 extern unsigned int LoadSymbols(const char * fileName, int importType, unsigned int loadDllOnly);
2469 extern void CheckDataRedefinitions(void);
2471 extern char * __ecereNameSpace__ecere__sys__ChangeExtension(const char * string, const char * ext, char * output);
2473 extern char * strstr(const char * , const char * );
2475 extern size_t strlen(const char * );
2477 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ContextStringPair;
2479 struct ContextStringPair
2483 } __attribute__ ((gcc_struct));
2485 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Iterator;
2487 struct __ecereNameSpace__ecere__com__Iterator
2489 struct __ecereNameSpace__ecere__com__Instance * container;
2490 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
2491 } __attribute__ ((gcc_struct));
2493 extern void ComputeModuleClasses(struct __ecereNameSpace__ecere__com__Instance * module);
2495 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, const char * addedPath);
2497 extern void FreeContext(struct Context * context);
2499 extern void FreeExcludedSymbols(struct __ecereNameSpace__ecere__sys__OldList * excludedSymbols);
2501 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Definition;
2505 extern void FreeModuleDefine(struct Definition * def);
2507 extern void FreeModuleImport(struct ModuleImport * imp);
2509 extern void FreeTypeData(struct __ecereNameSpace__ecere__com__Instance * privateModule);
2511 extern void FreeIncludeFiles(void);
2513 extern void FreeGlobalData(struct __ecereNameSpace__ecere__com__NameSpace * globalDataList);
2515 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map_TPL_ContextStringPair__ecere__com__List_TPL_String___;
2517 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__List_TPL_String_;
2519 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
2521 struct __ecereNameSpace__ecere__com__Application
2524 const char * * argv;
2526 unsigned int isGUIApp;
2527 struct __ecereNameSpace__ecere__sys__OldList allModules;
2528 char * parsedCommand;
2529 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
2530 } __attribute__ ((gcc_struct));
2532 const char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this);
2534 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(const char * value);
2536 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_;
2538 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
2540 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_map(struct __ecereNameSpace__ecere__com__MapIterator * this);
2542 void __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(struct __ecereNameSpace__ecere__com__MapIterator * this, struct __ecereNameSpace__ecere__com__Instance * value);
2544 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__MapIterator_map;
2546 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Add;
2548 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__List;
2550 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(struct __ecereNameSpace__ecere__com__Iterator * this, const uint64 index, unsigned int create);
2552 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
2554 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
2556 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__Iterator_data;
2558 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next();
2560 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll;
2562 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Free;
2564 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree;
2566 struct __ecereNameSpace__ecere__com__CustomAVLTree
2568 struct __ecereNameSpace__ecere__com__AVLNode * root;
2570 } __attribute__ ((gcc_struct));
2572 const uint64 __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_key(struct __ecereNameSpace__ecere__com__MapIterator * this);
2574 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__MapIterator_key;
2576 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map;
2578 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
2580 void __ecereMethod_SymbolgenApp_Main(struct __ecereNameSpace__ecere__com__Instance * this)
2583 unsigned int valid = 1;
2584 const char * output = (((void *)0));
2587 disabledPooling = 0;
2588 targetPlatform = __runtimePlatform;
2589 targetBits = GetHostBits();
2590 for(c = 1; c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc; c++)
2592 const char * arg = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c];
2596 if(!strcmp(arg + 1, "m32") || !strcmp(arg + 1, "m64"))
2598 targetBits = !strcmp(arg + 1, "m32") ? 32 : 64;
2600 else if(!strcmp(arg + 1, "t32") || !strcmp(arg + 1, "t64"))
2602 targetBits = !strcmp(arg + 1, "t32") ? 32 : 64;
2604 else if(!strcmp(arg + 1, "o"))
2606 if(!output && c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc)
2608 output = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c + 1];
2614 else if(!strcmp(arg, "-name"))
2616 if(c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc)
2618 strcpy(projectName, ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c + 1]);
2624 else if(!strcmp(arg, "-t"))
2626 if(++c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc)
2627 targetPlatform = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c]);
2631 else if(!strcmp(arg, "-outputpot"))
2633 else if(!strcmp(arg, "-disabled-pooling"))
2634 disabledPooling = 1;
2635 else if(!strcmp(arg, "-console"))
2637 else if(!strcmp(arg, "-dynamiclib"))
2638 isDynamicLibrary = 1;
2639 else if(!strcmp(arg, "-staticlib"))
2641 isDynamicLibrary = 1;
2642 isStaticLibrary = 1;
2644 else if(!strcmp(arg, "-symbols"))
2646 if(c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc)
2648 SetSymbolsDir(((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c + 1]);
2660 printf(__ecereNameSpace__ecere__GetTranslatedString("ecs", "Syntax:\n ecs [-t <target platform>] <input>[, <input>]* -o <output>\n", (((void *)0))));
2666 char symbolModule[274];
2668 __ecereNameSpace__ecere__sys__GetExtension(output, ext);
2669 __ecereNameSpace__ecere__sys__GetLastDirectory(output, symbolModule);
2670 SetDefines(&_defines);
2671 SetImports(&_imports);
2672 SetGlobalData(&globalData);
2673 SetExcludedSymbols(&_excludedSymbols);
2674 SetGlobalContext(theGlobalContext);
2675 SetTopContext(theGlobalContext);
2676 SetCurrentContext(theGlobalContext);
2677 SetTargetPlatform(targetPlatform);
2678 SetTargetBits(targetBits);
2680 privateModule = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com____ecere_COM_Initialize((unsigned int)(1 | (targetBits == sizeof(uintptr_t) * 8 ? (unsigned int)0 : targetBits == 64 ? 2 : targetBits == 32 ? 4 : (unsigned int)0) | 8), 1, (((void *)0)));
2681 SetPrivateModule(privateModule);
2682 mainModule = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleImport);
2683 SetMainModule(mainModule);
2684 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_imports, mainModule);
2686 struct __ecereNameSpace__ecere__com__Instance * intlStrings = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_ContextStringPair__ecere__com__List_TPL_String___);
2687 struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, intlStrings), it);
2689 for(c = 1; c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc; c++)
2691 const char * file = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c];
2692 struct __ecereNameSpace__ecere__com__Instance * f = (((void *)0));
2699 if(!strcmp(file, "-c"))
2702 else if(file[0] == '@')
2703 f = __ecereNameSpace__ecere__sys__FileOpen(&file[1], 1);
2707 tokens[0] = (char *)file;
2715 while(!count && __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
2716 count = __ecereNameSpace__ecere__sys__Tokenize(line, sizeof (tokens) / sizeof (tokens[0]), tokens, 2);
2718 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
2720 for(c = 0; c < count; c++)
2725 __ecereNameSpace__ecere__sys__GetExtension(file, ext);
2726 if(!strcmp(ext, "imp"))
2732 for(c = 1; c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc; c++)
2734 const char * file = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c];
2738 if(!strcmp(file, "-c"))
2742 for(c = 1; c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argc; c++)
2744 const char * file = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + structSize_Module)))->argv[c];
2745 struct __ecereNameSpace__ecere__com__Instance * f = (((void *)0));
2752 if(!strcmp(file, "-c"))
2755 else if(file[0] == '@')
2756 f = __ecereNameSpace__ecere__sys__FileOpen(&file[1], 1);
2760 tokens[0] = (char *)file;
2768 while(!count && __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
2769 count = __ecereNameSpace__ecere__sys__Tokenize(line, sizeof (tokens) / sizeof (tokens[0]), tokens, 2);
2771 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
2773 for(c = 0; c < count; c++)
2776 char moduleName[797];
2779 __ecereNameSpace__ecere__sys__GetExtension(file, ext);
2780 __ecereNameSpace__ecere__sys__GetLastDirectory(file, moduleName);
2781 __ecereNameSpace__ecere__sys__StripExtension(moduleName);
2782 strcat(moduleName, ".ec");
2783 if(((__ecereNameSpace__ecere__com__GetRuntimePlatform() == 1) ? (strcasecmp) : strcmp)(moduleName, symbolModule) && (!strcmp(ext, "sym") || !strcmp(ext, "ec")))
2785 struct ImportedModule * importedModule;
2786 struct ModuleInfo * module = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleInfo);
2789 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&modules, module);
2790 __ecereNameSpace__ecere__sys__GetLastDirectory(file, fileName);
2791 module->name = __ecereNameSpace__ecere__sys__CopyString(fileName);
2792 __ecereNameSpace__ecere__sys__StripExtension(module->name);
2793 for(importedModule = _defines.first; importedModule; importedModule = importedModule->next)
2795 if(importedModule->type == 0 && !(strcasecmp)(importedModule->name, module->name) && !(importedModule->importType == 2))
2799 module->globalInstance = importedModule->globalInstance;
2802 importedModule = __extension__ ({
2803 struct ImportedModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ImportedModule);
2805 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(module->name), __ecereInstance1->type = 0, __ecereInstance1->importType = 0, __ecereInstance1;
2807 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_defines, importedModule);
2808 module->globalInstance = LoadSymbols(file, 0, 0);
2809 CheckDataRedefinitions();
2812 struct __ecereNameSpace__ecere__com__Instance * f;
2814 __ecereNameSpace__ecere__sys__ChangeExtension(file, "bowl", fileName);
2815 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
2818 static char line[65536];
2819 struct __ecereNameSpace__ecere__com__Instance * comments = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__List_TPL_String_);
2820 char * msgid = (((void *)0)), * msgstr = (((void *)0)), * msgctxt = (((void *)0));
2822 while(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
2823 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2825 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2826 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(f))
2828 if(__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
2832 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
2835 ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
2836 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = comments;
2838 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2839 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add])(comments, (uint64)(__ecereNameSpace__ecere__sys__CopyString(line)));
2841 else if(strstr(line, "msgid \"") == line)
2843 (__ecereNameSpace__ecere__com__eSystem_Delete(msgid), msgid = 0);
2844 msgid = __ecereNameSpace__ecere__sys__CopyString(line + 7);
2845 len = strlen(msgid);
2847 msgid[len - 1] = (unsigned char)0;
2849 else if(strstr(line, "msgctxt \"") == line)
2851 (__ecereNameSpace__ecere__com__eSystem_Delete(msgctxt), msgctxt = 0);
2852 msgctxt = __ecereNameSpace__ecere__sys__CopyString(line + 9);
2853 len = strlen(msgctxt);
2855 msgctxt[len - 1] = (unsigned char)0;
2857 else if(strstr(line, "msgstr \"") == line)
2859 (__ecereNameSpace__ecere__com__eSystem_Delete(msgstr), msgstr = 0);
2860 msgstr = __ecereNameSpace__ecere__sys__CopyString(line + 8);
2861 len = strlen(msgstr);
2863 msgstr[len - 1] = (unsigned char)0;
2867 struct ContextStringPair pair =
2873 if(!__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index((void *)&it, (uint64)(&pair), 0))
2875 msgid = (((void *)0));
2876 msgctxt = (((void *)0));
2878 struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
2883 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, ((uint64)(&pair)), 1);
2884 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, ((uint64)(comments)));
2886 comments = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__List_TPL_String_);
2891 struct __ecereNameSpace__ecere__com__Iterator s =
2896 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&s))
2897 ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
2898 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = ((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)&it));
2900 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2901 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add])(((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)&it)), __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&s));
2903 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
2904 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = comments;
2906 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2907 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll])(comments);
2909 (__ecereNameSpace__ecere__com__eSystem_Delete(msgid), msgid = 0);
2910 (__ecereNameSpace__ecere__com__eSystem_Delete(msgctxt), msgctxt = 0);
2911 (__ecereNameSpace__ecere__com__eSystem_Delete(msgstr), msgstr = 0);
2915 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
2916 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = comments;
2918 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2919 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free])(comments);
2920 (__ecereNameSpace__ecere__com__eInstance_DecRef(comments), comments = 0);
2921 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
2929 ComputeModuleClasses(privateModule);
2930 if(!isDynamicLibrary)
2932 thisAppClass = SearchAppClass_Module(privateModule);
2935 if(outputPot && ((struct __ecereNameSpace__ecere__com__CustomAVLTree *)(((char *)intlStrings + structSize_Instance)))->count)
2937 struct __ecereNameSpace__ecere__com__Instance * potFile;
2938 char potFileName[797];
2940 strcpy(potFileName, "locale");
2941 __ecereNameSpace__ecere__sys__PathCat(potFileName, projectName);
2942 __ecereNameSpace__ecere__sys__ChangeExtension(potFileName, "pot", potFileName);
2943 potFile = __ecereNameSpace__ecere__sys__FileOpen(potFileName, 2);
2946 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2947 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2949 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2950 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgid \"\"\n");
2951 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2952 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2954 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2955 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgstr \"\"\n");
2956 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2957 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2959 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2960 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Project-Id-Version: \\n\"\n");
2961 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2962 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2964 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2965 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"POT-Creation-Date: \\n\"\n");
2966 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2967 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2969 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2970 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"PO-Revision-Date: \\n\"\n");
2971 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2972 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2974 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2975 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Last-Translator: \\n\"\n");
2976 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2977 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2979 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2980 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Language-Team: \\n\"\n");
2981 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2982 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2984 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2985 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"MIME-Version: 1.0\\n\"\n");
2986 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2987 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2989 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2990 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Content-Type: text/plain; charset=iso-8859-1\\n\"\n");
2991 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2992 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2994 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2995 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Content-Transfer-Encoding: 8bit\\n\"\n");
2996 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2997 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2999 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3000 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"X-Poedit-Basepath: ../\\n\"\n");
3001 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3002 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3004 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3005 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\n");
3007 struct __ecereNameSpace__ecere__com__MapIterator i = (i.container = (void *)0, i.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&i, (intlStrings)), i);
3009 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next((void *)&i))
3011 struct ContextStringPair pair = (*(struct ContextStringPair *)__ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_key(&i));
3012 struct __ecereNameSpace__ecere__com__Instance * comments = ((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)&i));
3015 struct __ecereNameSpace__ecere__com__Iterator s =
3020 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&s))
3022 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(potFile, ((char * )(__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&s))));
3023 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3024 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3026 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3027 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\n");
3032 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3033 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3035 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3036 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgctxt \"");
3037 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3038 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3040 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3041 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, pair.context);
3042 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3043 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3045 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3046 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"\n");
3048 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3049 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3051 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3052 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgid \"");
3053 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3054 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3056 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3057 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, pair.string);
3058 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3059 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3061 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3062 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"\n");
3063 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3064 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3066 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3067 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgstr \"");
3068 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3069 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3071 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3072 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, pair.string);
3073 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3074 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3076 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3077 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"\n");
3078 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3079 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3081 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3082 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\n");
3085 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
3086 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = intlStrings;
3088 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Map->_vTbl;
3089 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free])(intlStrings);
3090 (__ecereNameSpace__ecere__com__eInstance_DecRef(intlStrings), intlStrings = 0);
3091 (__ecereNameSpace__ecere__com__eInstance_DecRef(potFile), potFile = 0);
3095 FreeContext(theGlobalContext);
3096 FreeExcludedSymbols(&_excludedSymbols);
3097 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_defines, FreeModuleDefine);
3098 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_imports, FreeModuleImport);
3099 FreeTypeData(privateModule);
3101 FreeGlobalData(&globalData);
3102 (__ecereNameSpace__ecere__com__eInstance_DecRef(privateModule), privateModule = 0);
3104 SetSymbolsDir((((void *)0)));
3107 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, const char * name, const char * baseName, int size, int sizeClass, unsigned int (* Constructor)(void * ), void (* Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
3109 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
3111 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, const char * type, void * function, int declMode);
3113 void __ecereRegisterModule_ecs(struct __ecereNameSpace__ecere__com__Instance * module)
3115 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
3117 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ModuleInfo", 0, sizeof(struct ModuleInfo), 0, 0, 0, module, 2, 1);
3118 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
3119 __ecereClass_ModuleInfo = class;
3120 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "SymbolgenApp", "ecere::com::Application", 0, 0, 0, 0, module, 2, 1);
3121 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
3122 __ecereClass_SymbolgenApp = class;
3123 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Main", 0, __ecereMethod_SymbolgenApp_Main, 1);
3126 void __ecereUnregisterModule_ecs(struct __ecereNameSpace__ecere__com__Instance * module)
3131 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, const char * a, const char * b);
3133 void __ecereCreateModuleInstances_ecs()
3135 (globalData.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, globalData.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, globalData.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, globalData.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString);
3136 theGlobalContext = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
3139 void __ecereDestroyModuleInstances_ecs()
3141 ((theGlobalContext ? (__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)theGlobalContext) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(theGlobalContext)) : 0), theGlobalContext = 0);