1 // Preprocessor directives can be added at the beginning (Can't store them in AST)
3 /****************************************************************************
4 ===========================================================================
6 ===========================================================================
7 ****************************************************************************/
11 #define CPP11 (defined(__cplusplus) && __cplusplus >= 201103L)
22 // Syntactic Sugar (NOT GENERATED)
23 #define $(x) (constString)getTranslatedString(MODULE_NAME, x, null)
24 #define $$(x, c) (constString)getTranslatedString(MODULE_NAME, x, c)
26 #define _IPTR(x, c, s) ((struct s *)((x) ? (((char *)(x)) + c->offset) : 0))
27 #define IPTR(x, c) _IPTR(x, class_ ## c, c)
29 #define incref(x) (x)->_refCount++;
31 #define newi(c) ({ Instance i = Instance_new(c); incref(i); i; })
33 #define new(t, c) eC_new(class_ ## t->structSize * c)
35 #define newb(c) eC_new(c)
37 #define deletei(v) Instance_decref(v), v = null
39 #define delete(v) eC_delete(v), v = null
43 #define registerClass(a, n, b) \
44 eC_registerClass(normalClass, #n, #b, sizeof(struct n), 0, \
45 (void *)n ## _constructor, (void *)n ## _destructor, a, privateAccess, publicAccess)
48 #define addMethod(c, n, m) \
49 Class_addMethod(c, n, null, (void *)m, publicAccess)
51 #if defined(__WIN32__) && !defined(__CONSOLE_APP__)
52 typedef void * HINSTANCE;
53 #define WINAPI __stdcall
54 #define MAIN_DECLARATION int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, char * cmdLine, int show)
55 #define eC_init_CALL eC_init(true, 0, null)
57 #define MAIN_DECLARATION int main(int argc, char * argv[])
59 #if defined(__CONSOLE_APP__)
60 #define eC_init_CALL eC_init(false, null, null);
62 #define eC_init_CALL eC_init(true, null, null);
65 #if defined(__CONSOLE_APP__)
66 #define eC_init_CALL eC_init(false, argc, argv);
68 #define eC_init_CALL eC_init(true, argc, argv);
76 eC_Application app = eC_init_CALL;
79 int exitCode = _IPTR(app, class_Application, class_members_Application)->exitCode; \
86 #define Instance eC_Instance
87 #define Module eC_Module
88 #define Application eC_Application
89 #define Container eC_Container
90 #define Array eC_Array
91 #define CustomAVLTree eC_CustomAVLTree
92 #define AVLTree eC_AVLTree
94 #define LinkList eC_LinkList
96 #define IOChannel eC_IOChannel
97 #define SerialBuffer eC_SerialBuffer
98 #define OldArray eC_OldArray
100 #define Window eC_Window
101 #define ClassDesignerBase eC_ClassDesignerBase
102 #define DesignerBase eC_DesignerBase
104 // Structs / Unions (with methods or properties)
105 #define Iterator eC_Iterator
106 #define MapIterator eC_MapIterator
107 #define BuiltInContainer eC_BuiltInContainer
108 #define BinaryTree eC_BinaryTree
109 #define StringBinaryTree eC_StringBinaryTree
110 #define OldList eC_OldList
112 // class : struct (with methods or properties)
113 #define Class eC_Class
114 #define BTNode eC_BTNode
116 #define OldLink eC_OldLink
117 #define AVLNode eC_AVLNode
118 #define MapNode eC_MapNode
119 #define StringBTNode eC_StringBTNode
122 #if defined(__cplusplus)
125 #define null (void *)0
128 // dllimport Functions
129 #define eC_initApp __ecereNameSpace__ecere__com____ecere_COM_Initialize
130 #define eC_findClass __ecereNameSpace__ecere__com__eSystem_FindClass
131 #define eC_registerClass __ecereNameSpace__ecere__com__eSystem_RegisterClass
132 #define eC_new __ecereNameSpace__ecere__com__eSystem_New
133 #define eC_new0 __ecereNameSpace__ecere__com__eSystem_New0
134 #define eC_delete __ecereNameSpace__ecere__com__eSystem_Delete
135 #define eC_findFunction __ecereNameSpace__ecere__com__eSystem_FindFunction
137 #define Class_addMethod __ecereNameSpace__ecere__com__eClass_AddMethod
138 #define Class_findMethod __ecereNameSpace__ecere__com__eClass_FindMethod
139 #define Class_findProperty __ecereNameSpace__ecere__com__eClass_FindProperty
140 #define Class_isDerived __ecereNameSpace__ecere__com__eClass_IsDerived
142 #define Module_load __ecereNameSpace__ecere__com__eModule_Load
144 #define Instance_new __ecereNameSpace__ecere__com__eInstance_New
145 #define Instance_delete __ecereNameSpace__ecere__com__eInstance_Delete
146 #define Instance_decref __ecereNameSpace__ecere__com__eInstance_DecRef
147 #define Instance_evolve __ecereNameSpace__ecere__com__eInstance_Evolve
148 #define Instance_setMethod __ecereNameSpace__ecere__com__eInstance_SetMethod
150 #define getTranslatedString __ecereNameSpace__ecere__GetTranslatedString
151 #define loadTranslatedStrings __ecereNameSpace__ecere__LoadTranslatedStrings
152 #define unloadTranslatedStrings __ecereNameSpace__ecere__UnloadTranslatedStrings
154 // Virtual Method Calls
157 #define _onDisplay(c, i, s, x, y, w, d, a, f) ({ void (* method)(eC_Class *, void *, eC_Surface, int, int, int, void *, Alignment, DataDisplayFlags) = (void (*)(eC_Class *, void *, eC_Surface, int, int, int, void *, Alignment, DataDisplayFlags))((c) ? (c)->_vTbl : class_class->_vTbl)[onDisplay_vTblID]; \
158 method ? method((c), i, s, x, y, w, d, a, f) : 1; })
159 #define _onCompare(c, i, o) ({ int (* method)(eC_Class *, void *, void *) = (int (*)(eC_Class *, void *, void *))((c) ? (c)->_vTbl : class_class->_vTbl)[onCompare_vTblID]; \
160 method ? method((c), i, o) : 1; })
161 #define _onCopy(c, i, co, o) ({ void (* method)(eC_Class *, void *, eC_Class *, void *) = (void (*)(eC_Class *, void *, eC_Class *, void *))((c) ? (c)->_vTbl : class_class->_vTbl)[onCopy_vTblID]; \
162 method ? method((c), i, co, o) : 1; })
163 #define _onFree(c, i) ({ void (* method)(eC_Class *, void *) = (void (*)(eC_Class *, void *))((c) ? (c)->_vTbl : class_class->_vTbl)[onFree_vTblID]; \
164 method ? method((c), i) : 1; })
165 #define _onGetString(c, i, t, d, n) ({ constString (* method)(eC_Class *, void *, char *, void *, bool *) = (constString (*)(eC_Class *, void *, char *, void *, bool *))((c) ? (c)->_vTbl : class_class->_vTbl)[onGetString_vTblID]; \
166 method ? method((c), i, t, d, n) : null; })
167 #define _onGetDataFromString(c, i, s) ({ bool (* method)(eC_Class *, void *, constString) = (bool (*)(eC_Class *, void *, constString))((c) ? (c)->_vTbl : class_class->_vTbl)[onGetDataFromString_vTblID]; \
168 method ? method((c), i, s) : 1; })
169 #define _onEdit(c, i, b, o, x, y, w, h, u) ({ eC_Window (* method)(eC_Class *, void *, DataBox, DataBox, int, int, int, int, void *) = (eC_Window (*)(eC_Class *, void *, DataBox, DataBox, int, int, int, int, void *))((c) ? (c)->_vTbl : class_class->_vTbl)[onEdit_vTblID]; \
170 method ? method((c), i, b, i, x, y, w, h, u) : 1; })
171 #define _onSerialize(c, i, s) ({ void (* method)(eC_Class *, void *, eC_IOChannel) = (void (*)(eC_Class *, void *, eC_IOChannel))((c) ? (c)->_vTbl : class_class->_vTbl)[onSerialize_vTblID]; \
172 method ? method((c), i, s) : 1; })
173 #define _onUnserialize(c, i, s) ({ void (* method)(eC_Class *, void *, eC_IOChannel) = (void (*)(eC_Class *, void *, eC_IOChannel))((c) ? (c)->_vTbl : class_class->_vTbl)[onUnserialize_vTblID]; \
174 method ? method((c), i, s) : 1; })
175 #define _onSaveEdit(c, i, w, o) ({ bool (* method)(eC_Class *, void *, eC_Window, void *) = (bool (*)(eC_Class *, void *, eC_Window, void *))((c) ? (c)->_vTbl : class_class->_vTbl)[onSaveEdit_vTblID]; \
176 method ? method((c), i, w, o) : 1; })
178 // Base Virtual Methods for Normal Classes
179 #define Instance_onDisplay(c, i, s, x, y, w, d, a, f) _onDisplay(i ? i->_class : c, i, s, x, y, w, d, a, f)
180 #define Instance_onCompare(c, i, o) _onCompare(i ? i->_class : c, i, o)
181 #define Instance_onCopy(c, i, co, o) _onCopy(c, &i, co, o)
182 #define Instance_onFree(c, i) _onFree(i ? i->_class : c, i)
183 #define Instance_onGetString(c, i, t, d, n) _onGetString(i ? i->_class : c, i, t, d, n)
184 #define Instance_onGetDataFromString(c, i, s) _onGetDataFromString(c, &i, s)
185 #define Instance_onEdit(c, i, b, o, x, y, w, h, u) _onEdit(i ? i->_class : c, i, b, o, x, y, w, h, u)
186 #define Instance_onSerialize(c, i, s) _onSerialize(i ? i->_class : c, i, s)
187 #define Instance_onUnserialize(c, i, s) _onUnserialize(c, &i, s)
188 #define Instance_onSaveEdit(c, i, w, o) _onSaveEdit(c, &i, w, o)
191 #define Application_main(x) ({ eC_Application i = x; \
192 void (* method)(eC_Application) = (void (*)(eC_Application))(i ? i->_vTbl : class_Application->_vTbl)[Application_main_vTblID]; \
193 if(method) method(i); })
196 #define Container_getFirst(i) ({ void (* method)(Container) = ((i) ? (i)->_vTbl : class_Container->_vTbl)[Container_getFirst_vTblID]; \
197 return method ? method((i)) : null; })
198 #define Container_getLast(i)
199 #define Container_getPrev(i, p)
200 #define Container_getNext(i, p)
201 #define Container_getData(i, p)
202 #define Container_setData(i, p, d)
203 #define Container_getAtPosition(i, p, c, j)
204 #define Container_insert(i, a, v)
205 #define Container_add(i, v)
206 #define Container_remove(i, t)
207 #define Container_move(i, t, a)
208 #define Container_removeAll(i)
209 #define Container_copy(i, s)
210 #define Container_find(i, v)
211 #define Container_freeIterator(i, t)
212 #define Container_getCount(i)
213 #define Container_free(i)
214 #define Container_deleteItem(i, t)
215 #define Container_takeOut(i, d)
218 // class : struct forward declarations
222 struct ClassProperty;
223 struct ClassTemplateParameter;
225 struct DefinedExpression;
226 struct EnumClassData;
227 struct GlobalFunction;
244 typedef void IteratorPointer;
248 // class : struct typedefs
249 typedef struct BTNamedLink BTNamedLink;
250 typedef struct BitMember BitMember;
251 typedef struct Class Class;
252 typedef struct ClassProperty ClassProperty;
253 typedef struct ClassTemplateParameter ClassTemplateParameter;
254 typedef struct DataMember DataMember;
255 typedef struct DefinedExpression DefinedExpression;
256 typedef struct EnumClassData EnumClassData;
257 typedef struct GlobalFunction GlobalFunction;
258 typedef union ListItem ListItem;
259 typedef struct Link Link;
260 typedef struct NamedLink NamedLink;
261 typedef struct NamedLink64 NamedLink64;
262 typedef struct Method Method;
263 typedef struct AVLNode AVLNode;
264 typedef struct MapNode MapNode;
265 typedef struct Property Property;
266 typedef struct ObjectInfo ObjectInfo;
267 typedef struct SubModule SubModule;
268 typedef struct BTNode BTNode;
269 typedef struct Item Item;
270 typedef struct NamedItem NamedItem;
271 typedef struct OldLink OldLink;
272 typedef struct StringBTNode StringBTNode;
275 // Unit Class Typedefs
276 typedef uint8_t byte;
277 typedef int64_t int64;
278 typedef intptr_t intptr;
279 typedef ssize_t intsize;
280 typedef uint32_t uint;
281 typedef uint16_t uint16;
282 typedef uint32_t uint32;
283 typedef uint64_t uint64;
284 typedef uintptr_t uintptr;
285 typedef size_t uintsize;
286 typedef uint32_t unichar;
287 typedef double Angle;
289 // Normal Class Typedefs
290 struct class_members_Instance;
292 typedef struct class_members_Instance * Instance;
293 typedef Instance Module;
294 typedef Module Application;
295 typedef Instance Container;
296 typedef Container Array;
297 typedef Container CustomAVLTree;
298 typedef CustomAVLTree AVLTree;
299 typedef CustomAVLTree Map;
300 typedef Container LinkList;
301 typedef LinkList List;
302 typedef Instance IOChannel;
303 typedef IOChannel SerialBuffer;
304 typedef Instance OldArray;
306 typedef Instance Window;
307 typedef Window ClassDesignerBase;
308 typedef Window DesignerBase;
311 typedef char * String;
312 typedef const char * constString;
316 typedef void * Instantiation;
317 typedef void * ClassDefinition;
319 // Bit Class Typedefs
320 typedef uint32 Color;
321 typedef uint32 Modifiers;
324 #if defined(__cplusplus)
328 #define REDEFINE_STDBOOL
333 #if !defined(__cplusplus)
334 typedef enum ClassType ClassType;
335 typedef enum ImportType ImportType;
336 typedef enum AccessMode AccessMode;
337 typedef enum DataMemberType DataMemberType;
338 typedef enum MethodType MethodType;
339 typedef enum Platform Platform;
340 typedef enum TemplateMemberType TemplateMemberType;
341 typedef enum TemplateParameterType TemplateParameterType;
342 typedef enum TreePrintStyle TreePrintStyle;
346 typedef uint32 BackSlashEscaping;
349 // Template Types Typedefs
350 typedef uint64 Container_D;
351 typedef uint64 Container_I;
352 typedef uint64 Container_T;
354 typedef AVLNode * CustomAVLTree_BT;
355 typedef uint64 CustomAVLTree_KT;
357 typedef uint64 AVLNode_T;
358 typedef uint64 Array_T;
360 typedef void * LinkElement_T;
361 typedef void * LinkList_LT;
363 typedef uint64 MapNode_V;
366 #if !defined(__bool_true_false_are_defined) && !defined(__cplusplus)
374 enum BackSlashEscaping
378 { forArgsPassing = 2 };
380 enum Platform { unknown, win32, tux, apple };
382 enum TemplateMemberType { dataMember, method, prop };
383 enum TemplateParameterType { type, identifier, expression };
384 enum TreePrintStyle { inOrder, postOrder, preOrder, depthOrder };
396 enum MethodType { normalMethod, virtualMethod };
423 typedef union DataValue DataValue;
424 typedef struct Size Size;
425 typedef struct Point Point;
426 typedef struct Iterator Iterator;
427 typedef struct MapIterator MapIterator;
428 typedef struct BuiltInContainer BuiltInContainer;
429 typedef union ClassTemplateArgument ClassTemplateArgument;
430 typedef struct LinkElement LinkElement;
431 typedef struct NameSpace NameSpace;
432 typedef struct StaticString StaticString;
433 typedef struct BinaryTree BinaryTree;
434 typedef struct StringBinaryTree StringBinaryTree;
435 typedef struct OldList OldList;
459 struct BuiltInContainer
487 NameSpace * btParent;
492 BinaryTree nameSpaces;
495 BinaryTree functions;
501 IteratorPointer * pointer;
507 IteratorPointer * pointer;
515 union ClassTemplateArgument
520 constString dataTypeString;
521 Class * dataTypeClass;
523 DataValue expression;
527 constString memberString;
541 BTNamedLink * parent;
553 AccessMode memberAccess;
556 const char *dataTypeString;
557 Class * dataTypeClass;
574 bool (*Constructor)(void *);
575 void (*Destructor)(void *);
583 OldList membersAndProperties;
584 BinaryTree classProperties;
590 NameSpace * nameSpace;
591 const char *dataTypeString;
593 void (*Initialize)();
595 int defaultAlignment;
597 OldList selfWatchers;
598 const char *designerClass;
600 const char *defaultProperty;
601 bool comRedefinition;
607 short structAlignment;
608 short pointerAlignment;
609 int destructionWatchOffset;
611 OldList delayedCPValues;
612 AccessMode inheritanceAccess;
613 const char *fullName;
616 OldList templateParams;
617 ClassTemplateArgument * templateArgs;
618 Class * templateClass;
621 bool isInstanceClass;
622 bool byValueSystemClass;
627 ClassProperty * parent;
628 ClassProperty * left;
629 ClassProperty * right;
631 const char *dataTypeString;
635 struct ClassTemplateParameter
637 ClassTemplateParameter * prev;
638 ClassTemplateParameter * next;
640 TemplateParameterType type;
641 ClassTemplateArgument defaultArg;
655 AccessMode memberAccess;
658 const char *dataTypeString;
659 Class * dataTypeClass;
665 BinaryTree membersAlpha;
667 short structAlignment;
668 short pointerAlignment;
670 struct DefinedExpression
672 DefinedExpression * prev;
673 DefinedExpression * next;
676 NameSpace * nameSpace;
678 struct GlobalFunction
680 GlobalFunction * prev;
681 GlobalFunction * next;
685 NameSpace * nameSpace;
686 const char *dataTypeString;
693 struct { ListItem * prev, * next; };
699 struct { Link * prev, * next; };
714 const char *dataTypeString;
716 AccessMode memberAccess;
724 Instantiation instCode;
728 ClassDefinition classDefinition;
738 AccessMode memberAccess;
741 const char *dataTypeString;
742 Class * dataTypeClass;
745 void (*Set)(void *, int);
747 bool (*IsSet)(void *);
754 const char *category;
764 AccessMode importMode;
817 StringBTNode * parent;
819 StringBTNode * right;
823 // Normal Classes Visible Data Structures
824 struct class_members_Instance
832 Application application;
842 ImportType importType;
843 ImportType origImportType;
844 NameSpace privateNameSpace;
845 NameSpace publicNameSpace;
847 struct class_members_Application
855 NameSpace systemNameSpace;
857 struct class_members_Array
864 struct class_members_CustomAVLTree
866 CustomAVLTree_BT root;
869 struct class_members_DesignerBase
871 ClassDesignerBase classDesigner;
872 const char *objectClass;
876 struct class_members_LinkList
883 struct class_members_SerialBuffer
891 // C Exported functions
892 extern __attribute__((dllimport)) Application __ecereNameSpace__ecere__com____ecere_COM_Initialize(bool guiApp, int argc, char *argv[]);
894 extern __attribute__((dllimport)) Class * __ecereNameSpace__ecere__com__eSystem_FindClass(Module module, const char *name);
895 extern __attribute__((dllimport)) Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(ClassType type, const char *name, const char *baseName, int size, int sizeClass, bool (*Constructor)(void *), void (*Destructor)(void *), Module module, AccessMode declMode, AccessMode inheritanceAccess);
896 extern __attribute__((dllimport)) void * __ecereNameSpace__ecere__com__eSystem_new(uint size);
897 extern __attribute__((dllimport)) void * __ecereNameSpace__ecere__com__eSystem_new0(uint size);
898 extern __attribute__((dllimport)) void *__ecereNameSpace__ecere__com__eSystem_Renew(void *memory, uint size);
899 extern __attribute__((dllimport)) void *__ecereNameSpace__ecere__com__eSystem_Renew0(void *memory, uint size);
900 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eSystem_Delete(void *memory);
901 extern __attribute__((dllimport)) DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(Module module, const char *name);
902 extern __attribute__((dllimport)) GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(Module module, const char *name);
903 extern __attribute__((dllimport)) DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(const char *name, const char *value, Module module, AccessMode declMode);
904 extern __attribute__((dllimport)) GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(const char *name, const char *type, void *func, Module module, AccessMode declMode);
905 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eSystem_SetPoolingDisabled(bool disabled);
907 extern __attribute__((dllimport)) Module __ecereNameSpace__ecere__com__eModule_Load(Module fromModule, const char *name, AccessMode importAccess);
908 extern __attribute__((dllimport)) Module __ecereNameSpace__ecere__com__eModule_LoadStatic(Module fromModule, const char *name, AccessMode importAccess, bool __ecereNameSpace__ecere__com__Load(Module module), bool __ecereNameSpace__ecere__com__Unload(Module module));
909 extern __attribute__((dllimport)) Module __ecereNameSpace__ecere__com__eModule_LoadStrict(Module fromModule, const char *name, AccessMode importAccess);
910 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eModule_Unload(Module fromModule, Module module);
912 extern __attribute__((dllimport)) Method * __ecereNameSpace__ecere__com__eClass_AddMethod(Class * _class, constString name, constString type, void *function, AccessMode declMode);
913 extern __attribute__((dllimport)) Method * __ecereNameSpace__ecere__com__eClass_FindMethod(Class * _class, const char *name, Module module);
914 extern __attribute__((dllimport)) Property * __ecereNameSpace__ecere__com__eClass_FindProperty(Class * _class, const char *name, Module module);
915 extern __attribute__((dllimport)) BitMember * __ecereNameSpace__ecere__com__eClass_AddBitMember(Class * _class, const char *name, const char *type, int bitSize, int bitPos, AccessMode declMode);
916 extern __attribute__((dllimport)) ClassProperty * __ecereNameSpace__ecere__com__eClass_AddClassProperty(Class * _class, const char *name, const char *dataType, void *setStmt, void *getStmt);
917 extern __attribute__((dllimport)) DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(Class * _class, const char *name, const char *type, uint size, uint alignment, AccessMode declMode);
918 extern __attribute__((dllimport)) bool __ecereNameSpace__ecere__com__eClass_AddMember(Class * _class, DataMember * dataMember);
919 extern __attribute__((dllimport)) Property * __ecereNameSpace__ecere__com__eClass_AddProperty(Class * _class, const char *name, const char *dataType, void *setStmt, void *getStmt, AccessMode declMode);
920 extern __attribute__((dllimport)) ClassTemplateParameter * __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(Class * _class, const char *name, TemplateParameterType type, const void *info, ClassTemplateArgument defaultArg);
921 extern __attribute__((dllimport)) Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(Class * _class, const char *name, const char *type, void *function, AccessMode declMode);
922 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eClass_DestructionWatchable(Class * _class);
923 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(Class * base);
924 extern __attribute__((dllimport)) ClassProperty * __ecereNameSpace__ecere__com__eClass_FindClassProperty(Class * _class, const char *name);
925 extern __attribute__((dllimport)) DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMember(Class * _class, const char *name, Module module, DataMember * *subMemberStack, int *subMemberStackPos);
926 extern __attribute__((dllimport)) DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMemberAndId(Class * _class, const char *name, int *id, Module module, DataMember * *subMemberStack, int *subMemberStackPos);
927 extern __attribute__((dllimport)) DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset(Class * _class, const char *name, uint *offset, Module module, DataMember * *subMemberStack, int *subMemberStackPos);
928 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eClass_FindNextMember(Class * _class, Class * curClass, DataMember * *curMember, DataMember * *subMemberStack, int *subMemberStackPos);
929 extern __attribute__((dllimport)) int64 __ecereNameSpace__ecere__com__eClass_GetProperty(Class * _class, const char *name);
930 extern __attribute__((dllimport)) bool __ecereNameSpace__ecere__com__eClass_IsDerived(Class * _class, Class * from);
931 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eClass_Resize(Class * _class, int newSize);
932 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eClass_SetProperty(Class * _class, const char *name, int64 value);
933 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eClass_Unregister(Class * _class);
935 extern __attribute__((dllimport)) Instance __ecereNameSpace__ecere__com__eInstance_New(Class * _class);
936 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_Delete(Instance instance);
937 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_Evolve(Instance *instancePtr, Class * _class);
938 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_SetMethod(Instance instance, constString name, void *function);
939 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_DecRef(Instance instance);
940 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(Instance instance, Property * _property);
941 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_FireWatchers(Instance instance, Property * _property);
942 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_IncRef(Instance instance);
943 extern __attribute__((dllimport)) bool __ecereNameSpace__ecere__com__eInstance_IsDerived(Instance instance, Class * from);
944 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_StopWatching(Instance instance, Property * _property, Instance object);
945 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_Watch(Instance instance, Property * _property, void *object, void __ecereNameSpace__ecere__com__callback(void *, void *));
946 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eInstance_WatchDestruction(Instance instance, Instance object, void __ecereNameSpace__ecere__com__callback(void *, void *));
948 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(Class * _class, const char *string, int64 value);
949 extern __attribute__((dllimport)) int64 __ecereNameSpace__ecere__com__eEnum_AddValue(Class * _class, const char *string);
951 extern __attribute__((dllimport)) DataMember * __ecereNameSpace__ecere__com__eMember_AddDataMember(DataMember * member, const char *name, const char *type, uint size, uint alignment, AccessMode declMode);
952 extern __attribute__((dllimport)) bool __ecereNameSpace__ecere__com__eMember_AddMember(DataMember * addTo, DataMember * dataMember);
953 extern __attribute__((dllimport)) DataMember * __ecereNameSpace__ecere__com__eMember_New(DataMemberType type, AccessMode declMode);
955 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eProperty_SelfWatch(Class * _class, const char *name, void (*__ecereNameSpace__ecere__com__callback)(void *));
956 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__eProperty_Watchable(Property * _property);
958 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__MemoryGuard_PopLoc(void);
959 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(const char *loc);
961 extern __attribute__((dllimport)) constString __ecereNameSpace__ecere__GetTranslatedString(constString name, constString string, constString stringAndContext);
962 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__LoadTranslatedStrings(constString moduleName, constString name);
963 extern __attribute__((dllimport)) void __ecereNameSpace__ecere__UnloadTranslatedStrings(constString name);
966 extern void (*CheckConsistency)(void);
967 extern void (*CheckMemory)(void);
968 extern DesignerBase (*GetActiveDesigner)(void);
969 extern Platform (*GetRuntimePlatform)(void);
970 extern bool (*LocateModule)(const char *name, const char *fileName);
971 extern void (*Print)(Class * class_object, void * object, ...);
972 extern int (*PrintBuf)(char *buffer, int maxLen, Class * class_object, const void * object, ...);
973 extern void (*PrintLn)(Class * class_object, const void * object, ...);
974 extern int (*PrintLnBuf)(char *buffer, int maxLen, Class * class_object, const void * object, ...);
975 extern char *(*PrintLnString)(Class * class_object, const void * object, ...);
976 extern int (*PrintStdArgsToBuffer)(char *buffer, int maxLen, Class * class_object, const void * object, va_list args);
977 extern char *(*PrintString)(Class * class_object, const void * object, ...);
978 extern void (*SetActiveDesigner)(DesignerBase designer);
979 extern int64 (*_strtoi64)(const char *string, const char **endString, int base);
980 extern uint64 (*_strtoui64)(const char *string, const char **endString, int base);
981 extern uint (*log2i)(uint number);
982 extern void (*memswap)(byte *a, byte *b, uint size);
983 extern uint (*pow2i)(uint number);
984 extern void (*queryMemInfo)(char *string);
985 extern void (*ChangeCh)(char *string, char ch1, char ch2);
986 extern void (*ChangeChars)(char *string, const char *chars, char alt);
987 extern char *(*ChangeExtension)(const char *string, const char *ext, char *output);
988 extern char *(*CopyString)(const char *string);
989 extern double (*FloatFromString)(const char *string);
990 extern int64 (*GetCurrentThreadID)(void);
991 extern char *(*GetExtension)(const char *string, char *output);
992 extern uint (*GetHexValue)(char **buffer);
993 extern char *(*GetLastDirectory)(const char *string, char *output);
994 extern bool (*GetString)(char **buffer, char *string, int max);
995 extern int (*GetValue)(char **buffer);
996 extern int (*ISO8859_1toUTF8)(const char *source, char *dest, int max);
997 extern bool (*IsPathInsideOf)(const char *path, const char *of);
998 extern char *(*MakePathRelative)(const char *path, const char *to, char *destination);
999 extern char *(*PathCat)(char *string, const char *addedPath);
1000 extern char *(*PathCatSlash)(char *string, const char *addedPath);
1001 extern void (*PrintBigSize)(char *string, double size, int prec);
1002 extern void (*PrintSize)(char *string, uint size, int prec);
1003 extern char *(*RSearchString)(const char *buffer, const char *subStr, int maxLen, bool matchCase, bool matchWord);
1004 extern void (*RepeatCh)(char *string, int count, char ch);
1005 extern char *(*SearchString)(const char *buffer, int start, const char *subStr, bool matchCase, bool matchWord);
1006 extern bool (*SplitArchivePath)(const char *fileName, char *archiveName, const char **archiveFile);
1007 extern char *(*SplitDirectory)(const char *string, char *part, char *rest);
1008 extern bool (*StripExtension)(char *string);
1009 extern char *(*StripLastDirectory)(const char *string, char *output);
1010 extern char *(*StripQuotes)(const char *string, char *output);
1011 extern int (*Tokenize)(char *string, int maxTokens, char *tokens[], BackSlashEscaping esc);
1012 extern int (*TokenizeWith)(char *string, int maxTokens, char *tokens[], const char *tokenizers, bool escapeBackSlashes);
1013 extern char *(*TrimLSpaces)(const char *string, char *output);
1014 extern char *(*TrimRSpaces)(const char *string, char *output);
1015 extern char *(*UTF16toUTF8)(const uint16 *source);
1016 extern int (*UTF16toUTF8Buffer)(const uint16 *source, char *dest, int max);
1017 extern int (*UTF32toUTF8Len)(const unichar *source, int count, char *dest, int max);
1018 extern unichar (*UTF8GetChar)(const char *string, int *numBytes);
1019 extern bool (*UTF8Validate)(const char *source);
1020 extern uint16 *(*UTF8toUTF16)(const char *source, int *wordCount);
1021 extern int (*UTF8toUTF16Buffer)(const char *source, uint16 *dest, int max);
1022 extern void (*strcatf)(char *string, const char *format, ...);
1025 extern Class * class_class;
1027 extern Method * method_class_onDisplay;
1028 extern Method * method_class_onCompare;
1029 extern Method * method_class_onCopy;
1030 extern Method * method_class_onFree;
1031 extern Method * method_class_onGetString;
1032 extern Method * method_class_onGetDataFromString;
1033 extern Method * method_class_onEdit;
1034 extern Method * method_class_onSerialize;
1035 extern Method * method_class_onUnserialize;
1036 extern Method * method_class_onSaveEdit;
1038 extern int onDisplay_vTblID;
1039 extern int onCompare_vTblID;
1040 extern int onCopy_vTblID;
1041 extern int onFree_vTblID;
1042 extern int onGetString_vTblID;
1043 extern int onGetDataFromString_vTblID;
1044 extern int onEdit_vTblID;
1045 extern int onSerialize_vTblID;
1046 extern int onUnserialize_vTblID;
1047 extern int onSaveEdit_vTblID;
1049 extern Class * class_String;
1050 extern Class * class_int;
1051 extern Class * class_double;
1052 extern Class * class_float;
1053 extern Class * class_char;
1054 extern Class * class_int64;
1055 extern Class * class_short;
1056 extern Class * class_uint16;
1057 extern Class * class_uint;
1058 extern Class * class_uint64;
1059 extern Class * class_byte;
1062 extern Class * class_Instance;
1064 // Application Class
1065 extern Class * class_Application;
1068 extern Method * method_Application_main;
1070 extern int Application_main_vTblID;
1072 Module eC_init(bool guiApp, int argc, char * argv[]);
1074 #if defined(__cplusplus)
1076 #elif defined(REDEFINE_STDBOOL)
1088 #undef CustomAVLTree
1098 #undef ClassDesignerBase
1101 // Structs / Unions (with methods or properties)
1104 #undef BuiltInContainer
1106 #undef StringBinaryTree
1109 // class : struct (with methods or properties)