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 static unsigned int i18n;
43 static unsigned int outputPot;
45 static unsigned int disabledPooling;
47 static int targetPlatform;
49 static int targetBits;
51 static unsigned int isConsole;
53 static unsigned int isDynamicLibrary;
55 static unsigned int isStaticLibrary;
57 static struct Context * theGlobalContext;
59 static char mainModuleName[797];
61 static char projectName[797];
63 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
65 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
67 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_;
69 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__MapIterator_map;
71 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Iterator_data;
73 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__MapIterator_key;
75 struct __ecereNameSpace__ecere__sys__OldList
82 } __attribute__ ((gcc_struct));
84 struct __ecereNameSpace__ecere__com__DataValue
99 } __attribute__ ((gcc_struct)) __anon1;
100 } __attribute__ ((gcc_struct));
102 struct __ecereNameSpace__ecere__com__SerialBuffer
104 unsigned char * _buffer;
108 } __attribute__ ((gcc_struct));
110 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
112 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
114 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
116 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
118 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
128 } __attribute__ ((gcc_struct));
134 extern char * __ecereNameSpace__ecere__sys__TrimLSpaces(const char * string, char * output);
136 extern int strcmp(const char * , const char * );
138 extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string);
140 extern char * __ecereNameSpace__ecere__sys__GetLastDirectory(const char * string, char * output);
142 extern unsigned int __ecereNameSpace__ecere__sys__StripExtension(char * string);
144 extern char * strcpy(char * , const char * );
146 extern void FixModuleName(char * moduleName);
148 extern void FullClassNameCat(char * output, const char * className, unsigned int includeTemplateParams);
150 struct TemplateParameter;
152 extern int sprintf(char * , const char * , ...);
160 extern char * strcat(char * , const char * );
162 extern int GetHostBits(void);
164 extern void SetSymbolsDir(const char * s);
166 extern int printf(const char * , ...);
168 extern const char * __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char * string, const char * stringAndContext);
170 extern char * __ecereNameSpace__ecere__sys__GetExtension(const char * string, char * output);
172 extern void SetTargetPlatform(int platform);
174 extern void SetTargetBits(int bits);
176 extern void SetInSymbolGen(unsigned int b);
178 struct __ecereNameSpace__ecere__com__IteratorPointer;
180 extern int __ecereNameSpace__ecere__sys__Tokenize(char * string, int maxTokens, char * tokens[], unsigned int esc);
182 extern int strcasecmp(const char * , const char * );
184 extern unsigned int LoadSymbols(const char * fileName, int importType, unsigned int loadDllOnly);
186 extern void CheckDataRedefinitions(void);
188 extern char * __ecereNameSpace__ecere__sys__ChangeExtension(const char * string, const char * ext, char * output);
190 extern char * strstr(const char * , const char * );
192 extern size_t strlen(const char * );
194 struct ContextStringPair
198 } __attribute__ ((gcc_struct));
200 struct __ecereNameSpace__ecere__com__CustomAVLTree
202 struct __ecereNameSpace__ecere__com__AVLNode * root;
204 } __attribute__ ((gcc_struct));
206 extern char * __ecereNameSpace__ecere__sys__PathCat(char * string, const char * addedPath);
210 extern void FreeIncludeFiles(void);
212 const char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this);
214 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(const char * value);
216 static struct __ecereNameSpace__ecere__sys__OldList modules;
218 struct __ecereNameSpace__ecere__sys__OldList _defines =
223 struct __ecereNameSpace__ecere__sys__OldList _imports =
228 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
230 extern void SetDefines(struct __ecereNameSpace__ecere__sys__OldList * list);
232 extern void SetImports(struct __ecereNameSpace__ecere__sys__OldList * list);
234 extern void SetExcludedSymbols(struct __ecereNameSpace__ecere__sys__OldList * list);
236 extern void FreeExcludedSymbols(struct __ecereNameSpace__ecere__sys__OldList * excludedSymbols);
238 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
240 void * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(struct __ecereNameSpace__ecere__sys__OldList * this, const char * name, unsigned int warn);
242 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
244 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
248 struct CodePosition start;
249 struct CodePosition end;
250 } __attribute__ ((gcc_struct));
252 extern void FinishTemplatesContext(struct Context * context);
254 extern void SetGlobalContext(struct Context * context);
256 extern void SetTopContext(struct Context * context);
258 extern void SetCurrentContext(struct Context * context);
260 extern void FreeContext(struct Context * context);
262 extern struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
264 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
266 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
268 extern struct Identifier * MkIdentifier(const char * string);
270 extern void FreeModuleDefine(struct Definition * def);
274 static struct ModuleImport * mainModule;
276 extern struct ModuleImport * GetMainModule(void);
278 extern void SetMainModule(struct ModuleImport * moduleImport);
282 struct ModuleImport * prev;
283 struct ModuleImport * next;
285 struct __ecereNameSpace__ecere__sys__OldList classes;
286 struct __ecereNameSpace__ecere__sys__OldList functions;
289 } __attribute__ ((gcc_struct));
291 extern void FreeModuleImport(struct ModuleImport * imp);
293 struct __ecereNameSpace__ecere__com__Class;
295 struct __ecereNameSpace__ecere__com__Instance
298 struct __ecereNameSpace__ecere__com__Class * _class;
300 } __attribute__ ((gcc_struct));
302 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
304 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
306 static struct __ecereNameSpace__ecere__com__Class * thisAppClass;
308 extern struct Context * SetupTemplatesContext(struct __ecereNameSpace__ecere__com__Class * _class);
310 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
312 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
314 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
316 static struct __ecereNameSpace__ecere__com__Instance * dcomSymbols;
318 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(const char * fileName, int mode);
320 extern void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance);
322 extern void OutputTypeName(struct TypeName * type, struct __ecereNameSpace__ecere__com__Instance * f, unsigned int typeName);
324 struct __ecereNameSpace__ecere__com__MapIterator
326 struct __ecereNameSpace__ecere__com__Instance * container;
327 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
328 } __attribute__ ((gcc_struct));
330 struct __ecereNameSpace__ecere__com__Iterator
332 struct __ecereNameSpace__ecere__com__Instance * container;
333 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
334 } __attribute__ ((gcc_struct));
336 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(struct __ecereNameSpace__ecere__com__Instance * this, char * s, int max);
338 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
340 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
342 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, const char * format, ...);
344 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
346 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof;
348 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Read;
350 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write;
352 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Add;
354 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll;
356 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Free;
358 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_map(struct __ecereNameSpace__ecere__com__MapIterator * this);
360 void __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(struct __ecereNameSpace__ecere__com__MapIterator * this, struct __ecereNameSpace__ecere__com__Instance * value);
362 const uint64 __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_key(struct __ecereNameSpace__ecere__com__MapIterator * this);
364 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(struct __ecereNameSpace__ecere__com__Iterator * this, const uint64 index, unsigned int create);
366 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
368 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
370 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next();
376 struct ModuleInfo * prev, * next;
378 unsigned int globalInstance;
379 } __attribute__ ((gcc_struct));
381 struct __ecereNameSpace__ecere__sys__BTNode;
383 struct __ecereNameSpace__ecere__sys__BTNode
386 struct __ecereNameSpace__ecere__sys__BTNode * parent;
387 struct __ecereNameSpace__ecere__sys__BTNode * left;
388 struct __ecereNameSpace__ecere__sys__BTNode * right;
390 } __attribute__ ((gcc_struct));
392 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
394 struct __ecereNameSpace__ecere__com__Property;
396 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
398 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);
400 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
402 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
404 struct FunctionImport;
406 struct FunctionImport
408 struct FunctionImport * prev;
409 struct FunctionImport * next;
411 } __attribute__ ((gcc_struct));
417 struct MethodImport * prev;
418 struct MethodImport * next;
420 unsigned int isVirtual;
421 } __attribute__ ((gcc_struct));
423 struct PropertyImport;
425 struct PropertyImport
427 struct PropertyImport * prev;
428 struct PropertyImport * next;
430 unsigned int isVirtual;
433 } __attribute__ ((gcc_struct));
435 struct ImportedModule;
437 struct ImportedModule
439 struct ImportedModule * prev;
440 struct ImportedModule * next;
444 unsigned int globalInstance;
445 unsigned int dllOnly;
447 } __attribute__ ((gcc_struct));
451 struct __ecereNameSpace__ecere__com__Property
453 struct __ecereNameSpace__ecere__com__Property * prev;
454 struct __ecereNameSpace__ecere__com__Property * next;
456 unsigned int isProperty;
459 struct __ecereNameSpace__ecere__com__Class * _class;
460 const char * dataTypeString;
461 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
462 struct Type * dataType;
463 void (* Set)(void * , int);
464 int (* Get)(void * );
465 unsigned int (* IsSet)(void * );
469 unsigned int conversion;
470 unsigned int watcherOffset;
471 const char * category;
472 unsigned int compiled;
473 unsigned int selfWatchable;
474 unsigned int isWatchable;
475 } __attribute__ ((gcc_struct));
477 extern struct Type * ProcessTypeString(const char * string, unsigned int staticMethod);
479 extern void PrintTypeNoConst(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
481 extern void PrintType(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
483 struct __ecereNameSpace__ecere__com__BTNamedLink;
485 struct __ecereNameSpace__ecere__com__BTNamedLink
488 struct __ecereNameSpace__ecere__com__BTNamedLink * parent;
489 struct __ecereNameSpace__ecere__com__BTNamedLink * left;
490 struct __ecereNameSpace__ecere__com__BTNamedLink * right;
493 } __attribute__ ((gcc_struct));
495 struct __ecereNameSpace__ecere__sys__OldLink;
497 struct __ecereNameSpace__ecere__sys__OldLink
499 struct __ecereNameSpace__ecere__sys__OldLink * prev;
500 struct __ecereNameSpace__ecere__sys__OldLink * next;
502 } __attribute__ ((gcc_struct));
506 extern void DeclareClass(struct External * neededFor, struct Symbol * classSym, const char * className);
508 extern struct Symbol * FindClass(const char * name);
510 struct __ecereNameSpace__ecere__com__NameSpace;
512 extern void SetGlobalData(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace);
518 struct ClassImport * prev;
519 struct ClassImport * next;
521 struct __ecereNameSpace__ecere__sys__OldList methods;
522 struct __ecereNameSpace__ecere__sys__OldList properties;
525 } __attribute__ ((gcc_struct));
527 struct __ecereNameSpace__ecere__com__Method;
529 struct __ecereNameSpace__ecere__com__Method
532 struct __ecereNameSpace__ecere__com__Method * parent;
533 struct __ecereNameSpace__ecere__com__Method * left;
534 struct __ecereNameSpace__ecere__com__Method * right;
539 struct __ecereNameSpace__ecere__com__Class * _class;
541 const char * dataTypeString;
542 struct Type * dataType;
544 } __attribute__ ((gcc_struct));
549 struct Symbol * parent;
550 struct Symbol * left;
551 struct Symbol * right;
556 struct __ecereNameSpace__ecere__com__Method * method;
557 struct __ecereNameSpace__ecere__com__Property * _property;
558 struct __ecereNameSpace__ecere__com__Class * registered;
559 } __attribute__ ((gcc_struct)) __anon1;
560 unsigned int notYetDeclared;
565 struct External * pointerExternal;
566 struct External * structExternal;
567 } __attribute__ ((gcc_struct)) __anon1;
570 struct External * externalGet;
571 struct External * externalSet;
572 struct External * externalPtr;
573 struct External * externalIsSet;
574 } __attribute__ ((gcc_struct)) __anon2;
577 struct External * methodExternal;
578 struct External * methodCodeExternal;
579 } __attribute__ ((gcc_struct)) __anon3;
580 } __attribute__ ((gcc_struct)) __anon2;
581 unsigned int imported;
582 unsigned int declaredStructSym;
583 struct __ecereNameSpace__ecere__com__Class * _class;
584 unsigned int declaredStruct;
585 unsigned int needConstructor;
586 unsigned int needDestructor;
587 char * constructorName;
590 char * destructorName;
591 struct ModuleImport * module;
592 struct ClassImport * _import;
593 struct Location nameLoc;
594 unsigned int isParam;
595 unsigned int isRemote;
596 unsigned int isStruct;
597 unsigned int fireWatchersDone;
599 unsigned int classData;
600 unsigned int isStatic;
602 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
603 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
604 struct Context * ctx;
606 struct Expression * propCategory;
607 unsigned int mustRegister;
608 } __attribute__ ((gcc_struct));
617 struct Symbol * _class;
620 struct __ecereNameSpace__ecere__sys__OldList members;
622 } __attribute__ ((gcc_struct)) __anon1;
625 struct Type * returnType;
626 struct __ecereNameSpace__ecere__sys__OldList params;
627 struct Symbol * thisClass;
628 unsigned int staticMethod;
629 struct TemplateParameter * thisClassTemplate;
630 } __attribute__ ((gcc_struct)) __anon2;
633 struct __ecereNameSpace__ecere__com__Method * method;
634 struct __ecereNameSpace__ecere__com__Class * methodClass;
635 struct __ecereNameSpace__ecere__com__Class * usedClass;
636 } __attribute__ ((gcc_struct)) __anon3;
639 struct Type * arrayType;
641 struct Expression * arraySizeExp;
642 unsigned int freeExp;
643 struct Symbol * enumClass;
644 } __attribute__ ((gcc_struct)) __anon4;
646 struct TemplateParameter * templateParameter;
647 } __attribute__ ((gcc_struct)) __anon1;
652 struct __ecereNameSpace__ecere__com__Class * thisClassFrom;
658 unsigned int isSigned : 1;
659 unsigned int constant : 1;
660 unsigned int truth : 1;
661 unsigned int byReference : 1;
662 unsigned int extraParam : 1;
663 unsigned int directClassAccess : 1;
664 unsigned int computing : 1;
665 unsigned int keepCast : 1;
666 unsigned int passAsTemplate : 1;
667 unsigned int dllExport : 1;
668 unsigned int attrStdcall : 1;
669 unsigned int declaredWithStruct : 1;
670 unsigned int typedByReference : 1;
671 unsigned int casted : 1;
672 unsigned int pointerAlignment : 1;
673 } __attribute__ ((gcc_struct));
675 extern void DeclareMethod(struct External * neededFor, struct __ecereNameSpace__ecere__com__Method * method, const char * name);
677 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);
679 struct __ecereNameSpace__ecere__sys__OldList _excludedSymbols =
681 0, 0, 0, (unsigned int)(uintptr_t)&((struct Symbol *)(void * )0)->left, 0
684 struct __ecereNameSpace__ecere__com__Module;
686 static struct __ecereNameSpace__ecere__com__Instance * privateModule;
688 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, const char * name);
690 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);
692 extern void SetPrivateModule(struct __ecereNameSpace__ecere__com__Instance * module);
694 extern void ComputeModuleClasses(struct __ecereNameSpace__ecere__com__Instance * module);
696 extern void FreeTypeData(struct __ecereNameSpace__ecere__com__Instance * privateModule);
698 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);
700 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
702 struct __ecereNameSpace__ecere__com__Application;
704 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[]);
706 struct __ecereNameSpace__ecere__sys__BinaryTree;
708 struct __ecereNameSpace__ecere__sys__BinaryTree
710 struct __ecereNameSpace__ecere__sys__BTNode * root;
712 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
713 void (* FreeKey)(void * key);
714 } __attribute__ ((gcc_struct));
716 struct __ecereNameSpace__ecere__com__NameSpace
719 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
720 struct __ecereNameSpace__ecere__com__NameSpace * left;
721 struct __ecereNameSpace__ecere__com__NameSpace * right;
723 struct __ecereNameSpace__ecere__com__NameSpace * parent;
724 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
725 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
726 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
727 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
728 } __attribute__ ((gcc_struct));
730 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
732 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, const char * a, const char * b);
734 struct __ecereNameSpace__ecere__com__Application
739 unsigned int isGUIApp;
740 struct __ecereNameSpace__ecere__sys__OldList allModules;
741 char * parsedCommand;
742 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
743 } __attribute__ ((gcc_struct));
745 struct __ecereNameSpace__ecere__com__Module
747 struct __ecereNameSpace__ecere__com__Instance * application;
748 struct __ecereNameSpace__ecere__sys__OldList classes;
749 struct __ecereNameSpace__ecere__sys__OldList defines;
750 struct __ecereNameSpace__ecere__sys__OldList functions;
751 struct __ecereNameSpace__ecere__sys__OldList modules;
752 struct __ecereNameSpace__ecere__com__Instance * prev;
753 struct __ecereNameSpace__ecere__com__Instance * next;
759 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
760 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
761 } __attribute__ ((gcc_struct));
763 static struct __ecereNameSpace__ecere__com__NameSpace globalData;
765 extern void FreeGlobalData(struct __ecereNameSpace__ecere__com__NameSpace * globalDataList);
767 void __ecereUnregisterModule_ecs(struct __ecereNameSpace__ecere__com__Instance * module)
772 struct __ecereNameSpace__ecere__com__DataMember;
774 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
780 const char * dataTypeString;
781 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
782 } __attribute__ ((gcc_struct)) __anon1;
783 struct __ecereNameSpace__ecere__com__DataValue expression;
786 const char * memberString;
789 struct __ecereNameSpace__ecere__com__DataMember * member;
790 struct __ecereNameSpace__ecere__com__Property * prop;
791 struct __ecereNameSpace__ecere__com__Method * method;
792 } __attribute__ ((gcc_struct)) __anon1;
793 } __attribute__ ((gcc_struct)) __anon2;
794 } __attribute__ ((gcc_struct)) __anon1;
795 } __attribute__ ((gcc_struct));
797 struct __ecereNameSpace__ecere__com__DataMember
799 struct __ecereNameSpace__ecere__com__DataMember * prev;
800 struct __ecereNameSpace__ecere__com__DataMember * next;
802 unsigned int isProperty;
805 struct __ecereNameSpace__ecere__com__Class * _class;
806 const char * dataTypeString;
807 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
808 struct Type * dataType;
812 struct __ecereNameSpace__ecere__sys__OldList members;
813 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
815 short structAlignment;
816 short pointerAlignment;
817 } __attribute__ ((gcc_struct));
819 struct __ecereNameSpace__ecere__com__Class
821 struct __ecereNameSpace__ecere__com__Class * prev;
822 struct __ecereNameSpace__ecere__com__Class * next;
828 unsigned int (* Constructor)(void * );
829 void (* Destructor)(void * );
832 struct __ecereNameSpace__ecere__com__Class * base;
833 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
834 struct __ecereNameSpace__ecere__sys__BinaryTree members;
835 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
836 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
837 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
838 struct __ecereNameSpace__ecere__sys__OldList derivatives;
842 struct __ecereNameSpace__ecere__com__Instance * module;
843 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
844 const char * dataTypeString;
845 struct Type * dataType;
847 int defaultAlignment;
848 void (* Initialize)();
850 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
851 const char * designerClass;
852 unsigned int noExpansion;
853 const char * defaultProperty;
854 unsigned int comRedefinition;
857 unsigned int internalDecl;
859 unsigned int computeSize;
860 short structAlignment;
861 short pointerAlignment;
862 int destructionWatchOffset;
864 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
865 int inheritanceAccess;
866 const char * fullName;
868 struct __ecereNameSpace__ecere__sys__OldList conversions;
869 struct __ecereNameSpace__ecere__sys__OldList templateParams;
870 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
871 struct __ecereNameSpace__ecere__com__Class * templateClass;
872 struct __ecereNameSpace__ecere__sys__OldList templatized;
874 unsigned int isInstanceClass;
875 unsigned int byValueSystemClass;
876 } __attribute__ ((gcc_struct));
878 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleInfo;
880 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_SymbolgenApp;
882 static struct __ecereNameSpace__ecere__com__Class * FindAppClass(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, unsigned int thisModule)
884 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
885 struct __ecereNameSpace__ecere__com__NameSpace * ns;
887 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)))
889 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
891 if(strcmp(_class->fullName, "ecere::com::Application") && (!thisModule || _class->module == privateModule))
893 struct __ecereNameSpace__ecere__com__Class * base;
895 for(base = _class->base; base && base->type != 1000; base = base->base)
896 if(!strcmp(base->fullName, "ecere::com::Application"))
900 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)))
902 struct __ecereNameSpace__ecere__com__Class * _class = FindAppClass(ns, thisModule);
907 return (((void *)0));
910 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
912 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MethodImport;
914 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyImport;
916 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
918 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionImport;
920 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
922 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map_TPL_ContextStringPair__ecere__com__List_TPL_String___;
924 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ImportedModule;
926 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__List_TPL_String_;
928 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
930 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
932 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
934 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
936 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__List;
938 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree;
940 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map;
942 static void LoadImports(const char * fileName)
944 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
952 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
954 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
957 if(!strcmp(line, "[Imported Modules]"))
959 struct ModuleImport * module = (((void *)0));
963 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
965 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
966 if(!strcmp(line, "."))
970 struct ClassImport * _class = (((void *)0));
971 struct FunctionImport * function = (((void *)0));
973 if(!strcmp(line, "[This]"))
975 if((mainModule = GetMainModule()))
979 mainModule = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleImport);
980 SetMainModule(mainModule);
982 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_imports, module);
985 else if(!strcmp(line, "[Static]"))
987 module->importType = 1;
989 else if(!strcmp(line, "[Remote]"))
991 module->importType = 2;
993 else if(!strcmp(line, "[Private]"))
995 if(module->importAccess != 1)
996 module->importAccess = 2;
998 else if(!strcmp(line, "[Public]"))
1000 module->importAccess = 1;
1002 else if(!strcmp(line, "[Imported Classes]"))
1006 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
1008 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
1009 if(!strcmp(line, "."))
1013 if(!strcmp(line, "[Instantiated]"))
1017 else if(!strcmp(line, "[Remote]"))
1019 _class->isRemote = 1;
1021 else if(!strcmp(line, "[Imported Methods]"))
1023 struct MethodImport * method = (((void *)0));
1027 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
1029 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
1030 if(!strcmp(line, "."))
1034 if(!(method = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_class->methods, line, 0)))
1036 method = __extension__ ({
1037 struct MethodImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_MethodImport);
1039 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
1041 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_class->methods, method);
1044 else if(!strcmp(line, "[Virtual]"))
1045 method->isVirtual = 1;
1048 else if(!strcmp(line, "[Imported Properties]"))
1050 struct PropertyImport * prop = (((void *)0));
1054 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
1056 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
1057 if(!strcmp(line, "."))
1061 if(!(prop = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_class->properties, line, 0)))
1063 prop = __extension__ ({
1064 struct PropertyImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_PropertyImport);
1066 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
1068 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_class->properties, prop);
1071 else if(!strcmp(line, "[Set]"))
1073 else if(!strcmp(line, "[Get]"))
1075 else if(!strcmp(line, "[Virtual]"))
1076 prop->isVirtual = 1;
1082 if(!(_class = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&module->classes, line, 0)))
1084 _class = __extension__ ({
1085 struct ClassImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassImport);
1087 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
1089 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&module->classes, _class);
1094 else if(!strcmp(line, "[Imported Functions]"))
1098 if(!__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
1100 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
1101 if(!strcmp(line, "."))
1108 if(!(function = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&module->functions, line, 0)))
1110 function = __extension__ ({
1111 struct FunctionImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_FunctionImport);
1113 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
1115 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&module->functions, function);
1123 if(!(module = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_imports, line, 0)))
1125 if(!strcmp(line, "ecereCOM"))
1127 module = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_imports, "ecere", 0);
1129 else if(!strcmp(line, "ecere"))
1131 module = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(&_imports, "ecereCOM", 0);
1134 (__ecereNameSpace__ecere__com__eSystem_Delete(module->name), module->name = 0);
1135 module->name = __ecereNameSpace__ecere__sys__CopyString("ecere");
1140 module = __extension__ ({
1141 struct ModuleImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleImport);
1143 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(line), __ecereInstance1;
1145 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_imports, module);
1153 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
1157 void __ecereCreateModuleInstances_ecs()
1159 (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);
1160 theGlobalContext = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1163 void __ecereDestroyModuleInstances_ecs()
1165 ((theGlobalContext ? (__ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)theGlobalContext) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(theGlobalContext)) : 0), theGlobalContext = 0);
1168 static void BindDCOMClient()
1170 struct __ecereNameSpace__ecere__com__Class * dcomClientObjectClass = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::net::DCOMClientObject");
1171 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
1173 if(dcomClientObjectClass && dcomClientObjectClass->derivatives.first)
1175 struct __ecereNameSpace__ecere__com__Instance * f;
1178 dcomSymbols = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
1180 for(deriv = dcomClientObjectClass->derivatives.first; deriv; deriv = deriv->next)
1182 struct __ecereNameSpace__ecere__com__Class * _class = deriv->data;
1183 struct __ecereNameSpace__ecere__com__Method * method, * next;
1186 unsigned int doVirtual;
1188 DeclareClass((((void *)0)), FindClass("ecere::net::DCOMClientObject"), "__ecereClass___ecereNameSpace__ecere__net__DCOMClientObject");
1189 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "class %s : ecere::net::DCOMClientObject\n", _class->fullName);
1190 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
1191 if(_class->vTblSize > _class->base->vTblSize)
1195 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " virtual void CallVirtualMethod(uint __ecereMethodID, SerialBuffer __ecereBuffer)\n");
1196 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1197 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " switch(__ecereMethodID)\n");
1198 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1199 for(vid = _class->base->vTblSize; vid < _class->vTblSize; vid++)
1201 struct __ecereNameSpace__ecere__com__Method * method;
1203 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)))
1205 if(method->type == 1 && method->_class == _class && method->vid == vid)
1210 struct Type * param;
1212 method->dataType = ProcessTypeString(method->dataTypeString, 0);
1213 if(method->dataType && method->dataType->name)
1215 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " case %d:\n", vid - _class->base->vTblSize);
1216 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1218 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1220 struct TypeName * resultType;
1221 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1222 struct Declarator * decl;
1223 char type[1024] = "";
1224 char className[1024];
1225 struct Symbol * classSym;
1227 if(method->dataType->__anon1.__anon2.returnType->kind == 8)
1228 classSym = method->dataType->__anon1.__anon2.returnType->__anon1._class;
1231 PrintTypeNoConst(method->dataType->__anon1.__anon2.returnType, type, 0, 1);
1232 classSym = FindClass(type);
1235 strcpy(className, "__ecereClass_");
1236 FullClassNameCat(className, classSym->string, 1);
1237 DeclareClass((((void *)0)), classSym, className);
1238 PrintType(method->dataType->__anon1.__anon2.returnType, type, 1, 1);
1239 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult")));
1240 resultType = MkTypeName(specs, decl);
1241 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1242 OutputTypeName(resultType, f, 0);
1243 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n");
1245 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1247 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
1249 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " char %s[1024];\n", param->name);
1250 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1251 DeclareClass((((void *)0)), FindClass("String"), "__ecereClass_String");
1255 struct TypeName * paramTypeName;
1256 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1257 struct Declarator * decl;
1258 char type[1024] = "";
1259 char className[1024];
1260 struct Symbol * classSym;
1262 if(param->kind == 8)
1263 classSym = param->__anon1._class;
1266 PrintTypeNoConst(param, type, 0, 1);
1267 classSym = FindClass(type);
1270 strcpy(className, "__ecereClass_");
1271 FullClassNameCat(className, classSym->string, 1);
1272 DeclareClass((((void *)0)), classSym, className);
1273 PrintType(param, type, 1, 1);
1274 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier(param->name)));
1275 paramTypeName = MkTypeName(specs, decl);
1276 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1277 OutputTypeName(paramTypeName, f, 0);
1278 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n");
1281 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1282 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1284 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize(");
1285 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
1287 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1288 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "(StaticString)");
1290 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1291 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1293 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1294 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, param->name);
1295 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
1297 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1298 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1299 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereResult = ");
1300 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s(", method->name);
1301 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1304 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ", ");
1305 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s", param->name);
1307 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
1308 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1310 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)
1312 if(!strcmp(param->__anon1._class->string, "String"))
1314 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1315 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize((StaticString)%s);\n", param->name);
1318 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(%s);\n", param->name);
1321 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1323 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(__ecereResult);\n");
1325 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1327 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))
1329 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete %s;\n", param->name);
1332 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))
1334 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete __ecereResult;\n");
1337 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " break;\n");
1338 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1342 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1343 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1344 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1348 vid = _class->base->vTblSize;
1349 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods);
1350 while(next && ((next->type == 1) != doVirtual || (doVirtual && next->vid != vid)))
1353 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)next));
1354 if(!next && doVirtual)
1356 if(vid == _class->vTblSize)
1361 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods);
1364 for(method = next; method; method = next)
1366 struct Type * param;
1368 if(!method->dataType)
1369 method->dataType = ProcessTypeString(method->dataTypeString, 0);
1370 if(method->dataType->name)
1372 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1377 strcpy(name, "__ecereVMethodID_");
1378 FullClassNameCat(name, method->_class->fullName, 1);
1380 strcat(name, method->name);
1381 DeclareMethod((((void *)0)), method, name);
1382 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "virtual ");
1384 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s\n", method->dataTypeString);
1385 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1386 if(method->dataType)
1388 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1390 struct TypeName * resultType;
1391 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1392 struct Declarator * decl;
1393 char type[1024] = "";
1394 char className[1024];
1395 struct Symbol * classSym;
1397 if(method->dataType->__anon1.__anon2.returnType->kind == 8)
1398 classSym = method->dataType->__anon1.__anon2.returnType->__anon1._class;
1401 PrintTypeNoConst(method->dataType->__anon1.__anon2.returnType, type, 0, 1);
1402 classSym = FindClass(type);
1405 strcpy(className, "__ecereClass_");
1406 FullClassNameCat(className, classSym->string, 1);
1407 DeclareClass((((void *)0)), classSym, className);
1408 PrintType(method->dataType->__anon1.__anon2.returnType, type, 1, 1);
1409 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult")));
1410 resultType = MkTypeName(specs, decl);
1411 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1412 OutputTypeName(resultType, f, 0);
1413 if(method->dataType->__anon1.__anon2.returnType->kind == 9)
1414 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " = { 0 }");
1415 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)
1416 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " { }");
1418 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " = 0");
1419 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n\n");
1421 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " incref this;\n");
1422 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1424 char type[1024] = "";
1425 char className[1024];
1426 struct Symbol * classSym;
1428 if(param->kind == 8)
1429 classSym = param->__anon1._class;
1432 PrintTypeNoConst(param, type, 0, 1);
1433 classSym = FindClass(type);
1436 strcpy(className, "__ecereClass_");
1437 FullClassNameCat(className, classSym->string, 1);
1438 DeclareClass((((void *)0)), classSym, className);
1439 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
1441 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1442 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize((StaticString)%s);\n", param->name);
1445 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(%s);\n", param->name);
1447 DeclareMethod((((void *)0)), __ecereNameSpace__ecere__com__eClass_FindMethod(__ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::net::DCOMClientObject"), "CallMethod", privateModule), "__ecereMethod___ecereNameSpace__ecere__net__DCOMClientObject_CallMethod");
1448 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(DCOMClientObject::CallMethod(%d))\n", id++);
1449 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1450 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1452 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)
1454 if(!strcmp(param->__anon1._class->string, "String"))
1456 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1457 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize((StaticString)%s);\n", param->name);
1460 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize(%s);\n", param->name);
1463 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1465 if(method->dataType->__anon1.__anon2.returnType->kind == 8 && !strcmp(method->dataType->__anon1.__anon2.returnType->__anon1._class->string, "String"))
1467 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1468 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize((StaticString)__ecereResult);\n");
1471 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize(__ecereResult);\n");
1473 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1474 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Free();\n");
1475 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete this;\n");
1476 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1478 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " return __ecereResult;\n");
1481 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1483 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
1484 while(next && ((next->type == 1) != doVirtual || (doVirtual && next->vid != vid)))
1487 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)next));
1488 if(!next && doVirtual)
1490 if(vid == _class->vTblSize)
1495 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods);
1499 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1501 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
1503 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1508 static void BindDCOMServer()
1510 unsigned int mutexDeclared = 0;
1511 struct __ecereNameSpace__ecere__com__Class * _class;
1513 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)privateModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->classes.first; _class; _class = _class->next)
1515 if(_class->isRemote == 3)
1520 struct __ecereNameSpace__ecere__com__Instance * f;
1523 dcomSymbols = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
1525 DeclareClass((((void *)0)), FindClass("ecere::net::DCOMServerObject"), "__ecereClass___ecereNameSpace__ecere__net__DCOMServerObject");
1526 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)privateModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->classes.first; _class; _class = _class->next)
1528 if(_class->isRemote == 3)
1530 struct __ecereNameSpace__ecere__com__Method * method;
1534 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "class DCOM%s : ecere::net::DCOMServerObject\n", _class->fullName);
1535 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "{\n");
1536 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " virtual void CallMethod(uint __ecereMethodID, SerialBuffer __ecereBuffer)\n");
1537 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1538 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " %s inst = (%s)instance;\n", _class->fullName, _class->fullName);
1539 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " incref inst;\n");
1540 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " switch(__ecereMethodID)\n");
1541 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1542 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)))
1544 struct Type * param;
1546 method->dataType = ProcessTypeString(method->dataTypeString, 0);
1547 if(method->dataType && method->dataType->name)
1549 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " case %d:\n", id++);
1550 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1552 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1554 struct TypeName * resultType;
1555 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1556 struct Declarator * decl;
1557 char type[1024] = "";
1558 char className[1024];
1559 struct Symbol * classSym;
1561 if(method->dataType->__anon1.__anon2.returnType->kind == 8)
1562 classSym = method->dataType->__anon1.__anon2.returnType->__anon1._class;
1565 PrintTypeNoConst(method->dataType->__anon1.__anon2.returnType, type, 0, 1);
1566 classSym = FindClass(type);
1569 strcpy(className, "__ecereClass_");
1570 FullClassNameCat(className, classSym->string, 1);
1571 DeclareClass((((void *)0)), classSym, className);
1572 PrintType(method->dataType->__anon1.__anon2.returnType, type, 1, 1);
1573 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult")));
1574 resultType = MkTypeName(specs, decl);
1575 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1576 OutputTypeName(resultType, f, 0);
1577 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n");
1579 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1581 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
1583 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " char %s[1024];\n", param->name);
1584 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1585 DeclareClass((((void *)0)), FindClass("String"), "__ecereClass_String");
1589 struct TypeName * paramTypeName;
1590 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1591 struct Declarator * decl;
1592 char type[1024] = "";
1593 char className[1024];
1594 struct Symbol * classSym;
1596 if(param->kind == 8)
1597 classSym = param->__anon1._class;
1600 PrintTypeNoConst(param, type, 0, 1);
1601 classSym = FindClass(type);
1604 strcpy(className, "__ecereClass_");
1605 FullClassNameCat(className, classSym->string, 1);
1606 DeclareClass((((void *)0)), classSym, className);
1607 PrintType(param, type, 1, 1);
1608 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier(param->name)));
1609 paramTypeName = MkTypeName(specs, decl);
1610 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1611 OutputTypeName(paramTypeName, f, 0);
1612 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n");
1615 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1616 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1618 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Unserialize(");
1619 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
1621 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1622 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "(StaticString)");
1624 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1625 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1627 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1628 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, param->name);
1629 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
1631 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1632 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1633 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "__ecereResult = ");
1634 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "((%s)instance).%s(", _class->fullName, method->name);
1635 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1638 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ", ");
1639 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s", param->name);
1641 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
1642 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1644 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)
1646 if(!strcmp(param->__anon1._class->string, "String"))
1648 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1649 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize((StaticString)%s);\n", param->name);
1652 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(%s);\n", param->name);
1655 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1657 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereBuffer.Serialize(__ecereResult);\n");
1659 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1661 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))
1663 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete %s;\n", param->name);
1666 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))
1668 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete __ecereResult;\n");
1671 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " break;\n");
1672 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1675 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1676 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete inst;\n");
1677 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1678 for(vid = _class->base->vTblSize; vid < _class->vTblSize; vid++)
1680 struct __ecereNameSpace__ecere__com__Method * method;
1681 struct Type * param;
1683 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)))
1684 if(method->type == 1 && method->_class == _class && method->vid == vid)
1690 DeclareClass((((void *)0)), FindClass("ecere::sys::Mutex"), "__ecereClass___ecereNameSpace__ecere__sys__Mutex");
1691 DeclareMethod((((void *)0)), __ecereNameSpace__ecere__com__eClass_FindMethod(__ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::sys::Mutex"), "Wait", privateModule), "__ecereMethod___ecereNameSpace__ecere__sys__Mutex_Wait");
1692 DeclareMethod((((void *)0)), __ecereNameSpace__ecere__com__eClass_FindMethod(__ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::sys::Mutex"), "Release", privateModule), "__ecereMethod___ecereNameSpace__ecere__sys__Mutex_Release");
1695 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
1696 if(!method->dataType)
1697 method->dataType = ProcessTypeString(method->dataTypeString, 0);
1698 if(method->dataType->name)
1700 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " virtual %s\n", method->dataTypeString);
1701 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1702 if(method->dataType)
1704 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " DCOM%s __ecereObject = (void *)_vTbl[-1];\n", _class->fullName);
1705 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1707 struct TypeName * resultType;
1708 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1709 struct Declarator * decl;
1710 char type[1024] = "";
1711 char className[1024];
1712 struct Symbol * classSym;
1714 if(method->dataType->__anon1.__anon2.returnType->kind == 8)
1715 classSym = method->dataType->__anon1.__anon2.returnType->__anon1._class;
1718 PrintTypeNoConst(method->dataType->__anon1.__anon2.returnType, type, 0, 1);
1719 classSym = FindClass(type);
1722 strcpy(className, "__ecereClass_");
1723 FullClassNameCat(className, classSym->string, 1);
1724 DeclareClass((((void *)0)), classSym, className);
1725 PrintType(method->dataType->__anon1.__anon2.returnType, type, 1, 1);
1726 decl = SpecDeclFromString(type, specs, MkDeclaratorIdentifier(MkIdentifier("__ecereResult")));
1727 resultType = MkTypeName(specs, decl);
1728 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ");
1729 OutputTypeName(resultType, f, 0);
1730 if(method->dataType->__anon1.__anon2.returnType->kind == 9)
1731 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " = { 0 }");
1732 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)
1733 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " { }");
1735 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " = 0");
1736 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ";\n\n");
1738 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " incref __ecereObject;\n");
1739 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereMethod___ecereNameSpace__ecere__sys__Mutex_Wait(__ecereObject.mutex);\n");
1740 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1742 char type[1024] = "";
1743 char className[1024];
1744 struct Symbol * classSym;
1746 if(param->kind == 8)
1747 classSym = param->__anon1._class;
1750 PrintTypeNoConst(param, type, 0, 1);
1751 classSym = FindClass(type);
1754 strcpy(className, "__ecereClass_");
1755 FullClassNameCat(className, classSym->string, 1);
1756 DeclareClass((((void *)0)), classSym, className);
1757 if(param->kind == 8 && !strcmp(param->__anon1._class->string, "String"))
1759 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1760 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.argsBuffer.Serialize((StaticString)%s);\n", param->name);
1763 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.argsBuffer.Serialize(%s);\n", param->name);
1765 DeclareMethod((((void *)0)), __ecereNameSpace__ecere__com__eClass_FindMethod(__ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "ecere::net::DCOMServerObject"), "CallVirtualMethod", privateModule), "__ecereMethod___ecereNameSpace__ecere__net__DCOMServerObject_CallVirtualMethod");
1767 unsigned int hasReturnValue = method->dataType->__anon1.__anon2.returnType->kind != 0;
1771 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1773 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)
1780 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(__ecereObject.CallVirtualMethod(%d, %s))\n", vid - _class->base->vTblSize, hasReturnValue ? "true" : "false");
1782 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " {\n");
1783 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1785 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)
1787 if(!strcmp(param->__anon1._class->string, "String"))
1789 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1790 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Unserialize((StaticString)%s);\n", param->name);
1793 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Unserialize(%s);\n", param->name);
1796 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1798 if(method->dataType->__anon1.__anon2.returnType->kind == 8 && !strcmp(method->dataType->__anon1.__anon2.returnType->__anon1._class->string, "String"))
1800 DeclareClass((((void *)0)), FindClass("StaticString"), "__ecereClass_StaticString");
1801 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Unserialize((StaticString)__ecereResult);\n");
1804 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Unserialize(__ecereResult);\n");
1806 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1807 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " else\n");
1808 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ((%s)this).%s::%s(", _class->fullName, _class->fullName, method->name);
1809 for(param = method->dataType->__anon1.__anon2.params.first; param; param = param->next)
1811 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "%s", param->name);
1813 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ", ");
1815 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, ");\n");
1816 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereObject.returnBuffer.Free();\n");
1817 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereMethod___ecereNameSpace__ecere__sys__Mutex_Release(__ecereObject.mutex);\n");
1818 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " delete __ecereObject;\n");
1819 if(method->dataType->__anon1.__anon2.returnType->kind != 0)
1821 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " return __ecereResult;\n");
1824 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " }\n");
1828 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "}\n");
1834 struct __ecereNameSpace__ecere__com__GlobalFunction;
1836 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, const char * name);
1838 struct __ecereNameSpace__ecere__com__GlobalFunction
1840 struct __ecereNameSpace__ecere__com__GlobalFunction * prev;
1841 struct __ecereNameSpace__ecere__com__GlobalFunction * next;
1844 struct __ecereNameSpace__ecere__com__Instance * module;
1845 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
1846 const char * dataTypeString;
1847 struct Type * dataType;
1849 } __attribute__ ((gcc_struct));
1851 static void WriteMain(const char * fileName)
1853 struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 2);
1857 struct ModuleImport * module;
1858 struct ModuleInfo * defModule;
1859 unsigned int anyMethod = 0, anyProp = 0, anyFunction = 0;
1860 struct ImportedModule * importedModule;
1862 __ecereNameSpace__ecere__sys__GetLastDirectory(fileName, mainModuleName);
1863 __ecereNameSpace__ecere__sys__StripExtension(mainModuleName);
1866 strcpy(projectName, mainModuleName);
1867 __ecereNameSpace__ecere__sys__StripExtension(projectName);
1869 FixModuleName(mainModuleName);
1870 if(targetPlatform == 1 && !isConsole && !isStaticLibrary && !isDynamicLibrary)
1872 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1873 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1875 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1876 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "typedef void * HINSTANCE;\n");
1877 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1878 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1880 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1881 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "#define WINAPI __stdcall\n");
1883 for(importedModule = _defines.first; importedModule; importedModule = importedModule->next)
1885 if(importedModule->type == 0)
1887 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "import ");
1888 if(importedModule->importType == 1)
1889 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "static ", importedModule->name);
1890 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\"%s\"\n", importedModule->name);
1893 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1894 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1896 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1897 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "default:\n");
1898 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1899 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1901 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1902 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "static Module __currentModule;\n\n");
1903 if(!isStaticLibrary)
1904 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
1905 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
1907 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
1908 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "Module __thisModule;\n\n");
1912 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereRegisterModule_%s(Module module);\n\n", mainModuleName);
1913 for(module = _imports.first; module; module = module->next)
1915 struct ClassImport * _class;
1916 struct FunctionImport * function;
1918 if(module->importType == 1)
1921 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "bool __ecereDll_Load_%s(Module module);\n", module->name);
1922 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "bool __ecereDll_Unload_%s(Module module);\n", module->name);
1925 for(_class = module->classes.first; _class; _class = _class->next)
1927 struct MethodImport * method;
1928 struct PropertyImport * prop;
1929 char className[1024] = "";
1930 struct __ecereNameSpace__ecere__com__Class * regClass = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, _class->name);
1932 FullClassNameCat(className, _class->name, 1);
1934 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "Class __ecereClass_%s;\n", className);
1937 for(method = _class->methods.first; method; method = method->next)
1939 struct __ecereNameSpace__ecere__com__Method * meth = __ecereNameSpace__ecere__com__eClass_FindMethod(regClass, method->name, privateModule);
1941 if(meth && !meth->dataType)
1943 struct Context * context = SetupTemplatesContext(regClass);
1945 meth->dataType = ProcessTypeString(meth->dataTypeString, 0);
1946 FinishTemplatesContext(context);
1948 if(method->isVirtual)
1949 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "int __ecereVMethodID_%s_%s;\n", className, method->name);
1950 else if((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1 && (!meth || !meth->dataType->dllExport))
1952 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "int (*__ecereMethod_%s_%s)();\n", className, method->name);
1957 for(prop = _class->properties.first; prop; prop = prop->next)
1959 char propName[1024];
1961 propName[0] = (char)0;
1962 FullClassNameCat(propName, prop->name, 1);
1963 if((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1)
1966 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void * __ecereProp_%s_Set_%s;\n", className, propName);
1968 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void * __ecereProp_%s_Get_%s;\n", className, propName);
1970 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "Property __ecereProp_%s_%s;\n", className, propName);
1975 for(function = module->functions.first; function; function = function->next)
1977 struct __ecereNameSpace__ecere__com__GlobalFunction * func = __ecereNameSpace__ecere__com__eSystem_FindFunction(privateModule, function->name);
1979 if(func && !func->dataType)
1980 func->dataType = ProcessTypeString(func->dataTypeString, 0);
1981 if(module->name && module->importType != 1 && (!func || !func->dataType || !func->dataType->dllExport))
1983 char functionName[1024];
1985 functionName[0] = (char)0;
1986 FullClassNameCat(functionName, function->name, 0);
1987 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void * __ecereFunction_%s;\n", functionName);
1992 for(defModule = modules.first; defModule; defModule = defModule->next)
1994 char moduleName[1024];
1996 strcpy(moduleName, defModule->name);
1997 FixModuleName(moduleName);
1998 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereRegisterModule_%s(Module module);\n", moduleName);
1999 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereUnregisterModule_%s(Module module);\n", moduleName);
2000 if(defModule->globalInstance)
2002 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereCreateModuleInstances_%s();\n", moduleName);
2003 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "void __ecereDestroyModuleInstances_%s();\n", moduleName);
2008 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2009 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
2010 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = dcomSymbols;
2012 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2013 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(dcomSymbols, 0, 0);
2014 while(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
2015 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = dcomSymbols;
2017 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2018 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(dcomSymbols))
2021 int read = ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void * buffer, unsigned int size, unsigned int count))__extension__ ({
2022 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = dcomSymbols;
2024 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2025 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Read])(dcomSymbols, buffer, 1, sizeof (buffer));
2029 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void * buffer, unsigned int size, unsigned int count))__extension__ ({
2030 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2032 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2033 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(f, buffer, 1, read);
2035 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2039 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\nbool __ecereDll_Load_%s(Module module)\n{\n", projectName);
2041 else if(isDynamicLibrary)
2043 if(targetPlatform == 1)
2044 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2045 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2047 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2048 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\ndllexport bool __stdcall __ecereDll_Load(Module module)\n{\n");
2050 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2051 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2053 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2054 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\ndllexport bool __ecereDll_Load(Module module)\n{\n");
2056 else if(targetPlatform == 1 && !isConsole)
2058 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2059 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2061 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2062 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\nint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, char * cmdLine, int show)\n{\n");
2065 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2066 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2068 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2069 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\nint main(int _argc, char * _argv[])\n{\n");
2070 if(!isDynamicLibrary)
2072 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2073 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2075 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2076 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " int exitCode;\n");
2077 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2078 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2080 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2081 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " Module module;\n");
2083 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2084 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2086 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2087 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __attribute__((unused)) Class _class;\n");
2089 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2090 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2092 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2093 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __attribute__((unused)) Method method;\n");
2095 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2096 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2098 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2099 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __attribute__((unused)) Property _property;\n");
2101 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2102 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2104 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2105 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __attribute__((unused)) GlobalFunction function;\n");
2106 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2107 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2109 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2110 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2113 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2114 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2116 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2117 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " eSystem_SetPoolingDisabled(true);\n");
2118 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2119 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2121 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2122 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\n");
2124 if(isDynamicLibrary)
2126 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2127 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2129 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2130 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(!__currentModule)\n");
2131 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2132 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2134 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2135 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " {\n");
2136 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2137 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2139 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2140 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __currentModule = module;\n");
2141 if(!isStaticLibrary)
2142 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2143 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2145 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2146 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __thisModule = module;\n");
2147 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2148 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2150 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2151 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }\n\n");
2153 else if(targetPlatform == 1 && !isConsole)
2154 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2155 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2157 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2158 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __thisModule = __currentModule = module = __ecere_COM_Initialize(1, 0, null);\n\n");
2160 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2161 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2163 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2164 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __thisModule = __currentModule = module = __ecere_COM_Initialize(1, _argc, (void *)_argv);\n\n");
2167 for(module = _imports.first; module; module = module->next)
2172 if(module->importType == 1)
2173 __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);
2175 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " eModule_Load(module, \"%s\", %s);\n", module->name, (module->importAccess == 2) ? "privateAccess" : "publicAccess");
2179 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2183 for(defModule = modules.first; defModule; defModule = defModule->next)
2185 char moduleName[1024];
2187 strcpy(moduleName, defModule->name);
2188 FixModuleName(moduleName);
2189 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereRegisterModule_%s(module);\n", moduleName);
2191 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2195 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereRegisterModule_%s(module);\n\n", mainModuleName);
2196 (__ecereNameSpace__ecere__com__eInstance_DecRef(dcomSymbols), dcomSymbols = 0);
2198 if(isDynamicLibrary)
2200 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2201 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2203 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2204 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__currentModule == module)\n");
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, " {\n");
2211 for(module = _imports.first; module; module = module->next)
2213 struct ClassImport * _class;
2214 struct FunctionImport * function;
2216 if(module->classes.count)
2218 for(_class = module->classes.first; _class; _class = _class->next)
2220 struct __ecereNameSpace__ecere__com__Class * regClass = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, _class->name);
2223 struct MethodImport * method;
2224 struct PropertyImport * prop;
2226 char className[1024] = "";
2228 FullClassNameCat(className, _class->name, 1);
2230 sprintf(classID, "__ecereClass_%s", className);
2232 strcpy(classID, "_class");
2233 if(isDynamicLibrary && !isStaticLibrary)
2234 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " %s = eSystem_FindClass(__currentModule, \"%s\");\n", classID, _class->name);
2236 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " %s = eSystem_FindClass(module, \"%s\");\n", classID, _class->name);
2237 for(method = _class->methods.first; method; method = method->next)
2239 struct __ecereNameSpace__ecere__com__Method * meth = __ecereNameSpace__ecere__com__eClass_FindMethod(regClass, method->name, privateModule);
2241 if(!meth || !meth->dataType->dllExport)
2243 if(method->isVirtual || ((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1))
2245 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " method = eClass_FindMethod(%s, \"%s\", module);\n", classID, method->name);
2246 if(method->isVirtual)
2247 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(method) __ecereVMethodID_%s_%s = method.vid;\n", className, method->name);
2249 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(method) __ecereMethod_%s_%s = method.function;\n", className, method->name);
2253 for(prop = _class->properties.first; prop; prop = prop->next)
2255 char propName[1024];
2257 propName[0] = (char)0;
2258 FullClassNameCat(propName, prop->name, 1);
2259 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereProp_%s_%s = _property = eClass_FindProperty(%s, \"%s\", module);\n", className, propName, classID, prop->name);
2260 if((!strcmp(_class->name, "float") || !strcmp(_class->name, "double") || module->name) && module->importType != 1)
2263 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereProp_%s_Set_%s = _property.Set;\n", className, propName);
2265 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereProp_%s_Get_%s = _property.Get;\n", className, propName);
2268 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2272 if(module->functions.count)
2274 for(function = module->functions.first; function; function = function->next)
2276 struct __ecereNameSpace__ecere__com__GlobalFunction * func = __ecereNameSpace__ecere__com__eSystem_FindFunction(privateModule, function->name);
2278 if(module->name && module->importType != 1 && (!func || !func->dataType || !func->dataType->dllExport))
2280 char functionName[1024];
2282 functionName[0] = (char)0;
2283 FullClassNameCat(functionName, function->name, 0);
2284 if(isDynamicLibrary && !isStaticLibrary)
2285 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " function = eSystem_FindFunction(__currentModule, \"%s\");\n", function->name);
2287 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " function = eSystem_FindFunction(module, \"%s\");\n", function->name);
2288 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " if(function) __ecereFunction_%s = function.function;\n", functionName);
2289 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2292 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2295 for(defModule = modules.first; defModule; defModule = defModule->next)
2296 if(defModule->globalInstance)
2298 if(!strcmp(defModule->name, "i18n"))
2299 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereCreateModuleInstances_i18n();\n");
2303 if(isDynamicLibrary)
2304 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " LoadTranslatedStrings(\"%s\", \"%s\");\n", projectName, projectName);
2306 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " LoadTranslatedStrings(null, \"%s\");\n", projectName);
2308 if(isDynamicLibrary)
2310 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2311 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2313 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2314 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }\n");
2316 if(!isDynamicLibrary && thisAppClass)
2318 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " _class = eSystem_FindClass(__currentModule, \"%s\");\n", thisAppClass->name);
2319 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " eInstance_Evolve((Instance *)&__currentModule, _class);\n");
2320 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __thisModule = __currentModule;\n");
2322 if(isDynamicLibrary)
2324 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2325 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2327 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2328 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__currentModule == module)\n");
2329 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2330 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2332 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2333 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " {\n");
2337 for(defModule = modules.first; defModule; defModule = defModule->next)
2338 if(defModule->globalInstance)
2340 char moduleName[1024];
2342 if(!strcmp(defModule->name, "i18n"))
2344 strcpy(moduleName, defModule->name);
2345 FixModuleName(moduleName);
2346 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereCreateModuleInstances_%s();\n", moduleName);
2348 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2350 if(isDynamicLibrary)
2352 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2353 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2355 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2356 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }\n");
2358 if(!isDynamicLibrary && thisAppClass)
2360 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " ((void(*)(void *))(void *)__currentModule._vTbl[12])(__currentModule);\n");
2362 if(isDynamicLibrary)
2364 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2365 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2367 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2368 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " return true;\n");
2369 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2370 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2372 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2373 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
2376 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\nbool __ecereDll_Unload_%s(Module module)\n{\n", projectName);
2380 if(targetPlatform == 1)
2381 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2382 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2384 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2385 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\ndllexport bool __stdcall __ecereDll_Unload(Module module)\n{\n");
2387 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2388 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2390 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2391 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "\ndllexport bool __ecereDll_Unload(Module module)\n{\n");
2394 if(isDynamicLibrary)
2396 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2397 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2399 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2400 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__currentModule == module)\n");
2401 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2402 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2404 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2405 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " {\n");
2408 unsigned int destroyI18n = 0;
2412 for(defModule = modules.first; defModule; defModule = defModule->next)
2413 if(defModule->globalInstance)
2415 char moduleName[1024];
2417 if(!strcmp(defModule->name, "i18n"))
2422 strcpy(moduleName, defModule->name);
2423 FixModuleName(moduleName);
2424 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereDestroyModuleInstances_%s();\n", moduleName);
2426 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2429 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " UnloadTranslatedStrings(\"%s\");\n", projectName);
2431 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereDestroyModuleInstances_i18n();\n");
2433 if(isDynamicLibrary)
2435 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2436 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2438 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2439 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " }\n");
2440 if(isDynamicLibrary)
2445 for(defModule = modules.first; defModule; defModule = defModule->next)
2447 char moduleName[1024];
2449 strcpy(moduleName, defModule->name);
2450 FixModuleName(moduleName);
2451 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, " __ecereUnregisterModule_%s(module);\n", moduleName);
2453 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "\n");
2455 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2456 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2458 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2459 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__currentModule == module)\n");
2460 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2461 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2463 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2464 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __currentModule = (void *)0;\n");
2465 if(!isStaticLibrary)
2467 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2468 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2470 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2471 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " if(__thisModule == module)\n");
2472 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2473 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2475 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2476 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " __thisModule = (void *)0;\n");
2479 if(!isDynamicLibrary)
2481 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2482 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2484 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2485 })[__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");
2488 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2489 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2491 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2492 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, " return true;\n");
2493 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2494 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2496 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2497 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, "}\n");
2498 __ecereNameSpace__ecere__com__eInstance_Delete(f);
2502 struct __ecereNameSpace__ecere__com__SubModule;
2504 struct __ecereNameSpace__ecere__com__SubModule
2506 struct __ecereNameSpace__ecere__com__SubModule * prev;
2507 struct __ecereNameSpace__ecere__com__SubModule * next;
2508 struct __ecereNameSpace__ecere__com__Instance * module;
2510 } __attribute__ ((gcc_struct));
2512 static struct __ecereNameSpace__ecere__com__Class * SearchAppClass_Module(struct __ecereNameSpace__ecere__com__Instance * module)
2514 struct __ecereNameSpace__ecere__com__Class * appClass;
2515 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2517 appClass = FindAppClass(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->publicNameSpace, 0);
2520 appClass = FindAppClass(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->privateNameSpace, 0);
2523 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->modules.first; subModule; subModule = subModule->next)
2525 appClass = SearchAppClass_Module(subModule->module);
2529 return (((void *)0));
2532 void __ecereMethod_SymbolgenApp_Main(struct __ecereNameSpace__ecere__com__Instance * this)
2535 unsigned int valid = 1;
2536 const char * output = (((void *)0));
2539 disabledPooling = 0;
2540 targetPlatform = __runtimePlatform;
2541 targetBits = GetHostBits();
2542 for(c = 1; c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc; c++)
2544 const char * arg = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argv[c];
2548 if(!strcmp(arg + 1, "m32") || !strcmp(arg + 1, "m64"))
2550 targetBits = !strcmp(arg + 1, "m32") ? 32 : 64;
2552 else if(!strcmp(arg + 1, "t32") || !strcmp(arg + 1, "t64"))
2554 targetBits = !strcmp(arg + 1, "t32") ? 32 : 64;
2556 else if(!strcmp(arg + 1, "o"))
2558 if(!output && c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc)
2560 output = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argv[c + 1];
2566 else if(!strcmp(arg, "-name"))
2568 if(c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc)
2570 strcpy(projectName, ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argv[c + 1]);
2576 else if(!strcmp(arg, "-t"))
2578 if(++c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc)
2579 targetPlatform = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argv[c]);
2583 else if(!strcmp(arg, "-outputpot"))
2585 else if(!strcmp(arg, "-disabled-pooling"))
2586 disabledPooling = 1;
2587 else if(!strcmp(arg, "-console"))
2589 else if(!strcmp(arg, "-dynamiclib"))
2590 isDynamicLibrary = 1;
2591 else if(!strcmp(arg, "-staticlib"))
2593 isDynamicLibrary = 1;
2594 isStaticLibrary = 1;
2596 else if(!strcmp(arg, "-symbols"))
2598 if(c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc)
2600 SetSymbolsDir(((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argv[c + 1]);
2612 printf("%s", __ecereNameSpace__ecere__GetTranslatedString("ecs", "Syntax:\n ecs [-t <target platform>] <input>[, <input>]* -o <output>\n", (((void *)0))));
2618 char symbolModule[274];
2620 __ecereNameSpace__ecere__sys__GetExtension(output, ext);
2621 __ecereNameSpace__ecere__sys__GetLastDirectory(output, symbolModule);
2622 SetDefines(&_defines);
2623 SetImports(&_imports);
2624 SetGlobalData(&globalData);
2625 SetExcludedSymbols(&_excludedSymbols);
2626 SetGlobalContext(theGlobalContext);
2627 SetTopContext(theGlobalContext);
2628 SetCurrentContext(theGlobalContext);
2629 SetTargetPlatform(targetPlatform);
2630 SetTargetBits(targetBits);
2632 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)));
2633 SetPrivateModule(privateModule);
2634 mainModule = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleImport);
2635 SetMainModule(mainModule);
2636 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_imports, mainModule);
2638 struct __ecereNameSpace__ecere__com__Instance * intlStrings = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_ContextStringPair__ecere__com__List_TPL_String___);
2639 struct __ecereNameSpace__ecere__com__MapIterator it = (it.container = (void *)0, it.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&it, intlStrings), it);
2641 for(c = 1; c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc; c++)
2643 const char * file = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argv[c];
2644 struct __ecereNameSpace__ecere__com__Instance * f = (((void *)0));
2651 if(!strcmp(file, "-c"))
2654 else if(file[0] == '@')
2655 f = __ecereNameSpace__ecere__sys__FileOpen(&file[1], 1);
2659 tokens[0] = (char *)file;
2667 while(!count && __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
2668 count = __ecereNameSpace__ecere__sys__Tokenize(line, sizeof (tokens) / sizeof (tokens[0]), tokens, 2);
2670 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
2672 for(c = 0; c < count; c++)
2677 __ecereNameSpace__ecere__sys__GetExtension(file, ext);
2678 if(!strcmp(ext, "imp"))
2684 for(c = 1; c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc; c++)
2686 const char * file = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argv[c];
2690 if(!strcmp(file, "-c"))
2694 for(c = 1; c < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc; c++)
2696 const char * file = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argv[c];
2697 struct __ecereNameSpace__ecere__com__Instance * f = (((void *)0));
2704 if(!strcmp(file, "-c"))
2707 else if(file[0] == '@')
2708 f = __ecereNameSpace__ecere__sys__FileOpen(&file[1], 1);
2712 tokens[0] = (char *)file;
2720 while(!count && __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
2721 count = __ecereNameSpace__ecere__sys__Tokenize(line, sizeof (tokens) / sizeof (tokens[0]), tokens, 2);
2723 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
2725 for(c = 0; c < count; c++)
2728 char moduleName[797];
2731 __ecereNameSpace__ecere__sys__GetExtension(file, ext);
2732 __ecereNameSpace__ecere__sys__GetLastDirectory(file, moduleName);
2733 __ecereNameSpace__ecere__sys__StripExtension(moduleName);
2734 strcat(moduleName, ".ec");
2735 if(((__runtimePlatform == 1) ? (strcasecmp) : strcmp)(moduleName, symbolModule) && (!strcmp(ext, "sym") || !strcmp(ext, "ec")))
2737 struct ImportedModule * importedModule;
2738 struct ModuleInfo * module = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleInfo);
2741 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&modules, module);
2742 __ecereNameSpace__ecere__sys__GetLastDirectory(file, fileName);
2743 module->name = __ecereNameSpace__ecere__sys__CopyString(fileName);
2744 __ecereNameSpace__ecere__sys__StripExtension(module->name);
2745 for(importedModule = _defines.first; importedModule; importedModule = importedModule->next)
2747 if(importedModule->type == 0 && !(strcasecmp)(importedModule->name, module->name) && !(importedModule->importType == 2))
2751 module->globalInstance = importedModule->globalInstance;
2754 importedModule = __extension__ ({
2755 struct ImportedModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ImportedModule);
2757 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(module->name), __ecereInstance1->type = 0, __ecereInstance1->importType = 0, __ecereInstance1;
2759 __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(&_defines, importedModule);
2760 module->globalInstance = LoadSymbols(file, 0, 0);
2761 CheckDataRedefinitions();
2764 struct __ecereNameSpace__ecere__com__Instance * f;
2766 __ecereNameSpace__ecere__sys__ChangeExtension(file, "bowl", fileName);
2767 f = __ecereNameSpace__ecere__sys__FileOpen(fileName, 1);
2770 static char line[65536];
2771 struct __ecereNameSpace__ecere__com__Instance * comments = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__List_TPL_String_);
2772 char * msgid = (((void *)0)), * msgstr = (((void *)0)), * msgctxt = (((void *)0));
2774 while(!((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
2775 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = f;
2777 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2778 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Eof])(f))
2780 if(__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, line, sizeof (line)))
2784 __ecereNameSpace__ecere__sys__TrimLSpaces(line, line);
2787 ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
2788 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = comments;
2790 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2791 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add])(comments, (uint64)(uintptr_t)(__ecereNameSpace__ecere__sys__CopyString(line)));
2793 else if(strstr(line, "msgid \"") == line)
2795 (__ecereNameSpace__ecere__com__eSystem_Delete(msgid), msgid = 0);
2796 msgid = __ecereNameSpace__ecere__sys__CopyString(line + 7);
2797 len = strlen(msgid);
2799 msgid[len - 1] = (unsigned char)0;
2801 else if(strstr(line, "msgctxt \"") == line)
2803 (__ecereNameSpace__ecere__com__eSystem_Delete(msgctxt), msgctxt = 0);
2804 msgctxt = __ecereNameSpace__ecere__sys__CopyString(line + 9);
2805 len = strlen(msgctxt);
2807 msgctxt[len - 1] = (unsigned char)0;
2809 else if(strstr(line, "msgstr \"") == line)
2811 (__ecereNameSpace__ecere__com__eSystem_Delete(msgstr), msgstr = 0);
2812 msgstr = __ecereNameSpace__ecere__sys__CopyString(line + 8);
2813 len = strlen(msgstr);
2815 msgstr[len - 1] = (unsigned char)0;
2819 struct ContextStringPair pair =
2825 if(!__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index((void *)(&it), (uint64)(uintptr_t)(&pair), 0))
2827 msgid = (((void *)0));
2828 msgctxt = (((void *)0));
2830 struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
2835 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, ((uint64)(uintptr_t)(&pair)), 1);
2836 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, ((uint64)((uintptr_t)(comments))));
2838 comments = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__List_TPL_String_);
2843 struct __ecereNameSpace__ecere__com__Iterator s =
2848 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&s))
2849 ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
2850 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = ((struct __ecereNameSpace__ecere__com__Instance *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)(&it)));
2852 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2853 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add])(((struct __ecereNameSpace__ecere__com__Instance *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)(&it))), __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&s));
2855 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
2856 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = comments;
2858 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2859 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_RemoveAll])(comments);
2861 (__ecereNameSpace__ecere__com__eSystem_Delete(msgid), msgid = 0);
2862 (__ecereNameSpace__ecere__com__eSystem_Delete(msgctxt), msgctxt = 0);
2863 (__ecereNameSpace__ecere__com__eSystem_Delete(msgstr), msgstr = 0);
2867 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
2868 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = comments;
2870 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2871 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free])(comments);
2872 (__ecereNameSpace__ecere__com__eInstance_DecRef(comments), comments = 0);
2873 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
2881 ComputeModuleClasses(privateModule);
2882 if(!isDynamicLibrary)
2884 thisAppClass = SearchAppClass_Module(privateModule);
2887 if(outputPot && ((struct __ecereNameSpace__ecere__com__CustomAVLTree *)(((char *)intlStrings + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->count)
2889 struct __ecereNameSpace__ecere__com__Instance * potFile;
2890 char potFileName[797];
2892 strcpy(potFileName, "locale");
2893 __ecereNameSpace__ecere__sys__PathCat(potFileName, projectName);
2894 __ecereNameSpace__ecere__sys__ChangeExtension(potFileName, "pot", potFileName);
2895 potFile = __ecereNameSpace__ecere__sys__FileOpen(potFileName, 2);
2898 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2899 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2901 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2902 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgid \"\"\n");
2903 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2904 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2906 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2907 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgstr \"\"\n");
2908 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2909 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2911 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2912 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Project-Id-Version: \\n\"\n");
2913 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2914 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2916 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2917 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"POT-Creation-Date: \\n\"\n");
2918 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2919 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2921 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2922 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"PO-Revision-Date: \\n\"\n");
2923 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2924 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2926 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2927 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Last-Translator: \\n\"\n");
2928 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2929 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2931 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2932 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Language-Team: \\n\"\n");
2933 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2934 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2936 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2937 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"MIME-Version: 1.0\\n\"\n");
2938 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2939 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2941 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2942 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Content-Type: text/plain; charset=iso-8859-1\\n\"\n");
2943 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2944 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2946 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2947 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"Content-Transfer-Encoding: 8bit\\n\"\n");
2948 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2949 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2951 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2952 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"X-Poedit-Basepath: ../\\n\"\n");
2953 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2954 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2956 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2957 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\n");
2959 struct __ecereNameSpace__ecere__com__MapIterator i = (i.container = (void *)0, i.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&i, (intlStrings)), i);
2961 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next((void *)(&i)))
2963 struct ContextStringPair pair = (*(struct ContextStringPair *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_key(&i));
2964 struct __ecereNameSpace__ecere__com__Instance * comments = ((struct __ecereNameSpace__ecere__com__Instance *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)(&i)));
2967 struct __ecereNameSpace__ecere__com__Iterator s =
2972 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&s))
2974 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(potFile, ((char * )((uintptr_t)(__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&s)))));
2975 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2976 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2978 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2979 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\n");
2984 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2985 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2987 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2988 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgctxt \"");
2989 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2990 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2992 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2993 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, pair.context);
2994 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
2995 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
2997 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
2998 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"\n");
3000 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3001 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3003 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3004 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgid \"");
3005 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3006 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3008 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3009 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, pair.string);
3010 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3011 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3013 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3014 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"\n");
3015 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3016 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3018 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3019 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "msgstr \"");
3020 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3021 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3023 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3024 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, pair.string);
3025 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3026 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3028 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3029 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\"\n");
3030 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char * string))__extension__ ({
3031 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = potFile;
3033 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
3034 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(potFile, "\n");
3037 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
3038 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = intlStrings;
3040 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Map->_vTbl;
3041 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free])(intlStrings);
3042 (__ecereNameSpace__ecere__com__eInstance_DecRef(intlStrings), intlStrings = 0);
3043 (__ecereNameSpace__ecere__com__eInstance_DecRef(potFile), potFile = 0);
3047 FreeContext(theGlobalContext);
3048 FreeExcludedSymbols(&_excludedSymbols);
3049 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_defines, (void *)(FreeModuleDefine));
3050 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_imports, (void *)(FreeModuleImport));
3051 FreeTypeData(privateModule);
3053 FreeGlobalData(&globalData);
3054 (__ecereNameSpace__ecere__com__eInstance_DecRef(privateModule), privateModule = 0);
3056 SetSymbolsDir((((void *)0)));
3059 void __ecereRegisterModule_ecs(struct __ecereNameSpace__ecere__com__Instance * module)
3061 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
3063 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ModuleInfo", 0, sizeof(struct ModuleInfo), 0, (void *)0, (void *)0, module, 2, 1);
3064 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
3065 __ecereClass_ModuleInfo = class;
3066 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "SymbolgenApp", "ecere::com::Application", 0, 0, (void *)0, (void *)0, module, 2, 1);
3067 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
3068 __ecereClass_SymbolgenApp = class;
3069 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Main", 0, __ecereMethod_SymbolgenApp_Main, 1);