1 /* Code generated from eC source file: pass1.ec */
3 typedef long long int64;
4 typedef unsigned long long uint64;
8 #elif defined(__TINYC__)
10 #define __builtin_va_list va_list
11 #define __builtin_va_start va_start
12 #define __builtin_va_end va_end
14 #define strcasecmp stricmp
15 #define strncasecmp strnicmp
16 #define __declspec(x) __attribute__((x))
20 typedef long long int64;
21 typedef unsigned long long uint64;
23 typedef __int64 int64;
24 typedef unsigned __int64 uint64;
27 #define __ENDIAN_PAD(x) (8 - (x))
29 #define __ENDIAN_PAD(x) 0
32 #include <sys/types.h>
34 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
40 #define arch_PointerSize sizeof(void *)
41 #define structSize_Instance (_64BIT ? 24 : 12)
43 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
45 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
47 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
49 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
51 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
53 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
55 struct __ecereNameSpace__ecere__sys__BTNode;
57 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
59 struct __ecereNameSpace__ecere__sys__BinaryTree
61 struct __ecereNameSpace__ecere__sys__BTNode * root;
63 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
64 void (* FreeKey)(void * key);
65 } __attribute__ ((gcc_struct));
67 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
69 struct __ecereNameSpace__ecere__sys__OldList
76 } __attribute__ ((gcc_struct));
78 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
80 struct __ecereNameSpace__ecere__com__Method
83 struct __ecereNameSpace__ecere__com__Method * parent;
84 struct __ecereNameSpace__ecere__com__Method * left;
85 struct __ecereNameSpace__ecere__com__Method * right;
90 struct __ecereNameSpace__ecere__com__Class * _class;
92 char * dataTypeString;
93 struct Type * dataType;
95 } __attribute__ ((gcc_struct));
97 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
99 struct __ecereNameSpace__ecere__com__Property
101 struct __ecereNameSpace__ecere__com__Property * prev;
102 struct __ecereNameSpace__ecere__com__Property * next;
104 unsigned int isProperty;
107 struct __ecereNameSpace__ecere__com__Class * _class;
108 char * dataTypeString;
109 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
110 struct Type * dataType;
111 void (* Set)(void * , int);
112 int (* Get)(void * );
113 unsigned int (* IsSet)(void * );
117 unsigned int conversion;
118 unsigned int watcherOffset;
120 unsigned int compiled;
121 unsigned int selfWatchable;
122 unsigned int isWatchable;
123 } __attribute__ ((gcc_struct));
125 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
133 } __attribute__ ((gcc_struct));
135 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
139 struct CodePosition start;
140 struct CodePosition end;
141 } __attribute__ ((gcc_struct));
143 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
147 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
151 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
153 struct ClassDefinition
155 struct ClassDefinition * prev;
156 struct ClassDefinition * next;
158 struct Specifier * _class;
159 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
160 struct __ecereNameSpace__ecere__sys__OldList * definitions;
161 struct Symbol * symbol;
162 struct Location blockStart;
163 struct Location nameLoc;
166 unsigned int deleteWatchable;
167 } __attribute__ ((gcc_struct));
169 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
173 struct Context * parent;
174 struct __ecereNameSpace__ecere__sys__BinaryTree types;
175 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
176 struct __ecereNameSpace__ecere__sys__BinaryTree symbols;
177 struct __ecereNameSpace__ecere__sys__BinaryTree structSymbols;
180 struct __ecereNameSpace__ecere__sys__BinaryTree templateTypes;
181 struct ClassDefinition * classDef;
182 unsigned int templateTypesOnly;
183 unsigned int hasNameSpace;
184 } __attribute__ ((gcc_struct));
186 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
188 struct Instantiation;
190 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
194 struct Declaration * prev;
195 struct Declaration * next;
202 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
203 struct __ecereNameSpace__ecere__sys__OldList * declarators;
204 } __attribute__ ((gcc_struct));
205 struct Instantiation * inst;
208 struct Identifier * id;
209 struct Expression * exp;
210 } __attribute__ ((gcc_struct));
211 } __attribute__ ((gcc_struct));
212 struct Specifier * extStorage;
213 struct Symbol * symbol;
215 } __attribute__ ((gcc_struct));
217 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
221 struct Statement * prev;
222 struct Statement * next;
227 struct __ecereNameSpace__ecere__sys__OldList * expressions;
230 struct Identifier * id;
231 struct Statement * stmt;
232 } __attribute__ ((gcc_struct)) labeled;
235 struct Expression * exp;
236 struct Statement * stmt;
237 } __attribute__ ((gcc_struct)) caseStmt;
240 struct __ecereNameSpace__ecere__sys__OldList * declarations;
241 struct __ecereNameSpace__ecere__sys__OldList * statements;
242 struct Context * context;
243 unsigned int isSwitch;
244 } __attribute__ ((gcc_struct)) compound;
247 struct __ecereNameSpace__ecere__sys__OldList * exp;
248 struct Statement * stmt;
249 struct Statement * elseStmt;
250 } __attribute__ ((gcc_struct)) ifStmt;
253 struct __ecereNameSpace__ecere__sys__OldList * exp;
254 struct Statement * stmt;
255 } __attribute__ ((gcc_struct)) switchStmt;
258 struct __ecereNameSpace__ecere__sys__OldList * exp;
259 struct Statement * stmt;
260 } __attribute__ ((gcc_struct)) whileStmt;
263 struct __ecereNameSpace__ecere__sys__OldList * exp;
264 struct Statement * stmt;
265 } __attribute__ ((gcc_struct)) doWhile;
268 struct Statement * init;
269 struct Statement * check;
270 struct __ecereNameSpace__ecere__sys__OldList * increment;
271 struct Statement * stmt;
272 } __attribute__ ((gcc_struct)) forStmt;
275 struct Identifier * id;
276 } __attribute__ ((gcc_struct)) gotoStmt;
279 struct Specifier * spec;
281 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
282 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
283 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
284 } __attribute__ ((gcc_struct)) asmStmt;
287 struct Expression * watcher;
288 struct Expression * object;
289 struct __ecereNameSpace__ecere__sys__OldList * watches;
290 } __attribute__ ((gcc_struct)) _watch;
293 struct Identifier * id;
294 struct __ecereNameSpace__ecere__sys__OldList * exp;
295 struct __ecereNameSpace__ecere__sys__OldList * filter;
296 struct Statement * stmt;
297 } __attribute__ ((gcc_struct)) forEachStmt;
298 struct Declaration * decl;
299 } __attribute__ ((gcc_struct));
300 } __attribute__ ((gcc_struct));
302 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
306 struct TypeName * prev;
307 struct TypeName * next;
309 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
310 struct Declarator * declarator;
312 struct Expression * bitCount;
313 } __attribute__ ((gcc_struct));
315 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
319 struct Initializer * prev;
320 struct Initializer * next;
325 struct Expression * exp;
326 struct __ecereNameSpace__ecere__sys__OldList * list;
327 } __attribute__ ((gcc_struct));
328 unsigned int isConstant;
329 } __attribute__ ((gcc_struct));
331 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
333 struct __ecereNameSpace__ecere__com__DataValue
348 } __attribute__ ((gcc_struct));
349 } __attribute__ ((gcc_struct));
351 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
355 struct Expression * prev;
356 struct Expression * next;
364 struct Identifier * identifier;
365 } __attribute__ ((gcc_struct));
366 struct Statement * compound;
367 struct Instantiation * instance;
371 unsigned int intlString;
372 } __attribute__ ((gcc_struct));
373 struct __ecereNameSpace__ecere__sys__OldList * list;
376 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
377 struct Declarator * decl;
378 } __attribute__ ((gcc_struct)) _classExp;
381 struct Identifier * id;
382 } __attribute__ ((gcc_struct)) classData;
385 struct Expression * exp;
386 struct __ecereNameSpace__ecere__sys__OldList * arguments;
387 struct Location argLoc;
388 } __attribute__ ((gcc_struct)) call;
391 struct Expression * exp;
392 struct __ecereNameSpace__ecere__sys__OldList * index;
393 } __attribute__ ((gcc_struct)) index;
396 struct Expression * exp;
397 struct Identifier * member;
399 unsigned int thisPtr;
400 } __attribute__ ((gcc_struct)) member;
404 struct Expression * exp1;
405 struct Expression * exp2;
406 } __attribute__ ((gcc_struct)) op;
407 struct TypeName * typeName;
408 struct Specifier * _class;
411 struct TypeName * typeName;
412 struct Expression * exp;
413 } __attribute__ ((gcc_struct)) cast;
416 struct Expression * cond;
417 struct __ecereNameSpace__ecere__sys__OldList * exp;
418 struct Expression * elseExp;
419 } __attribute__ ((gcc_struct)) cond;
422 struct TypeName * typeName;
423 struct Expression * size;
424 } __attribute__ ((gcc_struct)) _new;
427 struct TypeName * typeName;
428 struct Expression * size;
429 struct Expression * exp;
430 } __attribute__ ((gcc_struct)) _renew;
434 struct Identifier * id;
435 } __attribute__ ((gcc_struct)) db;
438 struct Expression * ds;
439 struct Expression * name;
440 } __attribute__ ((gcc_struct)) dbopen;
443 struct TypeName * typeName;
444 struct Initializer * initializer;
445 } __attribute__ ((gcc_struct)) initializer;
448 struct Expression * exp;
449 struct TypeName * typeName;
450 } __attribute__ ((gcc_struct)) vaArg;
451 } __attribute__ ((gcc_struct));
452 unsigned int debugValue;
453 struct __ecereNameSpace__ecere__com__DataValue val;
455 unsigned int hasAddress;
456 struct Type * expType;
457 struct Type * destType;
460 unsigned int byReference;
461 unsigned int isConstant;
462 unsigned int addedThis;
463 unsigned int needCast;
464 unsigned int thisPtr;
465 } __attribute__ ((gcc_struct));
467 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
469 struct TemplateDatatype
471 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
472 struct Declarator * decl;
473 } __attribute__ ((gcc_struct));
475 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
477 struct TemplateArgument
479 struct TemplateArgument * prev;
480 struct TemplateArgument * next;
482 struct Identifier * name;
486 struct Expression * expression;
487 struct Identifier * identifier;
488 struct TemplateDatatype * templateDatatype;
489 } __attribute__ ((gcc_struct));
490 } __attribute__ ((gcc_struct));
492 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
494 struct TemplateParameter
496 struct TemplateParameter * prev;
497 struct TemplateParameter * next;
500 struct Identifier * identifier;
503 struct TemplateDatatype * dataType;
505 } __attribute__ ((gcc_struct));
506 struct TemplateArgument * defaultArgument;
507 char * dataTypeString;
508 struct Type * baseType;
509 } __attribute__ ((gcc_struct));
511 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
515 struct Specifier * prev;
516 struct Specifier * next;
524 struct ExtDecl * extDecl;
526 struct Symbol * symbol;
527 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
528 } __attribute__ ((gcc_struct));
531 struct Identifier * id;
532 struct __ecereNameSpace__ecere__sys__OldList * list;
533 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
534 struct __ecereNameSpace__ecere__sys__OldList * definitions;
535 unsigned int addNameSpace;
536 struct Context * ctx;
537 struct ExtDecl * extDeclStruct;
538 } __attribute__ ((gcc_struct));
539 struct Expression * expression;
540 struct Specifier * _class;
541 struct TemplateParameter * templateParameter;
542 } __attribute__ ((gcc_struct));
543 } __attribute__ ((gcc_struct));
545 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
549 struct Identifier * prev;
550 struct Identifier * next;
552 struct Symbol * classSym;
553 struct Specifier * _class;
555 struct Identifier * badID;
556 } __attribute__ ((gcc_struct));
558 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
562 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
566 struct Declarator * prev;
567 struct Declarator * next;
570 struct Symbol * symbol;
571 struct Declarator * declarator;
574 struct Identifier * identifier;
577 struct Expression * exp;
578 struct Expression * posExp;
579 struct Attrib * attrib;
580 } __attribute__ ((gcc_struct)) structDecl;
583 struct Expression * exp;
584 struct Specifier * enumClass;
585 } __attribute__ ((gcc_struct)) array;
588 struct __ecereNameSpace__ecere__sys__OldList * parameters;
589 } __attribute__ ((gcc_struct)) function;
592 struct Pointer * pointer;
593 } __attribute__ ((gcc_struct)) pointer;
596 struct ExtDecl * extended;
597 } __attribute__ ((gcc_struct)) extended;
598 } __attribute__ ((gcc_struct));
599 } __attribute__ ((gcc_struct));
601 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
603 struct FunctionDefinition
605 struct FunctionDefinition * prev;
606 struct FunctionDefinition * next;
608 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
609 struct Declarator * declarator;
610 struct __ecereNameSpace__ecere__sys__OldList * declarations;
611 struct Statement * body;
612 struct __ecereNameSpace__ecere__com__Class * _class;
613 struct __ecereNameSpace__ecere__sys__OldList attached;
616 struct Symbol * propSet;
618 unsigned int propertyNoThis;
619 } __attribute__ ((gcc_struct));
621 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
625 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
629 struct External * prev;
630 struct External * next;
633 struct Symbol * symbol;
636 struct FunctionDefinition * function;
637 struct ClassDefinition * _class;
638 struct Declaration * declaration;
640 struct Identifier * id;
641 struct DBTableDef * table;
642 } __attribute__ ((gcc_struct));
644 } __attribute__ ((gcc_struct));
646 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
650 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
654 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
659 struct Symbol * parent;
660 struct Symbol * left;
661 struct Symbol * right;
666 struct __ecereNameSpace__ecere__com__Method * method;
667 struct __ecereNameSpace__ecere__com__Property * _property;
668 struct __ecereNameSpace__ecere__com__Class * registered;
669 } __attribute__ ((gcc_struct));
676 struct External * pointerExternal;
677 struct External * structExternal;
678 } __attribute__ ((gcc_struct));
681 struct External * externalGet;
682 struct External * externalSet;
683 struct External * externalPtr;
684 struct External * externalIsSet;
685 } __attribute__ ((gcc_struct));
688 struct External * methodExternal;
689 struct External * methodCodeExternal;
690 } __attribute__ ((gcc_struct));
691 } __attribute__ ((gcc_struct));
692 unsigned int imported;
693 unsigned int declaredStructSym;
694 struct __ecereNameSpace__ecere__com__Class * _class;
695 unsigned int declaredStruct;
696 unsigned int needConstructor;
697 unsigned int needDestructor;
698 char * constructorName;
701 char * destructorName;
702 struct ModuleImport * module;
703 struct ClassImport * _import;
704 struct Location nameLoc;
705 unsigned int isParam;
706 unsigned int isRemote;
707 unsigned int isStruct;
708 unsigned int fireWatchersDone;
710 unsigned int classData;
711 unsigned int isStatic;
713 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
714 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
715 struct Context * ctx;
717 struct Expression * propCategory;
718 } __attribute__ ((gcc_struct));
720 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
729 struct Symbol * _class;
732 struct __ecereNameSpace__ecere__sys__OldList members;
734 } __attribute__ ((gcc_struct));
737 struct Type * returnType;
738 struct __ecereNameSpace__ecere__sys__OldList params;
739 struct Symbol * thisClass;
740 unsigned int staticMethod;
741 struct TemplateParameter * thisClassTemplate;
742 } __attribute__ ((gcc_struct));
745 struct __ecereNameSpace__ecere__com__Method * method;
746 struct __ecereNameSpace__ecere__com__Class * methodClass;
747 struct __ecereNameSpace__ecere__com__Class * usedClass;
748 } __attribute__ ((gcc_struct));
751 struct Type * arrayType;
753 struct Expression * arraySizeExp;
754 unsigned int freeExp;
755 struct Symbol * enumClass;
756 } __attribute__ ((gcc_struct));
758 struct TemplateParameter * templateParameter;
759 } __attribute__ ((gcc_struct));
769 unsigned int isSigned : 1;
770 unsigned int constant : 1;
771 unsigned int truth : 1;
772 unsigned int byReference : 1;
773 unsigned int extraParam : 1;
774 unsigned int directClassAccess : 1;
775 unsigned int computing : 1;
776 unsigned int keepCast : 1;
777 unsigned int passAsTemplate : 1;
778 unsigned int dllExport : 1;
779 unsigned int attrStdcall : 1;
780 unsigned int declaredWithStruct : 1;
781 unsigned int typedByReference : 1;
782 } __attribute__ ((gcc_struct));
784 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
786 struct __ecereNameSpace__ecere__com__Class
788 struct __ecereNameSpace__ecere__com__Class * prev;
789 struct __ecereNameSpace__ecere__com__Class * next;
795 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
796 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
799 struct __ecereNameSpace__ecere__com__Class * base;
800 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
801 struct __ecereNameSpace__ecere__sys__BinaryTree members;
802 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
803 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
804 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
805 struct __ecereNameSpace__ecere__sys__OldList derivatives;
809 struct __ecereNameSpace__ecere__com__Instance * module;
810 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
811 char * dataTypeString;
812 struct Type * dataType;
814 int defaultAlignment;
815 void (* Initialize)();
817 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
818 char * designerClass;
819 unsigned int noExpansion;
820 char * defaultProperty;
821 unsigned int comRedefinition;
823 unsigned int isRemote;
824 unsigned int internalDecl;
826 unsigned int computeSize;
828 int destructionWatchOffset;
830 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
831 int inheritanceAccess;
834 struct __ecereNameSpace__ecere__sys__OldList conversions;
835 struct __ecereNameSpace__ecere__sys__OldList templateParams;
836 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
837 struct __ecereNameSpace__ecere__com__Class * templateClass;
838 struct __ecereNameSpace__ecere__sys__OldList templatized;
840 unsigned int isInstanceClass;
841 unsigned int byValueSystemClass;
842 } __attribute__ ((gcc_struct));
844 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name);
846 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
848 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
850 struct __ecereNameSpace__ecere__com__Instance
853 struct __ecereNameSpace__ecere__com__Class * _class;
855 } __attribute__ ((gcc_struct));
857 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
859 struct __ecereNameSpace__ecere__com__DataMember
861 struct __ecereNameSpace__ecere__com__DataMember * prev;
862 struct __ecereNameSpace__ecere__com__DataMember * next;
864 unsigned int isProperty;
867 struct __ecereNameSpace__ecere__com__Class * _class;
868 char * dataTypeString;
869 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
870 struct Type * dataType;
874 struct __ecereNameSpace__ecere__sys__OldList members;
875 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
878 } __attribute__ ((gcc_struct));
880 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
882 struct __ecereNameSpace__ecere__com__SerialBuffer
884 unsigned char * _buffer;
888 } __attribute__ ((gcc_struct));
890 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
892 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
898 char * dataTypeString;
899 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
900 } __attribute__ ((gcc_struct));
901 struct __ecereNameSpace__ecere__com__DataValue expression;
907 struct __ecereNameSpace__ecere__com__DataMember * member;
908 struct __ecereNameSpace__ecere__com__Property * prop;
909 struct __ecereNameSpace__ecere__com__Method * method;
910 } __attribute__ ((gcc_struct));
911 } __attribute__ ((gcc_struct));
912 } __attribute__ ((gcc_struct));
913 } __attribute__ ((gcc_struct));
917 IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
920 typedef union YYSTYPE
925 struct Identifier * id;
926 struct Expression * exp;
927 struct Specifier * specifier;
928 struct __ecereNameSpace__ecere__sys__OldList * list;
929 struct Enumerator * enumerator;
930 struct Declarator * declarator;
931 struct Pointer * pointer;
932 struct Initializer * initializer;
933 struct InitDeclarator * initDeclarator;
934 struct TypeName * typeName;
935 struct Declaration * declaration;
936 struct Statement * stmt;
937 struct FunctionDefinition * function;
938 struct External * external;
939 struct Context * context;
940 struct AsmField * asmField;
941 struct Attrib * attrib;
942 struct ExtDecl * extDecl;
943 struct Attribute * attribute;
944 struct Instantiation * instance;
945 struct MembersInit * membersInit;
946 struct MemberInit * memberInit;
947 struct ClassFunction * classFunction;
948 struct ClassDefinition * _class;
949 struct ClassDef * classDef;
950 struct PropertyDef * prop;
952 struct Symbol * symbol;
953 struct PropertyWatch * propertyWatch;
954 struct TemplateParameter * templateParameter;
955 struct TemplateArgument * templateArgument;
956 struct TemplateDatatype * templateDatatype;
957 struct DBTableEntry * dbtableEntry;
958 struct DBIndexItem * dbindexItem;
959 struct DBTableDef * dbtableDef;
960 } __attribute__ ((gcc_struct)) YYSTYPE;
962 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
966 struct Enumerator * prev;
967 struct Enumerator * next;
969 struct Identifier * id;
970 struct Expression * exp;
971 } __attribute__ ((gcc_struct));
973 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
975 struct InitDeclarator;
977 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
981 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
985 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
989 struct ClassFunction * prev;
990 struct ClassFunction * next;
992 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
993 struct Declarator * declarator;
994 struct __ecereNameSpace__ecere__sys__OldList * declarations;
995 struct Statement * body;
996 struct __ecereNameSpace__ecere__com__Class * _class;
997 struct __ecereNameSpace__ecere__sys__OldList attached;
1000 struct Symbol * propSet;
1001 unsigned int isVirtual;
1002 unsigned int isConstructor;
1003 unsigned int isDestructor;
1004 unsigned int dontMangle;
1007 } __attribute__ ((gcc_struct));
1009 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
1013 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
1017 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1021 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1023 struct PropertyWatch
1025 struct PropertyWatch * prev;
1026 struct PropertyWatch * next;
1027 struct Location loc;
1028 struct Statement * compound;
1029 struct __ecereNameSpace__ecere__sys__OldList * properties;
1030 unsigned int deleteWatch;
1031 } __attribute__ ((gcc_struct));
1033 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1037 struct ClassDef * prev;
1038 struct ClassDef * next;
1039 struct Location loc;
1043 struct Declaration * decl;
1044 struct ClassFunction * function;
1045 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
1046 struct PropertyDef * propertyDef;
1047 struct PropertyWatch * propertyWatch;
1049 struct Identifier * defaultProperty;
1052 struct Identifier * id;
1053 struct Initializer * initializer;
1054 } __attribute__ ((gcc_struct));
1055 } __attribute__ ((gcc_struct));
1058 } __attribute__ ((gcc_struct));
1060 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
1062 struct DBTableEntry;
1064 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
1068 extern YYSTYPE yylval;
1070 extern struct Location yylloc;
1072 static struct Statement * registerModuleBody;
1074 static struct External * registerModuleExternal;
1076 static struct Statement * unregisterModuleBody;
1078 static struct External * unregisterModuleExternal;
1080 extern int propWatcherID;
1082 unsigned int buildingECERECOM = 0x0;
1084 void SetBuildingEcereCom(unsigned int b)
1086 buildingECERECOM = b;
1089 unsigned int GetBuildingEcereCom()
1091 return buildingECERECOM;
1094 unsigned int buildingECERECOMModule = 0x0;
1096 void SetBuildingEcereComModule(unsigned int b)
1098 buildingECERECOMModule = b;
1101 unsigned int GetBuildingEcereComModule()
1103 return buildingECERECOMModule;
1106 extern struct Identifier * GetDeclId(struct Declarator * decl);
1108 extern unsigned int inCompiler;
1110 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
1112 extern struct Specifier * MkSpecifier(int specifier);
1114 extern void ReplaceThisClassSpecifiers(struct __ecereNameSpace__ecere__sys__OldList * specs, struct __ecereNameSpace__ecere__com__Class * _class);
1116 extern struct FunctionDefinition * _MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList, unsigned int errorOnOmit);
1118 extern void ProcessFunctionBody(struct FunctionDefinition * func, struct Statement * body);
1120 extern struct External * MkExternalFunction(struct FunctionDefinition * function);
1122 extern void ProcessMethodType(struct __ecereNameSpace__ecere__com__Method * method);
1124 extern struct __ecereNameSpace__ecere__com__ClassTemplateArgument * FindTemplateArg(struct __ecereNameSpace__ecere__com__Class * _class, struct TemplateParameter * param);
1126 extern struct Type * ProcessTypeString(char * string, unsigned int staticMethod);
1128 extern struct Symbol * FindClass(char * name);
1130 extern unsigned int MatchTypes(struct Type * source, struct Type * dest, struct __ecereNameSpace__ecere__sys__OldList * conversions, struct __ecereNameSpace__ecere__com__Class * owningClassSource, struct __ecereNameSpace__ecere__com__Class * owningClassDest, unsigned int doConversion, unsigned int enumBaseType, unsigned int acceptReversedParams, unsigned int isConversionExploration);
1132 extern void Compiler_Error(char * format, ...);
1134 extern char * __ecereNameSpace__ecere__GetTranslatedString(char * name, char * string, char * stringAndContext);
1136 extern struct Declarator * GetFuncDecl(struct Declarator * decl);
1138 extern void FreeType(struct Type * type);
1140 extern void FreeExternal(struct External * external);
1142 extern struct Context * globalContext;
1144 extern struct __ecereNameSpace__ecere__sys__OldList * excludedSymbols;
1146 extern struct Declarator * CopyDeclarator(struct Declarator * declarator);
1148 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
1150 extern struct Specifier * CopySpecifier(struct Specifier * spec);
1152 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item);
1154 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1156 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1158 struct External * ProcessClassFunction(struct __ecereNameSpace__ecere__com__Class * owningClass, struct ClassFunction * func, struct __ecereNameSpace__ecere__sys__OldList * defs, struct External * after, unsigned int makeStatic)
1160 struct Identifier * id = GetDeclId(func->declarator);
1161 struct Type * type = (((void *)0));
1162 struct Symbol * symbol;
1163 struct External * external = (((void *)0));
1165 if(defs && func->declarator)
1167 struct FunctionDefinition * function = (((void *)0));
1168 struct Symbol * propSymbol;
1169 int symid = func->declarator->symbol->id;
1170 int symidCode = func->declarator->symbol->idCode;
1174 if(!func->specifiers)
1175 func->specifiers = MkList();
1177 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*func->specifiers), (((void *)0)), MkSpecifier(STATIC));
1179 propSymbol = func->declarator->symbol;
1180 ReplaceThisClassSpecifiers(func->specifiers, owningClass);
1181 if(propSymbol->externalGet == (struct External *)func)
1182 func->declarator->symbol = (((void *)0));
1183 else if(propSymbol->externalSet == (struct External *)func)
1185 func->declarator->symbol = (((void *)0));
1188 else if(propSymbol->externalIsSet == (struct External *)func)
1190 func->declarator->symbol = (((void *)0));
1194 function = _MkFunction(func->specifiers, func->declarator, (((void *)0)), 0x0);
1195 function->propSet = func->propSet;
1196 function->type = func->type;
1198 func->type->refCount++;
1199 ProcessFunctionBody(function, func->body);
1200 external = MkExternalFunction(function);
1201 external->symbol = func->declarator->symbol;
1202 external->function->_class = func->_class;
1204 symbol = func->declarator->symbol;
1206 symbol->idCode = symidCode;
1207 if(!func->dontMangle)
1209 struct __ecereNameSpace__ecere__com__Method * method = func->declarator->symbol->method;
1211 func->declarator->symbol->methodExternal = external;
1212 if(method && method->symbol)
1213 ((struct Symbol *)method->symbol)->methodCodeExternal = external;
1214 if(method && method->type == 1)
1216 struct Type * methodDataType;
1218 ProcessMethodType(method);
1219 methodDataType = method->dataType;
1220 type = symbol->type;
1221 if(!type->staticMethod && !type->thisClass && !type->thisClassTemplate)
1223 if(method->dataType->thisClassTemplate)
1225 if(owningClass->templateArgs)
1227 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = FindTemplateArg(owningClass, method->dataType->thisClassTemplate);
1229 type->byReference = method->dataType->byReference;
1230 methodDataType = ProcessTypeString(method->dataTypeString, 0x0);
1231 type->thisClass = methodDataType->thisClass = arg ? FindClass((*arg).dataTypeString) : (((void *)0));
1234 else if(method->dataType->staticMethod)
1235 type->staticMethod = 0x1;
1236 else if(method->dataType->thisClass)
1238 type->thisClass = method->dataType->thisClass;
1239 type->byReference = method->dataType->byReference;
1243 if(!owningClass->symbol)
1244 owningClass->symbol = FindClass(owningClass->fullName);
1245 type->thisClass = owningClass->symbol;
1246 type->extraParam = 0x1;
1250 if(!MatchTypes(type, methodDataType, (((void *)0)), owningClass, method->_class, 0x1, 0x1, 0x1, 0x0))
1252 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Incompatible virtual function %s\n", (((void *)0))), method->name);
1256 struct Type * typeParam;
1257 struct Declarator * funcDecl = GetFuncDecl(func->declarator);
1259 if(funcDecl->function.parameters && (*funcDecl->function.parameters).first)
1261 struct TypeName * param = (*funcDecl->function.parameters).first;
1263 for(typeParam = methodDataType->params.first; typeParam && param; typeParam = typeParam->next)
1265 if(typeParam->classObjectType)
1267 param->classObjectType = typeParam->classObjectType;
1268 if(param->declarator && param->declarator->symbol)
1269 param->declarator->symbol->type->classObjectType = typeParam->classObjectType;
1271 param = param ? param->next : (((void *)0));
1275 if(methodDataType != method->dataType)
1276 FreeType(methodDataType);
1280 type = symbol->type;
1281 if(!type->staticMethod && !type->thisClass)
1283 if(owningClass && !owningClass->symbol)
1284 owningClass->symbol = FindClass(owningClass->fullName);
1285 type->thisClass = owningClass ? FindClass(owningClass->fullName) : (((void *)0));
1291 if(symbol->type && !symbol->type->staticMethod && !symbol->type->thisClass)
1293 if(!owningClass->symbol)
1294 owningClass->symbol = FindClass(owningClass->fullName);
1295 symbol->type->thisClass = owningClass->symbol;
1297 if(propSymbol->externalSet == (struct External *)func && propSymbol->_property && propSymbol->_property->conversion)
1299 if(symbol->type->thisClass && symbol->type->classObjectType != 1)
1301 if(owningClass->type != 1)
1302 symbol->type->thisClass = (((void *)0));
1305 if(propSymbol->externalGet == (struct External *)func)
1307 propSymbol->externalGet = external;
1309 else if(propSymbol->externalSet == (struct External *)func)
1311 propSymbol->externalSet = external;
1313 else if(propSymbol->externalIsSet == (struct External *)func)
1315 propSymbol->externalIsSet = external;
1325 func->declarator = (((void *)0));
1326 func->specifiers = (((void *)0));
1327 func->body = (((void *)0));
1328 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(defs, after, external);
1332 struct __ecereNameSpace__ecere__com__Method * method = func->declarator->symbol->method;
1334 if(method && method->symbol)
1335 ((struct Symbol *)method->symbol)->methodCodeExternal = (((void *)0));
1336 if(func->declarator->symbol && func->declarator->symbol->methodExternal == external)
1337 func->declarator->symbol->methodExternal = (((void *)0));
1338 func->declarator = (((void *)0));
1339 func->specifiers = (((void *)0));
1340 FreeExternal(external);
1345 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Remove(&globalContext->symbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol);
1346 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
1347 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(defs, after, external);
1348 external->function->declarator = CopyDeclarator(external->function->declarator);
1349 external->function->specifiers = CopyList(external->function->specifiers, CopySpecifier);
1350 external->function->body = (((void *)0));
1356 extern struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements);
1358 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
1360 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
1362 extern struct __ecereNameSpace__ecere__sys__OldList * MkListOne(void * item);
1364 extern struct Specifier * MkSpecifierName(char * name);
1366 extern struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer);
1368 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1370 extern struct Identifier * MkIdentifier(char * string);
1372 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
1374 extern char * __ecereNameSpace__ecere__sys__GetLastDirectory(char * string, char * output);
1376 extern char * outputFile;
1378 extern unsigned int __ecereNameSpace__ecere__sys__StripExtension(char * string);
1380 extern void FixModuleName(char * moduleName);
1382 extern int sprintf(char * , char * , ...);
1384 extern struct Declarator * MkDeclaratorFunction(struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * parameters);
1386 extern struct __ecereNameSpace__ecere__sys__OldList * ast;
1388 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
1390 void CreateRegisterModuleBody()
1392 if(!registerModuleBody && inCompiler)
1394 char registerName[1024], moduleName[274];
1395 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1396 struct Declarator * declarator;
1397 struct TypeName * moduleParam;
1399 registerModuleBody = MkCompoundStmt(MkList(), MkList());
1400 registerModuleBody->compound.context = __extension__ ({
1401 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1403 __ecereInstance1->parent = globalContext, __ecereInstance1;
1405 ListAdd(registerModuleBody->compound.declarations, MkDeclaration(MkListOne(MkSpecifierName("ecere::com::Class")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("class")), (((void *)0))))));
1406 specifiers = MkList();
1407 ListAdd(specifiers, MkSpecifier(VOID));
1408 moduleParam = MkTypeName(MkListOne(MkSpecifierName("Module")), MkDeclaratorIdentifier(MkIdentifier("module")));
1409 __ecereNameSpace__ecere__sys__GetLastDirectory(outputFile, moduleName);
1410 __ecereNameSpace__ecere__sys__StripExtension(moduleName);
1411 FixModuleName(moduleName);
1412 sprintf(registerName, "__ecereRegisterModule_%s", moduleName);
1413 declarator = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(registerName)), MkListOne(moduleParam));
1415 struct FunctionDefinition * function = _MkFunction(specifiers, declarator, (((void *)0)), 0x0);
1417 ProcessFunctionBody(function, registerModuleBody);
1418 function->declMode = 0;
1421 ListAdd(ast, (registerModuleExternal = MkExternalFunction(function)));
1424 if(!unregisterModuleBody && inCompiler)
1426 char registerName[1024], moduleName[274];
1427 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1428 struct Declarator * declarator;
1429 struct TypeName * moduleParam;
1431 unregisterModuleBody = MkCompoundStmt(MkList(), MkList());
1432 unregisterModuleBody->compound.context = __extension__ ({
1433 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1435 __ecereInstance1->parent = globalContext, __ecereInstance1;
1437 specifiers = MkList();
1438 ListAdd(specifiers, MkSpecifier(VOID));
1439 moduleParam = MkTypeName(MkListOne(MkSpecifierName("Module")), MkDeclaratorIdentifier(MkIdentifier("module")));
1440 __ecereNameSpace__ecere__sys__GetLastDirectory(outputFile, moduleName);
1441 __ecereNameSpace__ecere__sys__StripExtension(moduleName);
1442 FixModuleName(moduleName);
1443 sprintf(registerName, "__ecereUnregisterModule_%s", moduleName);
1444 declarator = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(registerName)), MkListOne(moduleParam));
1446 struct FunctionDefinition * function = _MkFunction(specifiers, declarator, (((void *)0)), 0x0);
1448 ProcessFunctionBody(function, unregisterModuleBody);
1449 function->declMode = 0;
1452 ListAdd(ast, (unregisterModuleExternal = MkExternalFunction(function)));
1457 extern struct Expression * MkExpIdentifier(struct Identifier * id);
1459 extern struct Expression * MkExpConstant(char * string);
1461 extern char * QMkString(char * source);
1463 extern struct Expression * MkExpString(char * string);
1465 extern char * strcpy(char * , const char * );
1467 extern void FullClassNameCat(char * output, char * className, unsigned int includeTemplateParams);
1469 extern char * strcat(char * , const char * );
1471 extern void MangleClassName(char * className);
1473 extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions);
1475 extern struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2);
1477 extern struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments);
1479 extern struct Expression * MkExpMember(struct Expression * expression, struct Identifier * member);
1481 extern struct Expression * MkExpCast(struct TypeName * typeName, struct Expression * expression);
1483 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
1485 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
1487 extern struct Expression * CopyExpression(struct Expression * exp);
1489 extern struct Statement * MkIfStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement, struct Statement * elseStmt);
1491 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
1493 struct __ecereNameSpace__ecere__com__BitMember
1495 struct __ecereNameSpace__ecere__com__BitMember * prev;
1496 struct __ecereNameSpace__ecere__com__BitMember * next;
1498 unsigned int isProperty;
1501 struct __ecereNameSpace__ecere__com__Class * _class;
1502 char * dataTypeString;
1503 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
1504 struct Type * dataType;
1509 } __attribute__ ((gcc_struct));
1511 extern int ComputeTypeSize(struct Type * type);
1513 extern struct Context * curContext;
1515 extern struct Context * PushContext(void);
1517 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
1519 extern void PopContext(struct Context * ctx);
1521 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
1523 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassProperty;
1525 struct __ecereNameSpace__ecere__com__ClassProperty
1528 struct __ecereNameSpace__ecere__com__ClassProperty * parent;
1529 struct __ecereNameSpace__ecere__com__ClassProperty * left;
1530 struct __ecereNameSpace__ecere__com__ClassProperty * right;
1532 void (* Set)(struct __ecereNameSpace__ecere__com__Class *, long long);
1533 long long (* Get)(struct __ecereNameSpace__ecere__com__Class *);
1534 char * dataTypeString;
1535 struct Type * dataType;
1536 unsigned int constant;
1537 } __attribute__ ((gcc_struct));
1539 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
1541 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
1543 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
1545 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
1547 void RegisterMembersAndProperties(struct __ecereNameSpace__ecere__com__Class * regClass, unsigned int isMember, char * className, struct Statement * statement)
1549 struct __ecereNameSpace__ecere__com__DataMember * dataMember = isMember ? (struct __ecereNameSpace__ecere__com__DataMember *)regClass : (((void *)0));
1550 struct __ecereNameSpace__ecere__com__DataMember * member;
1551 struct __ecereNameSpace__ecere__com__Property * prop;
1552 struct Expression * exp;
1553 struct Statement * stmt;
1554 char dataMemberSize[16];
1555 unsigned int lastOffset = 0;
1557 unsigned int privateMembers = 0x0;
1559 sprintf(dataMemberSize, "%d", (int)sizeof(struct __ecereNameSpace__ecere__com__DataMember *));
1562 for(prop = regClass->conversions.first; prop; prop = prop->next)
1564 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
1567 ListAdd(args, MkExpIdentifier(MkIdentifier(className)));
1568 ListAdd(args, MkExpConstant("0"));
1570 char * string = QMkString(prop->dataTypeString);
1572 ListAdd(args, MkExpString(string));
1573 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
1577 strcpy(name, "__ecereProp_");
1578 FullClassNameCat(name, regClass->fullName, 0x0);
1579 strcat(name, "_Set_");
1580 FullClassNameCat(name, prop->name, 0x1);
1581 MangleClassName(name);
1582 ListAdd(args, MkExpIdentifier(MkIdentifier(name)));
1585 ListAdd(args, MkExpConstant("0"));
1588 strcpy(name, "__ecereProp_");
1589 FullClassNameCat(name, regClass->fullName, 0x0);
1590 strcat(name, "_Get_");
1591 FullClassNameCat(name, prop->name, 0x1);
1592 MangleClassName(name);
1593 ListAdd(args, MkExpIdentifier(MkIdentifier(name)));
1596 ListAdd(args, MkExpConstant("0"));
1597 switch(prop->memberAccess)
1600 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
1603 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
1607 ListAdd(args, MkExpIdentifier(MkIdentifier("publicAccess")));
1610 strcpy(name, "__ecereProp_");
1611 FullClassNameCat(name, regClass->fullName, 0x0);
1613 FullClassNameCat(name, prop->name, 0x1);
1614 MangleClassName(name);
1615 stmt = MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(name)), '=', MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddProperty")), args))));
1616 ListAdd(registerModuleBody->compound.statements, stmt);
1619 for(member = isMember ? dataMember->members.first : regClass->membersAndProperties.first; member; member = member->next)
1621 if(member->isProperty)
1623 prop = (struct __ecereNameSpace__ecere__com__Property *)member;
1625 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
1626 char name[1024], nameM[1024];
1627 char * string = QMkString(prop->name);
1629 ListAdd(args, MkExpIdentifier(MkIdentifier(className)));
1630 ListAdd(args, MkExpString(string));
1631 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
1633 char * string = QMkString(prop->dataTypeString);
1635 ListAdd(args, MkExpString(string));
1636 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
1640 strcpy(name, "__ecereProp_");
1641 FullClassNameCat(name, regClass->fullName, 0x0);
1642 strcat(name, "_Set_");
1643 FullClassNameCat(name, prop->name, 0x1);
1644 MangleClassName(name);
1645 ListAdd(args, MkExpIdentifier(MkIdentifier(name)));
1648 ListAdd(args, MkExpConstant("0"));
1651 strcpy(name, "__ecereProp_");
1652 FullClassNameCat(name, regClass->fullName, 0x0);
1653 strcat(name, "_Get_");
1654 FullClassNameCat(name, prop->name, 0x1);
1655 MangleClassName(name);
1656 ListAdd(args, MkExpIdentifier(MkIdentifier(name)));
1659 ListAdd(args, MkExpConstant("0"));
1660 switch(prop->memberAccess)
1663 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
1666 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
1670 ListAdd(args, MkExpIdentifier(MkIdentifier("publicAccess")));
1673 strcpy(name, "__ecereProp_");
1674 FullClassNameCat(name, regClass->fullName, 0x0);
1676 FullClassNameCat(name, prop->name, 0x1);
1677 MangleClassName(name);
1678 strcpy(nameM, "__ecerePropM_");
1679 FullClassNameCat(nameM, regClass->fullName, 0x0);
1681 FullClassNameCat(nameM, prop->name, 0x1);
1682 MangleClassName(nameM);
1683 if(prop->dataTypeString)
1685 stmt = MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(nameM)), '=', MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddProperty")), args))));
1689 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddProperty")), args)));
1691 ListAdd(registerModuleBody->compound.statements, stmt);
1696 strcpy(name, "__ecereProp_");
1697 FullClassNameCat(name, regClass->fullName, 0x1);
1698 strcat(name, "_IsSet_");
1699 FullClassNameCat(name, prop->name, 0x0);
1700 MangleClassName(name);
1701 stmt = MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier(nameM)), MkIdentifier("IsSet")), '=', MkExpCast(MkTypeName(MkListOne(MkSpecifier(VOID)), MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), (((void *)0)))), MkExpIdentifier(MkIdentifier(name))))));
1702 ListAdd(registerModuleBody->compound.statements, stmt);
1704 if(prop->symbol && ((struct Symbol *)prop->symbol)->propCategory)
1706 stmt = MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier(nameM)), MkIdentifier("category")), '=', CopyExpression(((struct Symbol *)prop->symbol)->propCategory))));
1707 ListAdd(registerModuleBody->compound.statements, stmt);
1709 if(prop->dataTypeString)
1711 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
1713 ListAdd(list, MkExpOp(MkExpIdentifier(MkIdentifier(name)), '=', MkExpIdentifier(MkIdentifier(nameM))));
1714 ListAdd(list, MkExpOp(MkExpIdentifier(MkIdentifier(nameM)), '=', MkExpCast(MkTypeName(MkListOne(MkSpecifier(VOID)), MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), (((void *)0)))), MkExpConstant("0"))));
1715 stmt = MkIfStmt(MkListOne(MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier("module")), MkIdentifier("application")), EQ_OP, MkExpMember(MkExpIdentifier(MkIdentifier("__thisModule")), MkIdentifier("application")))), MkExpressionStmt(list), (((void *)0)));
1716 ListAdd(registerModuleBody->compound.statements, stmt);
1717 stmt = MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(nameM)), '=', MkExpCast(MkTypeName(MkListOne(MkSpecifier(VOID)), MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), (((void *)0)))), MkExpConstant("0")))));
1718 ListAdd(unregisterModuleBody->compound.statements, stmt);
1722 else if(member->type == 0 && !isMember && regClass->type == 2)
1724 struct __ecereNameSpace__ecere__com__BitMember * bitMember = (struct __ecereNameSpace__ecere__com__BitMember *)member;
1725 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
1727 ListAdd(args, MkExpIdentifier(MkIdentifier(className)));
1729 char * string = QMkString(bitMember->name);
1731 ListAdd(args, MkExpString(string));
1732 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
1735 char * string = QMkString(bitMember->dataTypeString);
1737 ListAdd(args, MkExpString(string));
1738 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
1743 sprintf(string, "%d", bitMember->size);
1744 ListAdd(args, (exp = MkExpConstant(string)));
1749 sprintf(string, "%d", bitMember->pos);
1750 ListAdd(args, (exp = MkExpConstant(string)));
1752 switch(member->memberAccess)
1755 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
1758 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
1762 ListAdd(args, MkExpIdentifier(MkIdentifier("publicAccess")));
1765 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddBitMember")), args)));
1766 ListAdd(statement->compound.statements, stmt);
1768 else if(member->memberAccess == 1 || (member->type == 0 && !member->dataTypeString))
1770 struct __ecereNameSpace__ecere__sys__OldList * args;
1774 unsigned int offset = member->offset - lastOffset;
1777 ListAdd(args, MkExpIdentifier(MkIdentifier(className)));
1781 sprintf(string, "\"__ecerePrivateData%d\"", privateID++);
1782 ListAdd(args, MkExpString(string));
1787 sprintf(string, "\"byte[%d]\"", offset);
1788 ListAdd(args, MkExpString(string));
1793 sprintf(string, "%d", offset);
1794 ListAdd(args, (exp = MkExpConstant(string)));
1796 ListAdd(args, (exp = MkExpConstant("1")));
1797 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
1798 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier(isMember ? "eMember_AddDataMember" : "eClass_AddDataMember")), args)));
1799 ListAdd(statement->compound.statements, stmt);
1800 privateMembers = 0x0;
1802 if(member->type == 0)
1804 if(!member->dataType)
1805 member->dataType = ProcessTypeString(member->dataTypeString, 0x0);
1806 ComputeTypeSize(member->dataType);
1808 ListAdd(args, MkExpIdentifier(MkIdentifier(className)));
1810 char * string = QMkString(member->name);
1812 ListAdd(args, MkExpString(string));
1813 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
1816 char * string = QMkString(member->dataTypeString);
1818 ListAdd(args, MkExpString(string));
1819 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
1824 sprintf(string, "%d", member->dataType->size);
1825 ListAdd(args, (exp = MkExpConstant(string)));
1830 sprintf(string, "%d", member->dataType->alignment);
1831 ListAdd(args, (exp = MkExpConstant(string)));
1833 switch(member->memberAccess)
1836 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
1839 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
1843 ListAdd(args, MkExpIdentifier(MkIdentifier("publicAccess")));
1846 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier(isMember ? "eMember_AddDataMember" : "eClass_AddDataMember")), args)));
1847 ListAdd(statement->compound.statements, stmt);
1848 lastOffset = member->offset + member->dataType->size;
1852 static int memberCount = 0;
1853 struct Context * context;
1854 struct Statement * compound;
1855 char memberName[256];
1857 sprintf(memberName, "dataMember%d", memberCount);
1859 curContext = statement->compound.context;
1860 context = PushContext();
1861 args = MkListOne(MkExpIdentifier(MkIdentifier((member->type == 1) ? "unionMember" : "structMember")));
1862 switch(member->memberAccess)
1865 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
1868 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
1872 ListAdd(args, MkExpIdentifier(MkIdentifier("publicAccess")));
1875 compound = MkCompoundStmt(MkListOne(MkDeclaration(MkListOne(MkSpecifierName("DataMember")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(memberName)), MkInitializerAssignment(MkExpCall(MkExpIdentifier(MkIdentifier("eMember_New")), args)))))), MkList());
1876 compound->compound.context = context;
1878 ListAdd(args, MkExpIdentifier(MkIdentifier(className)));
1879 ListAdd(args, MkExpIdentifier(MkIdentifier(memberName)));
1880 RegisterMembersAndProperties((struct __ecereNameSpace__ecere__com__Class *)member, 0x1, memberName, compound);
1882 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eMember_AddMember")), args)));
1884 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddMember")), args)));
1885 ListAdd(compound->compound.statements, stmt);
1886 PopContext(context);
1887 ListAdd(statement->compound.statements, compound);
1889 lastOffset = member->offset + member->memberOffset;
1893 privateMembers = 0x1;
1897 struct __ecereNameSpace__ecere__com__ClassProperty * classProperty;
1899 for(prop = regClass->membersAndProperties.first; prop; prop = prop->next)
1901 if(prop->isProperty && prop->isWatchable)
1903 struct __ecereNameSpace__ecere__sys__OldList * args;
1904 char name[1024], nameM[1024];
1906 strcpy(name, "__ecereProp_");
1907 FullClassNameCat(name, regClass->fullName, 0x1);
1909 FullClassNameCat(name, prop->name, 0x0);
1910 MangleClassName(name);
1911 strcpy(nameM, "__ecerePropM_");
1912 FullClassNameCat(nameM, regClass->fullName, 0x1);
1914 FullClassNameCat(nameM, prop->name, 0x0);
1915 MangleClassName(nameM);
1916 args = MkListOne(MkExpCondition(MkExpIdentifier(MkIdentifier(nameM)), MkListOne(MkExpIdentifier(MkIdentifier(nameM))), MkExpIdentifier(MkIdentifier(name))));
1917 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eProperty_Watchable")), args)));
1918 ListAdd(registerModuleBody->compound.statements, stmt);
1921 for(classProperty = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(®Class->classProperties); classProperty; classProperty = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)classProperty)))
1923 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
1925 char * string = QMkString(classProperty->name);
1927 ListAdd(args, MkExpIdentifier(MkIdentifier(className)));
1928 ListAdd(args, MkExpString(string));
1929 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
1931 char * string = QMkString(classProperty->dataTypeString);
1933 ListAdd(args, MkExpString(string));
1934 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
1936 if(classProperty->Set)
1938 strcpy(name, "__ecereClassProp_");
1939 FullClassNameCat(name, regClass->fullName, 0x1);
1940 strcat(name, "_Set_");
1941 strcat(name, classProperty->name);
1942 MangleClassName(name);
1943 ListAdd(args, MkExpIdentifier(MkIdentifier(name)));
1946 ListAdd(args, MkExpConstant("0"));
1947 if(classProperty->Get)
1949 strcpy(name, "__ecereClassProp_");
1950 FullClassNameCat(name, regClass->fullName, 0x1);
1951 strcat(name, "_Get_");
1952 strcat(name, classProperty->name);
1953 MangleClassName(name);
1954 ListAdd(args, MkExpIdentifier(MkIdentifier(name)));
1957 ListAdd(args, MkExpConstant("0"));
1958 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddClassProperty")), args)));
1959 ListAdd(registerModuleBody->compound.statements, stmt);
1964 extern struct External * curExternal;
1966 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
1968 struct __ecereNameSpace__ecere__com__NameSpace
1971 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
1972 struct __ecereNameSpace__ecere__com__NameSpace * left;
1973 struct __ecereNameSpace__ecere__com__NameSpace * right;
1975 struct __ecereNameSpace__ecere__com__NameSpace * parent;
1976 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1977 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1978 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1979 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1980 } __attribute__ ((gcc_struct));
1982 void GetNameSpaceString(struct __ecereNameSpace__ecere__com__NameSpace * ns, char * string)
1985 GetNameSpaceString(ns->parent, string);
1988 strcat(string, ns->name);
1989 strcat(string, "::");
1993 extern unsigned int parsingType;
1995 extern void ProcessExpressionType(struct Expression * exp);
1997 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
1999 struct __ecereNameSpace__ecere__sys__NamedLink
2001 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
2002 struct __ecereNameSpace__ecere__sys__NamedLink * next;
2005 } __attribute__ ((gcc_struct));
2007 extern int strcmp(const char * , const char * );
2009 extern void FreeExpContents(struct Expression * exp);
2011 extern char * PrintUInt(uint64 result);
2013 extern void ComputeExpression(struct Expression * exp);
2015 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_OpTable;
2019 unsigned int (* Add)(struct Expression *, struct Operand *, struct Operand *);
2020 unsigned int (* Sub)(struct Expression *, struct Operand *, struct Operand *);
2021 unsigned int (* Mul)(struct Expression *, struct Operand *, struct Operand *);
2022 unsigned int (* Div)(struct Expression *, struct Operand *, struct Operand *);
2023 unsigned int (* Mod)(struct Expression *, struct Operand *, struct Operand *);
2024 unsigned int (* Neg)(struct Expression *, struct Operand *);
2025 unsigned int (* Inc)(struct Expression *, struct Operand *);
2026 unsigned int (* Dec)(struct Expression *, struct Operand *);
2027 unsigned int (* Asign)(struct Expression *, struct Operand *, struct Operand *);
2028 unsigned int (* AddAsign)(struct Expression *, struct Operand *, struct Operand *);
2029 unsigned int (* SubAsign)(struct Expression *, struct Operand *, struct Operand *);
2030 unsigned int (* MulAsign)(struct Expression *, struct Operand *, struct Operand *);
2031 unsigned int (* DivAsign)(struct Expression *, struct Operand *, struct Operand *);
2032 unsigned int (* ModAsign)(struct Expression *, struct Operand *, struct Operand *);
2033 unsigned int (* BitAnd)(struct Expression *, struct Operand *, struct Operand *);
2034 unsigned int (* BitOr)(struct Expression *, struct Operand *, struct Operand *);
2035 unsigned int (* BitXor)(struct Expression *, struct Operand *, struct Operand *);
2036 unsigned int (* LShift)(struct Expression *, struct Operand *, struct Operand *);
2037 unsigned int (* RShift)(struct Expression *, struct Operand *, struct Operand *);
2038 unsigned int (* BitNot)(struct Expression *, struct Operand *);
2039 unsigned int (* AndAsign)(struct Expression *, struct Operand *, struct Operand *);
2040 unsigned int (* OrAsign)(struct Expression *, struct Operand *, struct Operand *);
2041 unsigned int (* XorAsign)(struct Expression *, struct Operand *, struct Operand *);
2042 unsigned int (* LShiftAsign)(struct Expression *, struct Operand *, struct Operand *);
2043 unsigned int (* RShiftAsign)(struct Expression *, struct Operand *, struct Operand *);
2044 unsigned int (* Not)(struct Expression *, struct Operand *);
2045 unsigned int (* Equ)(struct Expression *, struct Operand *, struct Operand *);
2046 unsigned int (* Nqu)(struct Expression *, struct Operand *, struct Operand *);
2047 unsigned int (* And)(struct Expression *, struct Operand *, struct Operand *);
2048 unsigned int (* Or)(struct Expression *, struct Operand *, struct Operand *);
2049 unsigned int (* Grt)(struct Expression *, struct Operand *, struct Operand *);
2050 unsigned int (* Sma)(struct Expression *, struct Operand *, struct Operand *);
2051 unsigned int (* GrtEqu)(struct Expression *, struct Operand *, struct Operand *);
2052 unsigned int (* SmaEqu)(struct Expression *, struct Operand *, struct Operand *);
2053 unsigned int (* Cond)(struct Expression *, struct Operand *, struct Operand *, struct Operand *);
2054 } __attribute__ ((gcc_struct));
2056 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Operand;
2062 unsigned int ptrSize;
2075 } __attribute__ ((gcc_struct));
2077 } __attribute__ ((gcc_struct));
2079 extern struct Operand GetOperand(struct Expression * exp);
2081 extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value);
2083 extern int __ecereNameSpace__ecere__com__eEnum_AddValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string);
2085 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
2087 struct __ecereNameSpace__ecere__sys__OldLink
2089 struct __ecereNameSpace__ecere__sys__OldLink * prev;
2090 struct __ecereNameSpace__ecere__sys__OldLink * next;
2092 } __attribute__ ((gcc_struct));
2094 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
2096 struct __ecereNameSpace__ecere__com__EnumClassData
2098 struct __ecereNameSpace__ecere__sys__OldList values;
2100 } __attribute__ ((gcc_struct));
2102 extern struct ClassFunction * MkClassFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Specifier * _class, struct Declarator * decl, struct __ecereNameSpace__ecere__sys__OldList * declList);
2104 extern void ProcessClassFunctionBody(struct ClassFunction * func, struct Statement * body);
2106 extern struct External * MkExternalDeclaration(struct Declaration * declaration);
2108 extern struct ClassDef * MkClassDefFunction(struct ClassFunction * function);
2110 extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2112 extern struct __ecereNameSpace__ecere__com__Instance * privateModule;
2114 extern void FreePropertyWatch(struct PropertyWatch * watcher);
2116 extern char * sourceFile;
2118 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
2120 extern struct Type * ProcessType(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl);
2122 extern void PrintType(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
2124 extern struct Expression * MkExpTypeSize(struct TypeName * typeName);
2126 extern struct Specifier * MkStructOrUnion(int type, struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * definitions);
2128 extern unsigned int DummyMethod(void);
2130 extern void DeclareMethod(struct __ecereNameSpace__ecere__com__Method * method, char * name);
2132 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
2134 extern char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl);
2136 extern size_t strlen(const char * );
2138 extern struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer);
2140 extern char * PrintUInt64(uint64 result);
2142 extern struct Expression * MkExpInstance(struct Instantiation * inst);
2144 extern struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
2146 extern struct MembersInit * MkMembersInitList(struct __ecereNameSpace__ecere__sys__OldList * dataMembers);
2148 static struct __ecereNameSpace__ecere__com__Instance * classPropValues;
2150 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassPropertyValue;
2152 struct ClassPropertyValue
2154 struct __ecereNameSpace__ecere__com__Class * regClass;
2155 struct Identifier * id;
2156 struct Expression * exp;
2157 } __attribute__ ((gcc_struct));
2159 int __ecereVMethodID_class_OnGetString;
2161 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType;
2163 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Add;
2165 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__List;
2167 static void ProcessClass(int classType, struct __ecereNameSpace__ecere__sys__OldList * definitions, struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs, struct __ecereNameSpace__ecere__sys__OldList * enumValues, struct __ecereNameSpace__ecere__sys__OldList * defs, struct External * external, int declMode)
2169 struct ClassDef * def;
2170 struct __ecereNameSpace__ecere__com__Class * regClass = symbol->registered;
2174 classType = regClass->type;
2175 if(classType == 4 && enumValues && (inCompiler || !buildingECERECOMModule))
2177 struct Enumerator * e;
2179 for(e = enumValues->first; e; e = e->next)
2183 struct Type * destType = (destType = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type), destType->kind = 3, destType->refCount = 1, destType);
2185 e->exp->destType = destType;
2187 ProcessExpressionType(e->exp);
2189 if(!e->exp->expType)
2192 destType->_class = symbol;
2193 ProcessExpressionType(e->exp);
2195 if(e->exp->type == 0 && e->exp->expType && e->exp->identifier && e->exp->identifier->string && e->exp->expType->kind == 15)
2197 struct __ecereNameSpace__ecere__sys__NamedLink * l;
2198 char * string = e->exp->identifier->string;
2200 for(l = e->exp->expType->members.first; l; l = l->next)
2202 if(!strcmp(l->name, string))
2206 FreeExpContents(e->exp);
2208 e->exp->constant = PrintUInt((unsigned int)l->data);
2209 FreeType(e->exp->expType);
2210 e->exp->expType = ProcessTypeString("uint", 0x0);
2217 ComputeExpression(e->exp);
2218 if(e->exp->isConstant && e->exp->type == 2)
2220 struct Operand op = GetOperand(e->exp);
2234 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(regClass, e->id->string, value);
2237 __ecereNameSpace__ecere__com__eEnum_AddValue(regClass, e->id->string);
2240 __ecereNameSpace__ecere__com__eEnum_AddValue(regClass, e->id->string);
2243 struct __ecereNameSpace__ecere__com__EnumClassData * baseData = regClass->data;
2244 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
2246 for(deriv = regClass->derivatives.first; deriv; deriv = deriv->next)
2248 struct __ecereNameSpace__ecere__com__Class * c = deriv->data;
2250 if(c && c->type == 4)
2252 struct __ecereNameSpace__ecere__com__EnumClassData * data = c->data;
2254 data->largest = baseData->largest;
2259 if(definitions != (((void *)0)))
2263 for(def = definitions->first; def; def = def->next)
2265 if(def->type == 4 && def->propertyWatch)
2267 struct PropertyWatch * propWatch = def->propertyWatch;
2268 struct ClassFunction * func;
2269 char watcherName[1024];
2270 struct Identifier * propID;
2271 struct Statement * stmt = MkExpressionStmt(MkList());
2272 struct Declarator * decl;
2274 sprintf(watcherName, "__ecerePropertySelfWatcher_%d", propWatcherID++);
2275 for(propID = (*propWatch->properties).first; propID; propID = propID->next)
2277 strcat(watcherName, "_");
2278 strcat(watcherName, propID->string);
2280 decl = MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(watcherName)), MkListOne(MkTypeName(MkListOne(MkSpecifier(VOID)), (((void *)0)))));
2281 func = MkClassFunction(MkListOne(MkSpecifier(VOID)), (((void *)0)), decl, (((void *)0)));
2282 ProcessClassFunctionBody(func, propWatch->compound);
2283 decl->symbol = __extension__ ({
2284 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
2286 __ecereInstance1->id = symbol->id, __ecereInstance1->idCode = symbol->idCode, __ecereInstance1;
2288 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), decl->symbol);
2289 func->id = symbol->id;
2290 func->idCode = symbol->idCode;
2291 func->dontMangle = 0x1;
2293 struct External * externalDecl = MkExternalDeclaration((((void *)0)));
2294 struct Declaration * decl;
2295 struct __ecereNameSpace__ecere__sys__OldList * specifiers = MkList();
2297 ListAdd(specifiers, MkSpecifier(STATIC));
2298 ListAdd(specifiers, MkSpecifier(VOID));
2299 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*ast), curExternal->prev, externalDecl);
2300 decl = MkDeclaration(specifiers, MkListOne(MkInitDeclarator(MkDeclaratorFunction(MkDeclaratorIdentifier(MkIdentifier(watcherName)), MkListOne(MkTypeName(MkListOne(MkSpecifierName(regClass->fullName)), (((void *)0))))), (((void *)0)))));
2301 externalDecl->declaration = decl;
2302 if(decl->symbol && !decl->symbol->methodExternal)
2304 decl->symbol->methodExternal = externalDecl;
2305 decl->symbol->id = symbol->id;
2306 decl->symbol->idCode = symbol->idCode;
2309 propWatch->compound = (((void *)0));
2310 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(definitions, (((void *)0)), MkClassDefFunction(func));
2312 stmt->expressions = MkList();
2313 for(propID = (*propWatch->properties).first; propID; propID = propID->next)
2315 struct __ecereNameSpace__ecere__com__Property * prop = __ecereNameSpace__ecere__com__eClass_FindProperty(regClass, propID->string, privateModule);
2319 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
2321 ListAdd(args, MkExpIdentifier(MkIdentifier("class")));
2322 ListAdd(args, MkExpString(QMkString(propID->string)));
2323 ListAdd(args, MkExpIdentifier(MkIdentifier(watcherName)));
2324 ListAdd(stmt->expressions, MkExpCall(MkExpIdentifier(MkIdentifier("eProperty_SelfWatch")), args));
2327 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Property %s not found in class %s\n", (((void *)0))), propID->string, regClass->fullName);
2329 FreePropertyWatch(def->propertyWatch);
2330 def->propertyWatch = (struct PropertyWatch *)stmt;
2334 for(def = definitions->first; def; def = def->next)
2338 ProcessClassFunction(regClass, def->function, defs, external->prev, declMode == 3);
2342 if(inCompiler && symbol->id != (((int)0x7fffffff)) && regClass)
2344 struct Statement * stmt;
2345 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
2346 struct __ecereNameSpace__ecere__com__Method * method;
2347 struct Expression * exp;
2348 char * registerFunction = (((void *)0));
2349 int inheritanceAccess = 1;
2351 CreateRegisterModuleBody();
2352 curExternal = registerModuleExternal;
2353 switch(regClass->type)
2356 ListAdd(args, MkExpIdentifier(MkIdentifier("structClass")));
2359 ListAdd(args, MkExpIdentifier(MkIdentifier("bitClass")));
2362 ListAdd(args, MkExpIdentifier(MkIdentifier("enumClass")));
2365 ListAdd(args, MkExpIdentifier(MkIdentifier("noHeadClass")));
2368 ListAdd(args, MkExpIdentifier(MkIdentifier("unitClass")));
2371 ListAdd(args, MkExpIdentifier(MkIdentifier("normalClass")));
2375 char nameSpace[1024] = "";
2376 char className[1024] = "";
2379 GetNameSpaceString(regClass->nameSpace, nameSpace);
2382 __ecereNameSpace__ecere__sys__GetLastDirectory(sourceFile, className);
2383 __ecereNameSpace__ecere__sys__ChangeCh(className, '.', '_');
2384 strcat(className, "}");
2386 strcat(className, nameSpace);
2387 strcat(className, regClass->name);
2388 string = QMkString(className);
2389 ListAdd(args, MkExpString(string));
2390 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2392 if(baseSpecs != (((void *)0)))
2394 struct Type * baseType = ProcessType(baseSpecs, (((void *)0)));
2396 if(baseType->kind != 9 && baseType->kind != 10)
2398 char baseName[1024] = "";
2401 if(baseType->kind == 8 && baseType->_class && baseType->_class->isStatic)
2403 __ecereNameSpace__ecere__sys__GetLastDirectory(sourceFile, baseName);
2404 __ecereNameSpace__ecere__sys__ChangeCh(baseName, '.', '_');
2405 strcat(baseName, "}");
2406 strcat(baseName, baseType->_class->string);
2409 PrintType(baseType, baseName, 0x0, 0x1);
2410 string = QMkString(baseName);
2411 ListAdd(args, MkExpString(string));
2412 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2415 ListAdd(args, MkExpConstant("0"));
2417 if(((struct Specifier *)baseSpecs->first)->type == 0 && ((struct Specifier *)baseSpecs->first)->specifier == PRIVATE)
2418 inheritanceAccess = 2;
2421 ListAdd(args, MkExpConstant("0"));
2422 if(regClass->type == 1 || regClass->type == 0 || regClass->type == 5)
2424 struct __ecereNameSpace__ecere__com__DataMember * member = (((void *)0));
2427 struct __ecereNameSpace__ecere__com__Class * base;
2429 for(base = regClass->base; base && base->type != 1000; base = base->next)
2431 for(member = base->membersAndProperties.first; member; member = member->next)
2432 if(!member->isProperty)
2438 if(regClass->type == 1 && symbol->declaredStruct && member)
2440 char baseStructName[1024];
2442 baseStructName[0] = (char)0;
2443 strcpy(baseStructName, (regClass->base->templateClass ? regClass->base->templateClass : regClass->base)->fullName);
2444 ListAdd(args, MkExpOp(MkExpTypeSize(MkTypeName(MkListOne(MkStructOrUnion(3, MkIdentifier(symbol->structName), (((void *)0)))), (((void *)0)))), '-', MkExpTypeSize(MkTypeName(MkListOne(MkStructOrUnion(3, MkIdentifier(baseStructName), (((void *)0)))), (((void *)0))))));
2447 ListAdd(args, symbol->declaredStruct ? MkExpTypeSize(MkTypeName(MkListOne(MkStructOrUnion(3, MkIdentifier(symbol->structName), (((void *)0)))), (((void *)0)))) : MkExpConstant("0"));
2451 ListAdd(args, MkExpConstant("0"));
2454 char classDataStructName[1024];
2456 strcpy(classDataStructName, "__ecereClassData_");
2457 FullClassNameCat(classDataStructName, symbol->string, 0x0);
2458 ListAdd(args, symbol->classData ? MkExpTypeSize(MkTypeName(MkListOne(MkStructOrUnion(3, MkIdentifier(classDataStructName), (((void *)0)))), (((void *)0)))) : MkExpConstant("0"));
2460 if(regClass->type == 0 || regClass->type == 5)
2462 ListAdd(args, symbol->needConstructor ? MkExpIdentifier(MkIdentifier(symbol->constructorName)) : MkExpConstant("0"));
2463 ListAdd(args, symbol->needDestructor ? MkExpIdentifier(MkIdentifier(symbol->destructorName)) : MkExpConstant("0"));
2467 ListAdd(args, MkExpConstant("0"));
2468 ListAdd(args, MkExpConstant("0"));
2470 ListAdd(args, MkExpIdentifier(MkIdentifier("module")));
2474 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
2477 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
2481 ListAdd(args, MkExpIdentifier(MkIdentifier(buildingECERECOMModule ? "baseSystemAccess" : "publicAccess")));
2484 switch(inheritanceAccess)
2487 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
2491 ListAdd(args, MkExpIdentifier(MkIdentifier("publicAccess")));
2494 registerFunction = "eSystem_RegisterClass";
2495 stmt = MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("class")), '=', MkExpCall((exp = MkExpIdentifier(MkIdentifier(registerFunction))), args))));
2496 ListAdd(registerModuleBody->compound.statements, stmt);
2497 stmt = MkIfStmt(MkListOne(MkExpOp(MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier("module")), MkIdentifier("application")), EQ_OP, MkExpMember(MkExpIdentifier(MkIdentifier("__thisModule")), MkIdentifier("application"))), AND_OP, MkExpIdentifier(MkIdentifier("class")))), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(symbol->className)), '=', MkExpIdentifier(MkIdentifier("class"))))), (((void *)0)));
2498 ListAdd(registerModuleBody->compound.statements, stmt);
2499 if(external && external->type == 2 && external->_class->deleteWatchable)
2501 args = MkListOne(MkExpIdentifier(MkIdentifier("class")));
2502 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eClass_DestructionWatchable")), args)));
2503 ListAdd(registerModuleBody->compound.statements, stmt);
2507 struct __ecereNameSpace__ecere__com__Class * base = regClass->base;
2510 for(c = 0; c < base->vTblSize; c++)
2512 struct Symbol * method = (struct Symbol *)regClass->_vTbl[c];
2514 if((void *)method != DummyMethod && base->_vTbl[c] != (void *)method && method->methodExternal)
2516 struct External * external = method->methodExternal;
2517 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
2518 struct Identifier * id = external->function ? GetDeclId(external->function->declarator) : (((void *)0));
2520 ListAdd(args, MkExpIdentifier(MkIdentifier("class")));
2522 char * string = QMkString(method->method->name);
2524 ListAdd(args, MkExpString(string));
2525 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2527 ListAdd(args, MkExpConstant("0"));
2528 ListAdd(args, (exp = MkExpIdentifier(MkIdentifier(id->string))));
2529 ListAdd(args, MkExpIdentifier(MkIdentifier("publicAccess")));
2530 exp->expType = __extension__ ({
2531 struct Type * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
2533 __ecereInstance1->refCount = 1, __ecereInstance1;
2535 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddMethod")), args)));
2536 ListAdd(registerModuleBody->compound.statements, stmt);
2543 for(c = regClass->base ? regClass->base->vTblSize : 0; c < regClass->vTblSize; c++)
2545 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)))
2547 if(method->type == 1 && method->_class == regClass && method->vid == c)
2550 struct Expression * exp;
2551 struct External * external = method->symbol ? ((struct Symbol *)method->symbol)->methodCodeExternal : (((void *)0));
2552 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
2553 struct Identifier * id = (external && external->function) ? GetDeclId(external->function->declarator) : (((void *)0));
2555 ListAdd(args, MkExpIdentifier(MkIdentifier("class")));
2557 char * string = QMkString(method->name);
2559 ListAdd(args, MkExpString(string));
2560 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2563 char * string = QMkString(method->dataTypeString);
2565 ListAdd(args, MkExpString(string));
2566 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2568 if(id && external->function->body)
2570 ListAdd(args, (exp = MkExpIdentifier(MkIdentifier(id->string))));
2571 exp->expType = __extension__ ({
2572 struct Type * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
2574 __ecereInstance1->refCount = 1, __ecereInstance1;
2579 ListAdd(args, (exp = MkExpConstant("0")));
2581 switch(method->memberAccess)
2584 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
2587 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
2591 ListAdd(args, MkExpIdentifier(MkIdentifier("publicAccess")));
2594 strcpy(name, "__ecereVMethodID_");
2595 FullClassNameCat(name, method->_class->fullName, 0x0);
2597 strcat(name, method->name);
2598 exp = MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddVirtualMethod")), args);
2599 stmt = MkExpressionStmt(MkListOne(exp));
2600 DeclareMethod(method, name);
2601 ListAdd(registerModuleBody->compound.statements, stmt);
2606 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)))
2608 if(method->type == 1 && method->_class == regClass)
2610 else if(method->memberAccess == 1 || !method->dataTypeString)
2612 struct External * external = method->symbol ? ((struct Symbol *)method->symbol)->methodCodeExternal : (((void *)0));
2613 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
2614 struct Identifier * id = (external && external->function) ? GetDeclId(external->function->declarator) : (((void *)0));
2616 ListAdd(args, MkExpIdentifier(MkIdentifier("class")));
2618 char * string = QMkString(method->name);
2620 ListAdd(args, MkExpString(string));
2621 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2624 char * string = QMkString(method->dataTypeString);
2626 ListAdd(args, MkExpString(string));
2627 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2629 if(id && external->function->body)
2631 ListAdd(args, (exp = MkExpIdentifier(MkIdentifier(id->string))));
2632 exp->expType = __extension__ ({
2633 struct Type * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
2635 __ecereInstance1->refCount = 1, __ecereInstance1;
2640 ListAdd(args, (exp = MkExpConstant("0")));
2642 switch(method->memberAccess)
2645 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
2648 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
2652 ListAdd(args, MkExpIdentifier(MkIdentifier("publicAccess")));
2655 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddMethod")), args)));
2656 ListAdd(registerModuleBody->compound.statements, stmt);
2659 RegisterMembersAndProperties(regClass, 0x0, "class", registerModuleBody);
2662 struct __ecereNameSpace__ecere__sys__NamedLink * value;
2663 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, "enum");
2664 struct __ecereNameSpace__ecere__com__EnumClassData * e = (regClass ? ((void *)(((char *)regClass->data) + enumClass->offsetClass)) : (((void *)0)));
2666 for(value = e->values.first; value; value = value->next)
2668 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
2670 ListAdd(args, MkExpIdentifier(MkIdentifier("class")));
2672 char * string = QMkString(value->name);
2674 ListAdd(args, MkExpString(string));
2675 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2680 sprintf(temp, "%d", (int)value->data);
2681 ListAdd(args, MkExpConstant(temp));
2683 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eEnum_AddFixedValue")), args)));
2684 ListAdd(registerModuleBody->compound.statements, stmt);
2687 if(symbol->templateParams)
2689 struct TemplateParameter * param;
2691 for(param = (*symbol->templateParams).first; param; param = param->next)
2693 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
2695 ListAdd(args, MkExpIdentifier(MkIdentifier("class")));
2697 char * string = QMkString(param->identifier->string);
2699 ListAdd(args, MkExpString(string));
2700 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2702 ListAdd(args, MkExpIdentifier(MkIdentifier((param->type == 0) ? "type" : ((param->type == 1) ? "identifier" : "expression"))));
2708 char * typeString = param->dataType ? StringFromSpecDecl(param->dataType->specifiers, param->dataType->decl) : (((void *)0));
2709 char * string = QMkString(typeString);
2711 ListAdd(args, MkExpString(string));
2712 (__ecereNameSpace__ecere__com__eSystem_Delete(typeString), typeString = 0);
2713 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2718 char memberTypeString[132] = "TemplateMemberType::";
2719 unsigned int needClass = 0x1;
2721 ((char * (*)(struct __ecereNameSpace__ecere__com__Class *, void *, char * tempString, void * fieldData, unsigned int * needClass))__ecereClass___ecereNameSpace__ecere__com__TemplateMemberType->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass___ecereNameSpace__ecere__com__TemplateMemberType, ¶m->memberType, memberTypeString + strlen(memberTypeString), (((void *)0)), &needClass);
2722 ListAdd(args, MkExpCast(MkTypeName(MkListOne(MkSpecifier(VOID)), MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), (((void *)0)))), MkExpIdentifier(MkIdentifier(memberTypeString))));
2726 if(param->defaultArgument)
2728 struct __ecereNameSpace__ecere__sys__OldList * members = MkList();
2734 char * typeString = param->defaultArgument->templateDatatype ? StringFromSpecDecl(param->defaultArgument->templateDatatype->specifiers, param->defaultArgument->templateDatatype->decl) : (((void *)0));
2735 char * string = QMkString(typeString);
2737 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*members), MkMemberInit(MkListOne(MkIdentifier("dataTypeString")), MkInitializerAssignment(MkExpString(string))));
2738 (__ecereNameSpace__ecere__com__eSystem_Delete(typeString), typeString = 0);
2739 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2744 char memberString[1024];
2747 memberString[0] = '\0';
2748 if(param->defaultArgument->identifier->_class)
2750 if(param->defaultArgument->identifier->_class->type == 8)
2751 strcpy(memberString, param->defaultArgument->identifier->_class->templateParameter->identifier->string);
2752 else if(param->defaultArgument->identifier->_class->name)
2753 strcpy(memberString, param->defaultArgument->identifier->_class->name);
2756 strcat(memberString, "::");
2757 strcat(memberString, param->defaultArgument->identifier->string);
2758 string = QMkString(memberString);
2759 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*members), MkMemberInit(MkListOne(MkIdentifier("dataTypeString")), MkInitializerAssignment(MkExpString(string))));
2760 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
2772 struct __ecereNameSpace__ecere__sys__OldList * ids = MkList();
2774 char * string = (((void *)0));
2776 op = GetOperand(param->defaultArgument->expression);
2777 ui64String = PrintUInt64(op.ui64);
2778 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ids), MkIdentifier("expression"));
2779 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ids), MkIdentifier("ui64"));
2780 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*members), MkMemberInit(ids, MkInitializerAssignment(MkExpConstant(ui64String))));
2781 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2782 (__ecereNameSpace__ecere__com__eSystem_Delete(ui64String), ui64String = 0);
2786 ListAdd(args, MkExpInstance(MkInstantiation(MkSpecifierName("ClassTemplateArgument"), (((void *)0)), MkListOne(MkMembersInitList(members)))));
2789 ListAdd(args, MkExpIdentifier(MkIdentifier("null")));
2790 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eClass_AddTemplateParameter")), args)));
2791 ListAdd(registerModuleBody->compound.statements, stmt);
2793 stmt = MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("eClass_DoneAddingTemplateParameters")), MkListOne(MkExpIdentifier(MkIdentifier("class"))))));
2794 ListAdd(registerModuleBody->compound.statements, stmt);
2796 if(definitions != (((void *)0)))
2798 for(def = definitions->first; def; def = def->next)
2800 if(def->type == 4 && def->propertyWatch)
2802 ListAdd(registerModuleBody->compound.statements, (struct Statement *)def->propertyWatch);
2803 def->propertyWatch = (((void *)0));
2805 else if(def->type == 5)
2807 stmt = MkIfStmt(MkListOne(MkExpIdentifier(MkIdentifier("class"))), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier("class")), MkIdentifier("designerClass")), '=', MkExpString(QMkString(def->designer))))), (((void *)0)));
2808 ListAdd(registerModuleBody->compound.statements, stmt);
2810 else if(def->type == 6)
2812 stmt = MkIfStmt(MkListOne(MkExpIdentifier(MkIdentifier("class"))), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier("class")), MkIdentifier("noExpansion")), '=', MkExpConstant("1")))), (((void *)0)));
2813 ListAdd(registerModuleBody->compound.statements, stmt);
2815 else if(def->type == 7)
2817 stmt = MkIfStmt(MkListOne(MkExpIdentifier(MkIdentifier("class"))), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier("class")), MkIdentifier("fixed")), '=', MkExpConstant("1")))), (((void *)0)));
2818 ListAdd(registerModuleBody->compound.statements, stmt);
2820 regClass->fixed = 0x1;
2822 else if(def->type == 8)
2824 stmt = MkIfStmt(MkListOne(MkExpIdentifier(MkIdentifier("class"))), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIdentifier(MkIdentifier("class")), MkIdentifier("defaultProperty")), '=', MkExpString(QMkString(def->defaultProperty->string))))), (((void *)0)));
2825 ListAdd(registerModuleBody->compound.statements, stmt);
2827 else if(def->type == 11)
2829 ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
2830 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = classPropValues;
2832 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2833 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add])(classPropValues, (uint64)(__extension__ ({
2834 struct __ecereNameSpace__ecere__com__Instance * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassPropertyValue);
2836 ((struct ClassPropertyValue *)(((char *)__ecereInstance1 + __ecereClass_ClassPropertyValue->offset)))->regClass = regClass, ((struct ClassPropertyValue *)(((char *)__ecereInstance1 + __ecereClass_ClassPropertyValue->offset)))->id = def->id, ((struct ClassPropertyValue *)(((char *)__ecereInstance1 + __ecereClass_ClassPropertyValue->offset)))->exp = def->initializer->exp, __ecereInstance1;
2838 def->id = (((void *)0));
2839 def->initializer->exp = (((void *)0));
2847 extern void FreeIdentifier(struct Identifier * id);
2849 void __ecereDestructor_ClassPropertyValue(struct __ecereNameSpace__ecere__com__Instance * this)
2851 struct ClassPropertyValue * __ecerePointer_ClassPropertyValue = (struct ClassPropertyValue *)(this ? (((char *)this) + __ecereClass_ClassPropertyValue->offset) : 0);
2854 FreeIdentifier(__ecerePointer_ClassPropertyValue->id);
2858 extern void PrintExpression(struct Expression * exp, char * string);
2860 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
2862 struct __ecereNameSpace__ecere__com__IteratorPointer;
2864 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Iterator;
2866 struct __ecereNameSpace__ecere__com__Iterator
2868 struct __ecereNameSpace__ecere__com__Instance * container;
2869 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
2870 } __attribute__ ((gcc_struct));
2872 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
2874 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next();
2876 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
2878 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
2880 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__Iterator_data;
2882 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Free;
2884 void ProcessClassDefinitions()
2886 struct External * external, * next;
2888 CreateRegisterModuleBody();
2891 for(external = (*ast).first; external; external = next)
2893 next = external->next;
2894 curExternal = external;
2895 if(external->type == 2)
2897 struct ClassDefinition * _class = external->_class;
2899 if(_class->definitions)
2901 ProcessClass(0, _class->definitions, _class->symbol, _class->baseSpecs, (((void *)0)), ast, external, _class->declMode);
2905 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*ast), external);
2906 FreeExternal(external);
2909 else if(external->type == 0)
2911 unsigned int setStaticMethod = 0x0;
2913 if(external->symbol && !external->symbol->type->thisClass && !external->symbol->type->staticMethod)
2915 external->symbol->type->staticMethod = 0x1;
2916 setStaticMethod = 0x1;
2920 struct FunctionDefinition * function = external->function;
2921 struct Statement * stmt;
2922 struct __ecereNameSpace__ecere__sys__OldList * args;
2924 if(!strcmp(function->declarator->symbol->string, "__on_register_module"))
2926 ListAdd(registerModuleBody->compound.statements, function->body);
2927 function->body->compound.context->parent = registerModuleBody->compound.context;
2928 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*ast), external);
2929 function->body = (((void *)0));
2930 FreeExternal(external);
2933 if(function->declMode != 2 && function->declMode != 1)
2936 CreateRegisterModuleBody();
2938 char * string = QMkString(function->declarator->symbol->string);
2940 ListAdd(args, MkExpString(string));
2941 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2945 char type[1024] = "";
2948 function->declarator->symbol->type->staticMethod = 0x0;
2949 PrintType(function->declarator->symbol->type, type, 0x1, 0x1);
2951 function->declarator->symbol->type->staticMethod = 0x1;
2952 string = QMkString(type);
2953 ListAdd(args, MkExpString(string));
2954 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
2957 ListAdd(args, MkExpIdentifier(MkIdentifier(function->declarator->symbol->string)));
2959 ListAdd(args, MkExpIdentifier(MkIdentifier("module")));
2960 switch(function->declMode)
2963 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
2966 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
2970 ListAdd(args, MkExpIdentifier(MkIdentifier(buildingECERECOMModule ? "baseSystemAccess" : "publicAccess")));
2973 stmt = MkExpressionStmt(MkListOne(MkExpCall((MkExpIdentifier(MkIdentifier("eSystem_RegisterFunction"))), args)));
2974 ListAdd(registerModuleBody->compound.statements, stmt);
2977 else if(external->type == 1)
2979 struct Declaration * declaration = external->declaration;
2981 if(external->symbol)
2983 if(external->symbol->type && external->symbol->type->kind == 11 && !external->symbol->type->thisClass)
2984 external->symbol->type->staticMethod = 0x1;
2986 if(external->symbol && declaration->type == 1)
2988 if(declaration->specifiers)
2990 struct Specifier * specifier;
2991 unsigned int removeExternal = 0x0;
2993 for(specifier = (*declaration->specifiers).first; specifier; specifier = specifier->next)
2995 if((specifier->type == 2 || specifier->type == 3 || specifier->type == 4) && specifier->id && specifier->id->string && (declaration->declMode || specifier->baseSpecs || (specifier->type == 2 && specifier->definitions)))
2997 struct Symbol * symbol = FindClass(specifier->id->string);
3003 if(specifier->type == 2)
3007 removeExternal = 0x1;
3008 symbol->ctx = specifier->ctx;
3009 specifier->ctx = (((void *)0));
3010 ProcessClass(classType, specifier->definitions, symbol, specifier->baseSpecs, specifier->list, ast, external, declaration->declMode);
3014 if(inCompiler && removeExternal)
3016 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*ast), external);
3017 FreeExternal(external);
3021 else if(declaration->type == 3)
3023 if(inCompiler && declaration->declMode != 3)
3025 struct Statement * stmt;
3026 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
3028 CreateRegisterModuleBody();
3030 char * string = QMkString(declaration->id->string);
3032 ListAdd(args, MkExpString(string));
3033 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
3037 char type[1024] = "";
3039 PrintExpression(declaration->exp, type);
3040 string = QMkString(type);
3041 ListAdd(args, MkExpString(string));
3042 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
3044 ListAdd(args, MkExpIdentifier(MkIdentifier("module")));
3045 switch(declaration->declMode)
3048 ListAdd(args, MkExpIdentifier(MkIdentifier("staticAccess")));
3051 ListAdd(args, MkExpIdentifier(MkIdentifier("privateAccess")));
3055 ListAdd(args, MkExpIdentifier(MkIdentifier(buildingECERECOMModule ? "baseSystemAccess" : "publicAccess")));
3058 stmt = MkExpressionStmt(MkListOne(MkExpCall((MkExpIdentifier(MkIdentifier("eSystem_RegisterDefine"))), args)));
3059 ListAdd(registerModuleBody->compound.statements, stmt);
3065 struct __ecereNameSpace__ecere__com__Iterator v =
3067 (classPropValues), 0
3070 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&v))
3072 struct __ecereNameSpace__ecere__sys__OldList * findClassArgs = MkList();
3073 struct __ecereNameSpace__ecere__sys__OldList * args = MkList();
3074 struct Statement * compoundStmt;
3076 ListAdd(findClassArgs, MkExpIdentifier(MkIdentifier("module")));
3077 ListAdd(findClassArgs, MkExpString(QMkString(__extension__ ({
3078 char * __ecTemp1 = (((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&v)));
3080 ((struct ClassPropertyValue *)(__ecTemp1 + __ecereClass_ClassPropertyValue->offset));
3081 })->regClass->name)));
3082 ListAdd(args, MkExpIdentifier(MkIdentifier("_class")));
3083 ListAdd(args, MkExpString(QMkString(__extension__ ({
3084 char * __ecTemp1 = (((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&v)));
3086 ((struct ClassPropertyValue *)(__ecTemp1 + __ecereClass_ClassPropertyValue->offset));
3088 ListAdd(args, MkExpCast(MkTypeName(MkListOne(MkSpecifier(INT64)), (((void *)0))), __extension__ ({
3089 char * __ecTemp1 = (((struct __ecereNameSpace__ecere__com__Instance *)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&v)));
3091 ((struct ClassPropertyValue *)(__ecTemp1 + __ecereClass_ClassPropertyValue->offset));
3093 compoundStmt = MkCompoundStmt(MkListOne(MkDeclaration(MkListOne(MkSpecifierName("ecere::com::Class")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("_class")), MkInitializerAssignment(MkExpCall(MkExpIdentifier(MkIdentifier("ecere::com::eSystem_FindClass")), findClassArgs)))))), MkListOne(MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("ecere::com::eClass_SetProperty")), args)))));
3094 compoundStmt->compound.context = __extension__ ({
3095 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
3097 __ecereInstance1->parent = registerModuleBody->compound.context, __ecereInstance1;
3099 ListAdd(registerModuleBody->compound.statements, compoundStmt);
3102 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
3103 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = classPropValues;
3105 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
3106 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free])(classPropValues);
3110 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
3112 struct __ecereNameSpace__ecere__com__GlobalFunction;
3114 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
3116 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char * name, char * baseName, int size, int sizeClass, unsigned int (* Constructor)(void * ), void (* Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
3118 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
3120 struct __ecereNameSpace__ecere__com__Module
3122 struct __ecereNameSpace__ecere__com__Instance * application;
3123 struct __ecereNameSpace__ecere__sys__OldList classes;
3124 struct __ecereNameSpace__ecere__sys__OldList defines;
3125 struct __ecereNameSpace__ecere__sys__OldList functions;
3126 struct __ecereNameSpace__ecere__sys__OldList modules;
3127 struct __ecereNameSpace__ecere__com__Instance * prev;
3128 struct __ecereNameSpace__ecere__com__Instance * next;
3134 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
3135 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
3136 } __attribute__ ((gcc_struct));
3138 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
3140 void __ecereRegisterModule_pass1(struct __ecereNameSpace__ecere__com__Instance * module)
3142 struct __ecereNameSpace__ecere__com__Class * class;
3144 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetBuildingEcereCom", "void SetBuildingEcereCom(bool b)", SetBuildingEcereCom, module, 1);
3145 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetBuildingEcereCom", "bool GetBuildingEcereCom(void)", GetBuildingEcereCom, module, 1);
3146 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetBuildingEcereComModule", "void SetBuildingEcereComModule(bool b)", SetBuildingEcereComModule, module, 1);
3147 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetBuildingEcereComModule", "bool GetBuildingEcereComModule(void)", GetBuildingEcereComModule, module, 1);
3148 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessClassFunction", "External ProcessClassFunction(ecere::com::Class owningClass, ClassFunction func, ecere::sys::OldList defs, External after, bool makeStatic)", ProcessClassFunction, module, 2);
3149 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CreateRegisterModuleBody", "void CreateRegisterModuleBody(void)", CreateRegisterModuleBody, module, 2);
3150 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("RegisterMembersAndProperties", "void RegisterMembersAndProperties(ecere::com::Class regClass, bool isMember, char * className, Statement statement)", RegisterMembersAndProperties, module, 2);
3151 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetNameSpaceString", "void GetNameSpaceString(ecere::com::NameSpace ns, char * string)", GetNameSpaceString, module, 2);
3152 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ClassPropertyValue", 0, sizeof(struct ClassPropertyValue), 0, 0, __ecereDestructor_ClassPropertyValue, module, 2, 1);
3153 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
3154 __ecereClass_ClassPropertyValue = class;
3155 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessClassDefinitions", "void ProcessClassDefinitions(void)", ProcessClassDefinitions, module, 1);
3158 void __ecereUnregisterModule_pass1(struct __ecereNameSpace__ecere__com__Instance * module)
3163 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__List_TPL_ClassPropertyValue_;
3165 void __ecereCreateModuleInstances_pass1()
3167 classPropValues = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__List_TPL_ClassPropertyValue_);
3168 __ecereNameSpace__ecere__com__eInstance_IncRef(classPropValues);
3171 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
3173 void __ecereDestroyModuleInstances_pass1()
3175 (__ecereNameSpace__ecere__com__eInstance_DecRef(classPropValues), classPropValues = 0);