1 /* Code generated from eC source file: ast.ec */
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
7 #define __runtimePlatform 2
10 typedef long long int64;
11 typedef unsigned long long uint64;
15 #elif defined(__TINYC__)
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
27 typedef long long int64;
28 typedef unsigned long long uint64;
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
34 #define __ENDIAN_PAD(x) (8 - (x))
36 #define __ENDIAN_PAD(x) 0
39 # if defined(__GNUC__) || defined(__TINYC__)
40 # define ecere_stdcall __attribute__((__stdcall__))
41 # define ecere_gcc_struct __attribute__((gcc_struct))
43 # define ecere_stdcall __stdcall
44 # define ecere_gcc_struct
47 # define ecere_stdcall
48 # define ecere_gcc_struct
51 #include <sys/types.h>
54 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, INT128 = 294, LONG = 295, SIGNED = 296, UNSIGNED = 297, FLOAT = 298, DOUBLE = 299, CONST = 300, VOLATILE = 301, VOID = 302, VALIST = 303, STRUCT = 304, UNION = 305, ENUM = 306, ELLIPSIS = 307, CASE = 308, DEFAULT = 309, IF = 310, SWITCH = 311, WHILE = 312, DO = 313, FOR = 314, GOTO = 315, CONTINUE = 316, BREAK = 317, RETURN = 318, IFX = 319, ELSE = 320, CLASS = 321, THISCLASS = 322, CLASS_NAME = 323, PROPERTY = 324, SETPROP = 325, GETPROP = 326, NEWOP = 327, RENEW = 328, DELETE = 329, EXT_DECL = 330, EXT_STORAGE = 331, IMPORT = 332, DEFINE = 333, VIRTUAL = 334, ATTRIB = 335, PUBLIC = 336, PRIVATE = 337, TYPED_OBJECT = 338, ANY_OBJECT = 339, _INCREF = 340, EXTENSION = 341, ASM = 342, TYPEOF = 343, WATCH = 344, STOPWATCHING = 345, FIREWATCHERS = 346, WATCHABLE = 347, CLASS_DESIGNER = 348, CLASS_NO_EXPANSION = 349, CLASS_FIXED = 350, ISPROPSET = 351, CLASS_DEFAULT_PROPERTY = 352, PROPERTY_CATEGORY = 353, CLASS_DATA = 354, CLASS_PROPERTY = 355, SUBCLASS = 356, NAMESPACE = 357, NEW0OP = 358, RENEW0 = 359, VAARG = 360, DBTABLE = 361, DBFIELD = 362, DBINDEX = 363, DATABASE_OPEN = 364, ALIGNOF = 365, ATTRIB_DEP = 366, __ATTRIB = 367, BOOL = 368, _BOOL = 369, _COMPLEX = 370, _IMAGINARY = 371, RESTRICT = 372, THREAD = 373, WIDE_STRING_LITERAL = 374, BUILTIN_OFFSETOF = 375
59 const char * defaultNameSpace;
61 int defaultNameSpaceLen;
63 unsigned int strictNameSpaces;
67 int structDeclMode = 2;
69 int defaultDeclMode = 2;
71 const char * currentNameSpace;
73 int currentNameSpaceLen;
75 struct ContextStringPair
77 char * string, * context;
80 struct __ecereNameSpace__ecere__com__Instance * intlStrings;
82 extern unsigned int inCompiler;
84 extern const char * i18nModuleName;
86 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Iterator_data;
88 extern unsigned int buildingECERECOMModule;
90 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
92 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
94 extern unsigned int inIDE;
96 extern int targetBits;
98 extern int targetPlatform;
100 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__MapIterator_map;
102 extern struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__MapIterator_key;
104 extern int yyparse();
108 struct __ecereNameSpace__ecere__sys__OldList
117 struct __ecereNameSpace__ecere__com__DataValue
132 } ecere_gcc_struct __anon1;
135 struct __ecereNameSpace__ecere__com__SerialBuffer
137 unsigned char * _buffer;
143 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
145 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
147 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
149 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
151 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
161 extern size_t strlen(const char * );
163 extern void * memcpy(void * , const void * , size_t size);
165 extern int strcmp(const char * , const char * );
167 extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string);
171 extern char * QMkString(const char * source);
173 extern char * strstr(const char * , const char * );
175 extern char * __ecereNameSpace__ecere__sys__RSearchString(const char * buffer, const char * subStr, int maxLen, unsigned int matchCase, unsigned int matchWord);
177 struct __ecereNameSpace__ecere__com__DefinedExpression;
179 extern void Compiler_Warning(const char * format, ...);
181 extern const char * __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char * string, const char * stringAndContext);
183 extern int sprintf(char * , const char * , ...);
185 extern void Compiler_Error(const char * format, ...);
187 struct __ecereNameSpace__ecere__com__LinkList
194 extern char * strncpy(char * , const char * , size_t n);
196 extern void ImportModule(const char * name, int importType, int importAccess, unsigned int loadDllOnly);
198 extern char * strcpy(char * , const char * );
200 extern char * strcat(char * , const char * );
202 extern int strncmp(const char * , const char * , size_t n);
204 extern char * strchr(const char * , int);
206 extern long long strtoll(const char * nptr, char * * endptr, int base);
208 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
210 extern void FullClassNameCat(char * output, const char * className, unsigned int includeTemplateParams);
212 struct __ecereNameSpace__ecere__com__CustomAVLTree
214 struct __ecereNameSpace__ecere__com__AVLNode * root;
218 extern const char * GetSourceFile(void);
220 extern const char * GetOutputFile(void);
222 extern char * __ecereNameSpace__ecere__sys__ChangeExtension(const char * string, const char * ext, char * output);
224 extern char * __ecereNameSpace__ecere__sys__GetSlashPathBuffer(char * d, const char * p);
226 struct __ecereNameSpace__ecere__com__IteratorPointer;
228 struct __ecereNameSpace__ecere__com__GlobalFunction;
230 const char * GetYYText()
235 void SetStrictNameSpaces(unsigned int b)
237 strictNameSpaces = b;
240 void SetDeclMode(int accessMode)
242 structDeclMode = declMode = accessMode;
245 void SetDefaultDeclMode(int accessMode)
247 defaultDeclMode = accessMode;
260 extern struct __ecereNameSpace__ecere__sys__OldList * excludedSymbols;
262 extern void FreeList(struct __ecereNameSpace__ecere__sys__OldList * list, void (* FreeFunction)(void * ));
264 extern struct __ecereNameSpace__ecere__sys__OldList * imports;
266 extern struct __ecereNameSpace__ecere__sys__OldList * ast;
268 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
270 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item);
272 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
274 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(struct __ecereNameSpace__ecere__sys__OldList * this);
276 struct __ecereNameSpace__ecere__sys__OldList * MkList()
278 return __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__sys__OldList) * (1));
283 struct CodePosition start;
284 struct CodePosition end;
287 void SetDefaultNameSpace(const char * s)
289 defaultNameSpace = s;
290 defaultNameSpaceLen = s ? strlen(s) : 0;
293 void SetCurrentNameSpace(const char * s)
295 currentNameSpace = s;
296 currentNameSpaceLen = s ? strlen(s) : 0;
299 void SetAST(struct __ecereNameSpace__ecere__sys__OldList * list)
304 struct __ecereNameSpace__ecere__sys__OldList * GetAST()
309 struct __ecereNameSpace__ecere__sys__OldList * MkListOne(void * item)
311 struct __ecereNameSpace__ecere__sys__OldList * list = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__sys__OldList) * (1));
313 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*list), item);
317 void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item)
320 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(list, item);
323 void ListAddFront(struct __ecereNameSpace__ecere__sys__OldList * list, void * item)
326 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(list, (((void *)0)), item);
329 extern struct Location yylloc;
335 struct __ecereNameSpace__ecere__sys__OldList * attribs;
345 struct Attrib * attr;
346 } ecere_gcc_struct __anon1;
351 extern struct Context * curContext;
353 extern struct Context * globalContext;
355 extern void FreeContext(struct Context * context);
357 struct __ecereNameSpace__ecere__com__Class;
359 struct __ecereNameSpace__ecere__com__Instance
362 struct __ecereNameSpace__ecere__com__Class * _class;
366 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
368 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
370 extern struct __ecereNameSpace__ecere__com__Class * thisClass;
372 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
374 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
376 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
378 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(const char * fileName, int mode);
380 struct __ecereNameSpace__ecere__com__MapIterator
382 struct __ecereNameSpace__ecere__com__Instance * container;
383 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
386 struct __ecereNameSpace__ecere__com__Iterator
388 struct __ecereNameSpace__ecere__com__Instance * container;
389 struct __ecereNameSpace__ecere__com__IteratorPointer * pointer;
392 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Add;
394 int __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(struct __ecereNameSpace__ecere__com__Instance * this, const char * format, ...);
396 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
398 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Free;
400 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_map(struct __ecereNameSpace__ecere__com__MapIterator * this);
402 void __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(struct __ecereNameSpace__ecere__com__MapIterator * this, struct __ecereNameSpace__ecere__com__Instance * value);
404 const uint64 __ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_key(struct __ecereNameSpace__ecere__com__MapIterator * this);
406 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(struct __ecereNameSpace__ecere__com__Iterator * this, const uint64 index, unsigned int create);
408 uint64 __ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(struct __ecereNameSpace__ecere__com__Iterator * this);
410 void __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(struct __ecereNameSpace__ecere__com__Iterator * this, uint64 value);
412 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Iterator_Next();
414 void __ecereDestroyModuleInstances_ast()
416 (__ecereNameSpace__ecere__com__eInstance_DecRef(intlStrings), intlStrings = 0);
421 extern struct ModuleImport * mainModule;
425 struct ModuleImport * prev;
426 struct ModuleImport * next;
428 struct __ecereNameSpace__ecere__sys__OldList classes;
429 struct __ecereNameSpace__ecere__sys__OldList functions;
436 extern struct Expression * QMkExpId(const char * id);
438 extern void PrintExpression(struct Expression * exp, char * string);
440 extern void FreeExpression(struct Expression * exp);
442 extern struct Expression * CopyExpression(struct Expression * exp);
444 extern void ProcessExpressionType(struct Expression * exp);
446 extern void ComputeExpression(struct Expression * exp);
450 extern void FreeExternal(struct External * external);
452 extern struct External * curExternal;
454 struct __ecereNameSpace__ecere__sys__BTNode;
456 struct __ecereNameSpace__ecere__sys__BTNode
459 struct __ecereNameSpace__ecere__sys__BTNode * parent;
460 struct __ecereNameSpace__ecere__sys__BTNode * left;
461 struct __ecereNameSpace__ecere__sys__BTNode * right;
465 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
467 struct __ecereNameSpace__ecere__com__Property;
469 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
471 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
473 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
475 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
481 extern void FreeSymbol(struct Symbol * symbol);
483 extern struct Symbol * FindSymbol(const char * name, struct Context * startContext, struct Context * endContext, unsigned int isStruct, unsigned int globalNameSpace);
485 extern void DeclareClass(struct External * neededFor, struct Symbol * classSym, const char * className);
490 struct Symbol * symbol;
491 struct __ecereNameSpace__ecere__sys__OldList * definitions;
497 struct __ecereNameSpace__ecere__com__Property
499 struct __ecereNameSpace__ecere__com__Property * prev;
500 struct __ecereNameSpace__ecere__com__Property * next;
502 unsigned int isProperty;
505 struct __ecereNameSpace__ecere__com__Class * _class;
506 const char * dataTypeString;
507 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
508 struct Type * dataType;
509 void (* Set)(void * , int);
510 int (* Get)(void * );
511 unsigned int (* IsSet)(void * );
515 unsigned int conversion;
516 unsigned int watcherOffset;
517 const char * category;
518 unsigned int compiled;
519 unsigned int selfWatchable;
520 unsigned int isWatchable;
523 extern void FreeType(struct Type * type);
525 extern void PrintTypeNoConst(struct Type * type, char * string, unsigned int printName, unsigned int fullName);
529 extern void FreeDeclarator(struct Declarator * decl);
531 extern struct Declarator * GetFuncDecl(struct Declarator * decl);
533 extern char * StringFromSpecDecl(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl);
535 struct TemplateDatatype
537 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
538 struct Declarator * decl;
541 extern struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl);
545 extern void FreeSpecifier(struct Specifier * spec);
547 extern struct Specifier * CopySpecifier(struct Specifier * spec);
549 struct __ecereNameSpace__ecere__sys__OldList * MkSpecsClass(struct Specifier * _class)
551 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
553 ListAdd(list, _class);
557 struct Specifier * _MkSpecifierName(const char * name, struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * templateArgs);
559 struct Specifier * MkSpecifierName(const char * name)
561 return _MkSpecifierName(name, (((void *)0)), (((void *)0)));
564 struct Specifier * MkSpecifierNameArgs(const char * name, struct __ecereNameSpace__ecere__sys__OldList * templateArgs)
566 return _MkSpecifierName(name, (((void *)0)), templateArgs);
569 struct TemplateArgument;
571 extern void FreeTemplateArgument(struct TemplateArgument * arg);
573 struct ClassFunction;
575 extern void FreeClassFunction(struct ClassFunction * func);
577 struct __ecereNameSpace__ecere__sys__NamedLink64;
579 struct __ecereNameSpace__ecere__sys__NamedLink64
581 struct __ecereNameSpace__ecere__sys__NamedLink64 * prev;
582 struct __ecereNameSpace__ecere__sys__NamedLink64 * next;
587 struct __ecereNameSpace__ecere__sys__OldLink;
589 struct __ecereNameSpace__ecere__sys__OldLink
591 struct __ecereNameSpace__ecere__sys__OldLink * prev;
592 struct __ecereNameSpace__ecere__sys__OldLink * next;
596 int CheckType(const char * text);
600 return CheckType(yytext);
611 struct Pointer * prev;
612 struct Pointer * next;
614 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
615 struct Pointer * pointer;
618 struct PropertyWatch;
620 struct Symbol * FindType(struct Context * ctx, const char * name);
622 struct __ecereNameSpace__ecere__com__Method;
624 struct __ecereNameSpace__ecere__com__Method
627 struct __ecereNameSpace__ecere__com__Method * parent;
628 struct __ecereNameSpace__ecere__com__Method * left;
629 struct __ecereNameSpace__ecere__com__Method * right;
634 struct __ecereNameSpace__ecere__com__Class * _class;
636 const char * dataTypeString;
637 struct Type * dataType;
644 struct Symbol * parent;
645 struct Symbol * left;
646 struct Symbol * right;
651 struct __ecereNameSpace__ecere__com__Method * method;
652 struct __ecereNameSpace__ecere__com__Property * _property;
653 struct __ecereNameSpace__ecere__com__Class * registered;
654 } ecere_gcc_struct __anon1;
655 unsigned int notYetDeclared;
660 struct External * pointerExternal;
661 struct External * structExternal;
662 } ecere_gcc_struct __anon1;
665 struct External * externalGet;
666 struct External * externalSet;
667 struct External * externalPtr;
668 struct External * externalIsSet;
669 } ecere_gcc_struct __anon2;
672 struct External * methodExternal;
673 struct External * methodCodeExternal;
674 } ecere_gcc_struct __anon3;
675 } ecere_gcc_struct __anon2;
676 unsigned int imported;
677 unsigned int declaredStructSym;
678 struct __ecereNameSpace__ecere__com__Class * _class;
679 unsigned int declaredStruct;
680 unsigned int needConstructor;
681 unsigned int needDestructor;
682 char * constructorName;
685 char * destructorName;
686 struct ModuleImport * module;
687 struct ClassImport * _import;
688 struct Location nameLoc;
689 unsigned int isParam;
690 unsigned int isRemote;
691 unsigned int isStruct;
692 unsigned int fireWatchersDone;
694 unsigned int classData;
695 unsigned int isStatic;
697 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
698 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
699 struct Context * ctx;
701 struct Expression * propCategory;
702 unsigned int mustRegister;
705 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, const char * type, void * function, int declMode);
707 struct __ecereNameSpace__ecere__com__DataMember;
709 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
715 const char * dataTypeString;
716 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
717 } ecere_gcc_struct __anon1;
718 struct __ecereNameSpace__ecere__com__DataValue expression;
721 const char * memberString;
724 struct __ecereNameSpace__ecere__com__DataMember * member;
725 struct __ecereNameSpace__ecere__com__Property * prop;
726 struct __ecereNameSpace__ecere__com__Method * method;
727 } ecere_gcc_struct __anon1;
728 } ecere_gcc_struct __anon2;
729 } ecere_gcc_struct __anon1;
732 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, const char * type, unsigned int size, unsigned int alignment, int declMode);
734 struct __ecereNameSpace__ecere__com__Module;
736 extern struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(struct __ecereNameSpace__ecere__com__Instance * module, const char * name);
738 extern struct __ecereNameSpace__ecere__com__Instance * privateModule;
740 extern struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(const char * name, const char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
742 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, const char * name);
744 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(const char * name, const char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
746 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, const char * name, const char * baseName, int size, int sizeClass, unsigned int (* Constructor)(void * ), void (* Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
748 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
756 struct MemberInit * prev;
757 struct MemberInit * next;
759 struct Location realLoc;
760 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
761 struct Initializer * initializer;
763 unsigned int variable;
764 unsigned int takeOutExp;
771 struct Attribute * prev;
772 struct Attribute * next;
775 struct Expression * exp;
780 struct __ecereNameSpace__ecere__sys__BinaryTree;
782 struct __ecereNameSpace__ecere__sys__BinaryTree
784 struct __ecereNameSpace__ecere__sys__BTNode * root;
786 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
787 void (* FreeKey)(void * key);
790 struct __ecereNameSpace__ecere__com__DataMember
792 struct __ecereNameSpace__ecere__com__DataMember * prev;
793 struct __ecereNameSpace__ecere__com__DataMember * next;
795 unsigned int isProperty;
798 struct __ecereNameSpace__ecere__com__Class * _class;
799 const char * dataTypeString;
800 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
801 struct Type * dataType;
805 struct __ecereNameSpace__ecere__sys__OldList members;
806 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
808 short structAlignment;
809 short pointerAlignment;
812 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
814 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, const char * key);
816 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
818 struct TemplateParameter;
823 struct __ecereNameSpace__ecere__sys__BTNode * parent;
824 struct __ecereNameSpace__ecere__sys__BTNode * left;
825 struct __ecereNameSpace__ecere__sys__BTNode * right;
827 struct TemplateParameter * param;
837 struct Symbol * _class;
840 struct __ecereNameSpace__ecere__sys__OldList members;
842 } ecere_gcc_struct __anon1;
845 struct Type * returnType;
846 struct __ecereNameSpace__ecere__sys__OldList params;
847 struct Symbol * thisClass;
848 unsigned int staticMethod;
849 struct TemplateParameter * thisClassTemplate;
850 } ecere_gcc_struct __anon2;
853 struct __ecereNameSpace__ecere__com__Method * method;
854 struct __ecereNameSpace__ecere__com__Class * methodClass;
855 struct __ecereNameSpace__ecere__com__Class * usedClass;
856 } ecere_gcc_struct __anon3;
859 struct Type * arrayType;
861 struct Expression * arraySizeExp;
862 unsigned int freeExp;
863 struct Symbol * enumClass;
864 } ecere_gcc_struct __anon4;
866 struct TemplateParameter * templateParameter;
867 } ecere_gcc_struct __anon1;
872 struct __ecereNameSpace__ecere__com__Class * thisClassFrom;
880 unsigned int isSigned : 1;
881 unsigned int constant : 1;
882 unsigned int truth : 1;
883 unsigned int byReference : 1;
884 unsigned int extraParam : 1;
885 unsigned int directClassAccess : 1;
886 unsigned int computing : 1;
887 unsigned int keepCast : 1;
888 unsigned int passAsTemplate : 1;
889 unsigned int dllExport : 1;
890 unsigned int attrStdcall : 1;
891 unsigned int declaredWithStruct : 1;
892 unsigned int typedByReference : 1;
893 unsigned int casted : 1;
894 unsigned int pointerAlignment : 1;
895 unsigned int isLong : 1;
896 unsigned int signedBeforePromotion : 1;
897 unsigned int isVector : 1;
900 struct TemplatedType * FindTemplateTypeParameter(struct Context * ctx, const char * name);
902 void CopyTypeInto(struct Type * type, struct Type * src)
905 type->name = __ecereNameSpace__ecere__sys__CopyString(src->name);
906 type->typeName = __ecereNameSpace__ecere__sys__CopyString(src->typeName);
910 struct __ecereNameSpace__ecere__sys__NamedLink64 * member;
912 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(&type->__anon1.__anon1.members);
913 for(member = src->__anon1.__anon1.members.first; member; member = member->next)
915 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&type->__anon1.__anon1.members, __extension__ ({
916 struct __ecereNameSpace__ecere__sys__NamedLink64 * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__sys__NamedLink64));
918 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(member->name), __ecereInstance1->data = member->data, __ecereInstance1;
921 type->__anon1.__anon1.enumName = __ecereNameSpace__ecere__sys__CopyString(src->__anon1.__anon1.enumName);
923 else if(src->kind == 9 || src->kind == 10)
925 struct Type * member;
927 for(member = type->__anon1.__anon1.members.first; member; member = member->next)
929 type->__anon1.__anon1.enumName = __ecereNameSpace__ecere__sys__CopyString(src->__anon1.__anon1.enumName);
931 else if(src->kind == 11)
935 type->__anon1.__anon2.returnType->refCount++;
936 for(param = type->__anon1.__anon2.params.first; param; param = param->next)
939 else if(src->kind == 13 || src->kind == 12)
941 type->__anon1.type->refCount++;
944 if(type->__anon1.__anon4.arraySizeExp)
945 type->__anon1.__anon4.arraySizeExp = CopyExpression(type->__anon1.__anon4.arraySizeExp);
954 struct Identifier * prev;
955 struct Identifier * next;
957 struct Symbol * classSym;
958 struct Specifier * _class;
960 struct Identifier * badID;
965 struct Enumerator * prev;
966 struct Enumerator * next;
968 struct Identifier * id;
969 struct Expression * exp;
974 struct Specifier * prev;
975 struct Specifier * next;
983 struct ExtDecl * extDecl;
985 struct Symbol * symbol;
986 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
987 struct Specifier * nsSpec;
988 } ecere_gcc_struct __anon1;
991 struct Identifier * id;
992 struct __ecereNameSpace__ecere__sys__OldList * list;
993 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
994 struct __ecereNameSpace__ecere__sys__OldList * definitions;
995 unsigned int addNameSpace;
996 struct Context * ctx;
997 struct ExtDecl * extDeclStruct;
998 } ecere_gcc_struct __anon2;
999 struct Expression * expression;
1000 struct Specifier * _class;
1001 struct TemplateParameter * templateParameter;
1002 } ecere_gcc_struct __anon1;
1007 struct Declarator * prev;
1008 struct Declarator * next;
1009 struct Location loc;
1011 struct Symbol * symbol;
1012 struct Declarator * declarator;
1015 struct Identifier * identifier;
1018 struct Expression * exp;
1019 struct Expression * posExp;
1020 struct Attrib * attrib;
1021 } ecere_gcc_struct structDecl;
1024 struct Expression * exp;
1025 struct Specifier * enumClass;
1026 } ecere_gcc_struct array;
1029 struct __ecereNameSpace__ecere__sys__OldList * parameters;
1030 } ecere_gcc_struct function;
1033 struct Pointer * pointer;
1034 } ecere_gcc_struct pointer;
1037 struct ExtDecl * extended;
1038 } ecere_gcc_struct extended;
1039 } ecere_gcc_struct __anon1;
1044 struct Initializer * prev;
1045 struct Initializer * next;
1046 struct Location loc;
1050 struct Expression * exp;
1051 struct __ecereNameSpace__ecere__sys__OldList * list;
1052 } ecere_gcc_struct __anon1;
1053 unsigned int isConstant;
1054 struct Identifier * id;
1057 struct TemplateArgument
1059 struct TemplateArgument * prev;
1060 struct TemplateArgument * next;
1061 struct Location loc;
1062 struct Identifier * name;
1066 struct Expression * expression;
1067 struct Identifier * identifier;
1068 struct TemplateDatatype * templateDatatype;
1069 } ecere_gcc_struct __anon1;
1072 struct TemplateParameter
1074 struct TemplateParameter * prev;
1075 struct TemplateParameter * next;
1076 struct Location loc;
1078 struct Identifier * identifier;
1081 struct TemplateDatatype * dataType;
1083 } ecere_gcc_struct __anon1;
1084 struct TemplateArgument * defaultArgument;
1085 const char * dataTypeString;
1086 struct Type * baseType;
1091 struct AsmField * prev;
1092 struct AsmField * next;
1093 struct Location loc;
1095 struct Expression * expression;
1096 struct Identifier * symbolic;
1101 struct DBIndexItem * prev;
1102 struct DBIndexItem * next;
1103 struct Identifier * id;
1107 struct Identifier * GetDeclId(struct Declarator * decl)
1109 while(decl && decl->type != 1)
1110 decl = decl->declarator;
1111 return decl ? decl->__anon1.identifier : (((void *)0));
1118 struct TypeName * prev;
1119 struct TypeName * next;
1120 struct Location loc;
1121 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
1122 struct Declarator * declarator;
1123 int classObjectType;
1124 struct Expression * bitCount;
1129 struct DBTableEntry * prev;
1130 struct DBTableEntry * next;
1132 struct Identifier * id;
1137 struct TypeName * dataType;
1139 } ecere_gcc_struct __anon1;
1140 struct __ecereNameSpace__ecere__sys__OldList * items;
1141 } ecere_gcc_struct __anon1;
1144 struct FunctionDefinition;
1146 struct FunctionDefinition * _MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList, unsigned int errorOnOmit);
1148 struct FunctionDefinition * MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList)
1150 return _MkFunction(specifiers, declarator, declarationList, 1);
1153 static struct Type * ProcessTypeDecls(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl, struct Type * parentType);
1155 struct Type * ProcessType(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl)
1157 return ProcessTypeDecls(specs, decl, (((void *)0)));
1160 struct Type * ProcessTypeString(const char * string, unsigned int staticMethod)
1162 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
1163 struct Declarator * decl = SpecDeclFromString(string, specs, (((void *)0)));
1164 struct Type * type = ProcessType(specs, decl);
1166 if(type && !type->__anon1.__anon2.thisClass && staticMethod)
1167 type->__anon1.__anon2.staticMethod = 1;
1168 FreeList(specs, (void *)(FreeSpecifier));
1170 FreeDeclarator(decl);
1174 struct Instantiation;
1176 struct Instantiation
1178 struct Instantiation * prev;
1179 struct Instantiation * next;
1180 struct Location loc;
1181 struct Specifier * _class;
1182 struct Expression * exp;
1183 struct __ecereNameSpace__ecere__sys__OldList * members;
1184 struct Symbol * symbol;
1185 unsigned int fullSet;
1186 unsigned int isConstant;
1187 unsigned char * data;
1188 struct Location nameLoc;
1189 struct Location insideLoc;
1193 struct Symbol * _DeclClass(struct Specifier * _class, const char * name);
1195 struct Symbol * DeclClassAddNameSpace(struct Specifier * _class, const char * className)
1198 int len = 0, stringLen;
1201 if(className[0] != ':' && (currentNameSpace || defaultNameSpace) && declMode != 0 && defaultDeclMode != 0 && (!_class || _class->__anon1.__anon1.name))
1203 if(defaultNameSpace)
1205 memcpy(name, defaultNameSpace, defaultNameSpaceLen);
1206 len += defaultNameSpaceLen;
1210 if(currentNameSpace)
1212 memcpy(name + len, currentNameSpace, currentNameSpaceLen);
1213 len += currentNameSpaceLen;
1218 stringLen = strlen(className);
1219 memcpy(name + len, className, stringLen);
1222 return _DeclClass(_class, name);
1225 struct Symbol * DeclClass(struct Specifier * _class, const char * name)
1227 if(_class || strchr(name, ':'))
1228 return _DeclClass(_class, name);
1230 return DeclClassAddNameSpace(_class, name);
1233 struct ClassDefinition;
1237 struct Context * parent;
1238 struct __ecereNameSpace__ecere__sys__BinaryTree types;
1239 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1240 struct __ecereNameSpace__ecere__sys__BinaryTree symbols;
1241 struct __ecereNameSpace__ecere__sys__BinaryTree structSymbols;
1244 struct __ecereNameSpace__ecere__sys__BinaryTree templateTypes;
1245 struct ClassDefinition * classDef;
1246 unsigned int templateTypesOnly;
1247 unsigned int hasNameSpace;
1250 struct ClassDefinition
1252 struct ClassDefinition * prev;
1253 struct ClassDefinition * next;
1254 struct Location loc;
1255 struct Specifier * _class;
1256 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
1257 struct __ecereNameSpace__ecere__sys__OldList * definitions;
1258 struct Symbol * symbol;
1259 struct Location blockStart;
1260 struct Location nameLoc;
1262 unsigned int deleteWatchable;
1265 void PopContext(struct Context * ctx)
1267 curContext = ctx->parent;
1270 struct Symbol * FindType(struct Context * ctx, const char * name)
1272 struct Symbol * type = (((void *)0));
1276 type = (struct Symbol *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&ctx->types, name);
1277 if(!type && ctx->parent)
1278 type = FindType(ctx->parent, name);
1283 struct Symbol * FindStruct(struct Context * ctx, const char * name)
1285 struct Symbol * type = (((void *)0));
1289 type = (struct Symbol *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&ctx->structSymbols, name);
1290 if(!type && ctx->parent)
1291 type = FindStruct(ctx->parent, name);
1296 struct TemplatedType * FindTemplateTypeParameter(struct Context * ctx, const char * name)
1298 struct TemplatedType * templatedType = (((void *)0));
1302 templatedType = (struct TemplatedType *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&ctx->templateTypes, name);
1303 if(!templatedType && ctx->parent)
1304 templatedType = FindTemplateTypeParameter(ctx->parent, name);
1306 return templatedType;
1313 struct Expression * prev;
1314 struct Expression * next;
1315 struct Location loc;
1322 struct Identifier * identifier;
1323 } ecere_gcc_struct __anon1;
1324 struct Statement * compound;
1325 struct Instantiation * instance;
1329 unsigned int intlString;
1330 unsigned int wideString;
1331 } ecere_gcc_struct __anon2;
1332 struct __ecereNameSpace__ecere__sys__OldList * list;
1335 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1336 struct Declarator * decl;
1337 } ecere_gcc_struct _classExp;
1340 struct Identifier * id;
1341 } ecere_gcc_struct classData;
1344 struct Expression * exp;
1345 struct __ecereNameSpace__ecere__sys__OldList * arguments;
1346 struct Location argLoc;
1347 } ecere_gcc_struct call;
1350 struct Expression * exp;
1351 struct __ecereNameSpace__ecere__sys__OldList * index;
1352 } ecere_gcc_struct index;
1355 struct Expression * exp;
1356 struct Identifier * member;
1358 unsigned int thisPtr;
1359 } ecere_gcc_struct member;
1363 struct Expression * exp1;
1364 struct Expression * exp2;
1365 } ecere_gcc_struct op;
1366 struct TypeName * typeName;
1367 struct Specifier * _class;
1370 struct TypeName * typeName;
1371 struct Expression * exp;
1372 } ecere_gcc_struct cast;
1375 struct Expression * cond;
1376 struct __ecereNameSpace__ecere__sys__OldList * exp;
1377 struct Expression * elseExp;
1378 } ecere_gcc_struct cond;
1381 struct TypeName * typeName;
1382 struct Expression * size;
1383 } ecere_gcc_struct _new;
1386 struct TypeName * typeName;
1387 struct Expression * size;
1388 struct Expression * exp;
1389 } ecere_gcc_struct _renew;
1393 struct Identifier * id;
1394 } ecere_gcc_struct db;
1397 struct Expression * ds;
1398 struct Expression * name;
1399 } ecere_gcc_struct dbopen;
1402 struct TypeName * typeName;
1403 struct Initializer * initializer;
1404 } ecere_gcc_struct initializer;
1407 struct Expression * exp;
1408 struct TypeName * typeName;
1409 } ecere_gcc_struct vaArg;
1412 struct TypeName * typeName;
1413 struct Identifier * id;
1414 } ecere_gcc_struct offset;
1415 } ecere_gcc_struct __anon1;
1416 unsigned int debugValue;
1417 struct __ecereNameSpace__ecere__com__DataValue val;
1419 unsigned int hasAddress;
1420 struct Type * expType;
1421 struct Type * destType;
1424 unsigned int byReference;
1425 unsigned int isConstant;
1426 unsigned int addedThis;
1427 unsigned int needCast;
1428 unsigned int thisPtr;
1429 unsigned int opDestType;
1430 unsigned int usedInComparison;
1431 unsigned int ambiguousUnits;
1432 unsigned int parentOpDestType;
1433 unsigned int needTemplateCast;
1436 struct FunctionDefinition
1438 struct FunctionDefinition * prev;
1439 struct FunctionDefinition * next;
1440 struct Location loc;
1441 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1442 struct Declarator * declarator;
1443 struct __ecereNameSpace__ecere__sys__OldList * declarations;
1444 struct Statement * body;
1445 struct __ecereNameSpace__ecere__com__Class * _class;
1446 struct __ecereNameSpace__ecere__sys__OldList attached;
1449 struct Symbol * propSet;
1451 unsigned int propertyNoThis;
1454 struct ClassFunction
1456 struct ClassFunction * prev;
1457 struct ClassFunction * next;
1458 struct Location loc;
1459 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1460 struct Declarator * declarator;
1461 struct __ecereNameSpace__ecere__sys__OldList * declarations;
1462 struct Statement * body;
1463 struct __ecereNameSpace__ecere__com__Class * _class;
1464 struct __ecereNameSpace__ecere__sys__OldList attached;
1467 struct Symbol * propSet;
1468 unsigned int isVirtual;
1469 unsigned int isConstructor;
1470 unsigned int isDestructor;
1471 unsigned int dontMangle;
1476 struct PropertyWatch
1478 struct PropertyWatch * prev;
1479 struct PropertyWatch * next;
1480 struct Location loc;
1481 struct Statement * compound;
1482 struct __ecereNameSpace__ecere__sys__OldList * properties;
1483 unsigned int deleteWatch;
1490 struct MembersInit * prev;
1491 struct MembersInit * next;
1492 struct Location loc;
1496 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
1497 struct ClassFunction * function;
1498 } ecere_gcc_struct __anon1;
1501 struct __ecereNameSpace__ecere__com__ClassTemplateParameter;
1503 struct __ecereNameSpace__ecere__com__ClassTemplateParameter
1505 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prev;
1506 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * next;
1511 const char * dataTypeString;
1513 } ecere_gcc_struct __anon1;
1514 struct __ecereNameSpace__ecere__com__ClassTemplateArgument defaultArg;
1518 struct __ecereNameSpace__ecere__com__SubModule;
1520 struct __ecereNameSpace__ecere__com__SubModule
1522 struct __ecereNameSpace__ecere__com__SubModule * prev;
1523 struct __ecereNameSpace__ecere__com__SubModule * next;
1524 struct __ecereNameSpace__ecere__com__Instance * module;
1528 struct InitDeclarator;
1530 struct InitDeclarator
1532 struct InitDeclarator * prev;
1533 struct InitDeclarator * next;
1534 struct Location loc;
1535 struct Declarator * declarator;
1536 struct Initializer * initializer;
1539 struct __ecereNameSpace__ecere__com__NameSpace;
1541 struct __ecereNameSpace__ecere__com__NameSpace
1544 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
1545 struct __ecereNameSpace__ecere__com__NameSpace * left;
1546 struct __ecereNameSpace__ecere__com__NameSpace * right;
1548 struct __ecereNameSpace__ecere__com__NameSpace * parent;
1549 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
1550 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
1551 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
1552 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
1555 struct __ecereNameSpace__ecere__com__Class
1557 struct __ecereNameSpace__ecere__com__Class * prev;
1558 struct __ecereNameSpace__ecere__com__Class * next;
1564 unsigned int (* Constructor)(void * );
1565 void (* Destructor)(void * );
1568 struct __ecereNameSpace__ecere__com__Class * base;
1569 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
1570 struct __ecereNameSpace__ecere__sys__BinaryTree members;
1571 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
1572 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
1573 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
1574 struct __ecereNameSpace__ecere__sys__OldList derivatives;
1578 struct __ecereNameSpace__ecere__com__Instance * module;
1579 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
1580 const char * dataTypeString;
1581 struct Type * dataType;
1583 int defaultAlignment;
1584 void (* Initialize)();
1586 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
1587 const char * designerClass;
1588 unsigned int noExpansion;
1589 const char * defaultProperty;
1590 unsigned int comRedefinition;
1593 unsigned int internalDecl;
1595 unsigned int computeSize;
1596 short structAlignment;
1597 short pointerAlignment;
1598 int destructionWatchOffset;
1600 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
1601 int inheritanceAccess;
1602 const char * fullName;
1604 struct __ecereNameSpace__ecere__sys__OldList conversions;
1605 struct __ecereNameSpace__ecere__sys__OldList templateParams;
1606 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
1607 struct __ecereNameSpace__ecere__com__Class * templateClass;
1608 struct __ecereNameSpace__ecere__sys__OldList templatized;
1610 unsigned int isInstanceClass;
1611 unsigned int byValueSystemClass;
1614 struct __ecereNameSpace__ecere__com__Application
1617 const char * * argv;
1619 unsigned int isGUIApp;
1620 struct __ecereNameSpace__ecere__sys__OldList allModules;
1621 char * parsedCommand;
1622 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1625 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ContextStringPair;
1627 void __ecereMethod_ContextStringPair_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct ContextStringPair * this)
1629 (__ecereNameSpace__ecere__com__eSystem_Delete(this->string), this->string = 0);
1630 (__ecereNameSpace__ecere__com__eSystem_Delete(this->context), this->context = 0);
1633 int __ecereMethod_ContextStringPair_OnCompare(struct __ecereNameSpace__ecere__com__Class * class, struct ContextStringPair * this, struct ContextStringPair * b)
1637 result = (this->string && b->string) ? strcmp(this->string, b->string) : (!this->string && b->string) ? 1 : (this->string && !b->string) ? -1 : 0;
1640 result = (this->context && b->context) ? strcmp(this->context, b->context) : (!this->context && b->context) ? 1 : (this->context && !b->context) ? -1 : 0;
1644 extern void __ecereNameSpace__ecere__com__PrintLn(struct __ecereNameSpace__ecere__com__Class * class, const void * object, ...);
1646 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
1648 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
1650 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
1652 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplatedType;
1654 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
1656 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
1658 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
1660 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__List_TPL_Location_;
1662 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
1664 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
1666 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
1668 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
1670 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
1672 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
1674 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
1676 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
1678 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
1680 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
1682 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
1684 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
1686 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
1688 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
1690 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
1692 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
1694 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
1696 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
1698 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
1700 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1702 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
1704 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1706 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
1708 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
1710 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink64;
1712 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
1714 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1716 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
1718 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
1720 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
1722 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map_TPL_ContextStringPair__ecere__com__List_TPL_Location___;
1724 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
1726 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__List;
1728 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
1730 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_char__PTR_;
1732 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DeclaratorType;
1734 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree;
1736 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Map;
1738 struct __ecereNameSpace__ecere__com__Module
1740 struct __ecereNameSpace__ecere__com__Instance * application;
1741 struct __ecereNameSpace__ecere__sys__OldList classes;
1742 struct __ecereNameSpace__ecere__sys__OldList defines;
1743 struct __ecereNameSpace__ecere__sys__OldList functions;
1744 struct __ecereNameSpace__ecere__sys__OldList modules;
1745 struct __ecereNameSpace__ecere__com__Instance * prev;
1746 struct __ecereNameSpace__ecere__com__Instance * next;
1752 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
1753 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
1756 struct Specifier * MkSpecifier(int specifier)
1758 if(specifier == _BOOL && (declMode != 0 && defaultDeclMode != 0))
1759 return MkSpecifierName("bool");
1760 else if(specifier == _BOOL || specifier == BOOL)
1761 return __extension__ ({
1762 struct Specifier * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier);
1764 __ecereInstance1->type = 0, __ecereInstance1->__anon1.specifier = specifier, __ecereInstance1;
1767 return __extension__ ({
1768 struct Specifier * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier);
1770 __ecereInstance1->type = 0, __ecereInstance1->__anon1.specifier = specifier, __ecereInstance1;
1774 struct Specifier * MkSpecifierTypeOf(struct Expression * expression)
1776 return __extension__ ({
1777 struct Specifier * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier);
1779 __ecereInstance1->type = 6, __ecereInstance1->__anon1.expression = expression, __ecereInstance1;
1783 struct Specifier * MkSpecifierSubClass(struct Specifier * _class)
1785 return __extension__ ({
1786 struct Specifier * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier);
1788 __ecereInstance1->type = 7, __ecereInstance1->__anon1._class = _class, __ecereInstance1;
1792 struct Specifier * MkSpecifierExtended(struct ExtDecl * extDecl)
1794 return __extension__ ({
1795 struct Specifier * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier);
1797 __ecereInstance1->type = 5, __ecereInstance1->__anon1.__anon1.extDecl = extDecl, __ecereInstance1;
1801 struct TemplateParameter * MkIdentifierTemplateParameter(struct Identifier * identifier, int memberType, struct TemplateArgument * defaultArgument)
1803 if(identifier->string)
1805 struct TemplateParameter * param = (param = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplateParameter), param->type = 1, param->identifier = identifier, param->__anon1.memberType = memberType, param->defaultArgument = defaultArgument, param);
1809 return (((void *)0));
1812 struct TemplateParameter * MkExpressionTemplateParameter(struct Identifier * identifier, struct TemplateDatatype * dataType, struct TemplateArgument * defaultArgument)
1814 if(identifier->string)
1816 struct TemplateParameter * param = (param = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplateParameter), param->type = 2, param->identifier = identifier, param->__anon1.dataType = dataType, param->defaultArgument = defaultArgument, param);
1820 return (((void *)0));
1823 struct TemplateDatatype * MkTemplateDatatype(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * decl)
1825 struct TemplateDatatype * datatype = (datatype = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplateDatatype), datatype->specifiers = specifiers, datatype->decl = decl, datatype);
1830 struct TemplateArgument * MkTemplateTypeArgument(struct TemplateDatatype * tplDatatype)
1832 struct TemplateArgument * argument = (argument = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplateArgument), argument->type = 0, argument->__anon1.templateDatatype = tplDatatype, argument);
1837 struct TemplateArgument * MkTemplateExpressionArgument(struct Expression * expr)
1839 struct TemplateArgument * argument = (argument = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplateArgument), argument->type = 2, argument->__anon1.expression = expr, argument);
1844 struct TemplateArgument * MkTemplateIdentifierArgument(struct Identifier * ident)
1846 struct TemplateArgument * argument = (argument = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplateArgument), argument->type = 1, argument->__anon1.identifier = ident, argument);
1851 struct Expression * MkExpExtensionCompound(struct Statement * compound)
1853 return __extension__ ({
1854 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1856 __ecereInstance1->type = 23, __ecereInstance1->__anon1.compound = compound, __ecereInstance1;
1860 struct Expression * MkExpExtensionExpression(struct __ecereNameSpace__ecere__sys__OldList * expressions)
1862 return __extension__ ({
1863 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1865 __ecereInstance1->type = 32, __ecereInstance1->__anon1.list = expressions, __ecereInstance1->loc = yylloc, __ecereInstance1;
1869 struct Expression * MkExpExtensionInitializer(struct TypeName * typeName, struct Initializer * initializer)
1871 return __extension__ ({
1872 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1874 __ecereInstance1->type = 33, __ecereInstance1->__anon1.initializer.typeName = typeName, __ecereInstance1->__anon1.initializer.initializer = initializer, __ecereInstance1->loc = yylloc, __ecereInstance1;
1878 struct Expression * MkExpIdentifier(struct Identifier * id)
1880 return __extension__ ({
1881 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1883 __ecereInstance1->type = 0, __ecereInstance1->__anon1.__anon1.identifier = id, __ecereInstance1->loc = yylloc, __ecereInstance1;
1887 struct Expression * MkExpDummy()
1889 struct Expression * exp = (exp = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression), exp->type = 16, exp);
1894 struct Expression * MkExpConstant(const char * string)
1896 return __extension__ ({
1897 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1899 __ecereInstance1->type = 2, __ecereInstance1->__anon1.__anon1.constant = __ecereNameSpace__ecere__sys__CopyString(string), __ecereInstance1->loc = yylloc, __ecereInstance1;
1903 struct Expression * MkExpString(const char * string)
1905 return __extension__ ({
1906 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1908 __ecereInstance1->type = 3, __ecereInstance1->__anon1.__anon2.string = __ecereNameSpace__ecere__sys__CopyString(string), __ecereInstance1->loc = yylloc, __ecereInstance1;
1912 struct Expression * MkExpWideString(const char * string)
1914 return __extension__ ({
1915 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1917 __ecereInstance1->type = 3, __ecereInstance1->__anon1.__anon2.string = __ecereNameSpace__ecere__sys__CopyString(string), __ecereInstance1->loc = yylloc, __ecereInstance1->__anon1.__anon2.wideString = 1, __ecereInstance1;
1921 struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2)
1923 struct Expression * exp = (exp = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression), exp->type = 4, exp->__anon1.op.op = op, exp->__anon1.op.exp1 = exp1, exp->__anon1.op.exp2 = exp2, exp);
1927 exp->loc.start = exp1 ? exp1->loc.start : exp2->loc.start;
1928 exp->loc.end = exp2 ? exp2->loc.end : exp1->loc.end;
1933 struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions)
1935 struct Expression * exp = (exp = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression), exp->type = 5, exp->__anon1.list = expressions, exp);
1937 if(expressions && expressions->first)
1939 exp->loc.start = ((struct Expression *)expressions->first)->loc.start;
1940 exp->loc.end = ((struct Expression *)expressions->last)->loc.end;
1945 struct Expression * MkExpIndex(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * index)
1947 return __extension__ ({
1948 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1950 __ecereInstance1->type = 6, __ecereInstance1->__anon1.index.exp = expression, __ecereInstance1->__anon1.index.index = index, __ecereInstance1;
1954 struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments)
1956 return __extension__ ({
1957 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1959 __ecereInstance1->type = 7, __ecereInstance1->__anon1.call.exp = expression, __ecereInstance1->__anon1.call.arguments = arguments, __ecereInstance1->loc = yylloc, __ecereInstance1;
1963 struct Expression * MkExpMember(struct Expression * expression, struct Identifier * member)
1965 return __extension__ ({
1966 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1968 __ecereInstance1->type = 8, __ecereInstance1->__anon1.member.exp = expression, __ecereInstance1->__anon1.member.member = member, __ecereInstance1->loc = yylloc, __ecereInstance1;
1972 struct Expression * MkExpPointer(struct Expression * expression, struct Identifier * member)
1974 return __extension__ ({
1975 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1977 __ecereInstance1->type = 9, __ecereInstance1->__anon1.member.exp = expression, __ecereInstance1->__anon1.member.member = member, __ecereInstance1->loc = yylloc, __ecereInstance1;
1981 struct Expression * MkExpTypeSize(struct TypeName * typeName)
1983 return __extension__ ({
1984 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1986 __ecereInstance1->type = 10, __ecereInstance1->__anon1.typeName = typeName, __ecereInstance1->loc = yylloc, __ecereInstance1;
1990 struct Expression * MkExpTypeAlign(struct TypeName * typeName)
1992 return __extension__ ({
1993 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
1995 __ecereInstance1->type = 36, __ecereInstance1->__anon1.typeName = typeName, __ecereInstance1->loc = yylloc, __ecereInstance1;
1999 struct Expression * MkExpOffsetOf(struct TypeName * typeName, struct Identifier * id)
2001 return __extension__ ({
2002 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2004 __ecereInstance1->type = 40, __ecereInstance1->__anon1.offset.typeName = typeName, __ecereInstance1->__anon1.offset.id = id, __ecereInstance1->loc = yylloc, __ecereInstance1;
2008 struct Expression * MkExpClassSize(struct Specifier * _class)
2010 return __extension__ ({
2011 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2013 __ecereInstance1->type = 15, __ecereInstance1->__anon1._class = _class, __ecereInstance1->loc = yylloc, __ecereInstance1;
2017 struct Expression * MkExpCast(struct TypeName * typeName, struct Expression * expression)
2019 return __extension__ ({
2020 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2022 __ecereInstance1->type = 11, __ecereInstance1->__anon1.cast.typeName = typeName, __ecereInstance1->__anon1.cast.exp = expression, __ecereInstance1->loc = yylloc, __ecereInstance1;
2026 struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp)
2028 return __extension__ ({
2029 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2031 __ecereInstance1->type = 12, __ecereInstance1->__anon1.cond.cond = cond, __ecereInstance1->__anon1.cond.exp = expressions, __ecereInstance1->__anon1.cond.elseExp = elseExp, __ecereInstance1->loc = yylloc, __ecereInstance1;
2035 struct Expression * MkExpRenew(struct Expression * memExp, struct TypeName * type, struct Expression * size)
2037 return __extension__ ({
2038 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2040 __ecereInstance1->type = 14, __ecereInstance1->__anon1._renew.exp = memExp, __ecereInstance1->__anon1._renew.typeName = type, __ecereInstance1->__anon1._renew.size = size, __ecereInstance1->loc = yylloc, __ecereInstance1;
2044 struct Expression * MkExpRenew0(struct Expression * memExp, struct TypeName * type, struct Expression * size)
2046 return __extension__ ({
2047 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2049 __ecereInstance1->type = 27, __ecereInstance1->__anon1._renew.exp = memExp, __ecereInstance1->__anon1._renew.typeName = type, __ecereInstance1->__anon1._renew.size = size, __ecereInstance1->loc = yylloc, __ecereInstance1;
2053 struct Expression * MkExpNew(struct TypeName * type, struct Expression * size)
2055 return __extension__ ({
2056 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2058 __ecereInstance1->type = 13, __ecereInstance1->__anon1._new.typeName = type, __ecereInstance1->__anon1._new.size = size, __ecereInstance1->loc = yylloc, __ecereInstance1;
2062 struct Expression * MkExpNew0(struct TypeName * type, struct Expression * size)
2064 return __extension__ ({
2065 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2067 __ecereInstance1->type = 26, __ecereInstance1->__anon1._new.typeName = type, __ecereInstance1->__anon1._new.size = size, __ecereInstance1->loc = yylloc, __ecereInstance1;
2071 struct Expression * MkExpVaArg(struct Expression * exp, struct TypeName * type)
2073 return __extension__ ({
2074 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2076 __ecereInstance1->type = 34, __ecereInstance1->__anon1.vaArg.exp = exp, __ecereInstance1->__anon1.vaArg.typeName = type, __ecereInstance1->loc = yylloc, __ecereInstance1;
2080 struct Expression * MkExpInstance(struct Instantiation * inst)
2082 return __extension__ ({
2083 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2085 __ecereInstance1->type = 1, __ecereInstance1->__anon1.instance = inst, __ecereInstance1;
2089 struct Expression * MkExpClass(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * decl)
2091 return __extension__ ({
2092 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2094 __ecereInstance1->type = 24, __ecereInstance1->__anon1._classExp.specifiers = specifiers, __ecereInstance1->__anon1._classExp.decl = decl, __ecereInstance1;
2098 struct Expression * MkExpClassData(struct Identifier * id)
2100 return __extension__ ({
2101 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2103 __ecereInstance1->type = 25, __ecereInstance1->__anon1.classData.id = id, __ecereInstance1;
2107 struct Expression * MkExpDBOpen(struct Expression * ds, struct Expression * dbName)
2109 return __extension__ ({
2110 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2112 __ecereInstance1->type = 28, __ecereInstance1->__anon1.dbopen.ds = ds, __ecereInstance1->__anon1.dbopen.name = dbName, __ecereInstance1;
2116 struct Expression * MkExpDBField(char * table, struct Identifier * id)
2118 return __extension__ ({
2119 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2121 __ecereInstance1->type = 29, __ecereInstance1->__anon1.db.table = table, __ecereInstance1->__anon1.db.id = id, __ecereInstance1;
2125 struct Expression * MkExpDBIndex(char * table, struct Identifier * id)
2127 return __extension__ ({
2128 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2130 __ecereInstance1->type = 31, __ecereInstance1->__anon1.db.table = table, __ecereInstance1->__anon1.db.id = id, __ecereInstance1;
2134 struct Expression * MkExpDBTable(char * table)
2136 return __extension__ ({
2137 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2139 __ecereInstance1->type = 30, __ecereInstance1->__anon1.db.table = table, __ecereInstance1;
2143 struct Expression * MkExpArray(struct __ecereNameSpace__ecere__sys__OldList * expressions)
2145 return __extension__ ({
2146 struct Expression * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Expression);
2148 __ecereInstance1->type = 35, __ecereInstance1->__anon1.list = expressions, __ecereInstance1;
2152 struct Specifier * MkEnum(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * list)
2154 struct Specifier * spec = (spec = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier), spec->type = 2, spec->__anon1.__anon2.id = id, spec->__anon1.__anon2.list = list, spec);
2156 if(list && (!declMode || !id))
2159 struct Enumerator * e;
2160 struct __ecereNameSpace__ecere__sys__OldList specs =
2165 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&specs, spec);
2166 type = ProcessType(&specs, (((void *)0)));
2169 struct Symbol * symbol = (symbol = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol), symbol->string = __ecereNameSpace__ecere__sys__CopyString(id->string), symbol->isStruct = 1, symbol->type = type, symbol);
2172 if(strstr(symbol->string, "::"))
2173 curContext->hasNameSpace = 1;
2174 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&curContext->structSymbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
2177 for(e = list->first; e; e = e->next)
2179 struct Symbol * symbol = (symbol = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol), symbol->string = __ecereNameSpace__ecere__sys__CopyString(e->id->string), symbol->type = type, symbol);
2182 if(strstr(symbol->string, "::"))
2183 curContext->hasNameSpace = 1;
2184 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(curContext->templateTypesOnly ? curContext->parent : curContext)->symbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
2192 struct Specifier * MkStructOrUnion(int type, struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * definitions)
2194 struct Specifier * spec = (spec = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier), spec->type = type, spec->__anon1.__anon2.id = id, spec);
2196 if(id && FindType(curContext, id->string))
2198 spec->__anon1.__anon2.definitions = definitions;
2199 if(definitions && id && structDeclMode == 0)
2201 struct __ecereNameSpace__ecere__sys__OldList specs =
2205 struct Symbol * symbol;
2207 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&specs, spec);
2208 symbol = __extension__ ({
2209 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
2211 __ecereInstance1->string = __ecereNameSpace__ecere__sys__CopyString(id->string), __ecereInstance1->type = ProcessType(&specs, (((void *)0))), __ecereInstance1->isStruct = 1, __ecereInstance1;
2213 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&curContext->structSymbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
2219 void AddStructDefinitions(struct Specifier * spec, struct __ecereNameSpace__ecere__sys__OldList * definitions)
2221 spec->__anon1.__anon2.definitions = definitions;
2222 if(definitions && spec->__anon1.__anon2.id && !declMode)
2224 struct Symbol * symbol;
2225 struct __ecereNameSpace__ecere__sys__OldList specs =
2230 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&specs, spec);
2231 symbol = __extension__ ({
2232 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
2234 __ecereInstance1->string = __ecereNameSpace__ecere__sys__CopyString(spec->__anon1.__anon2.id->string), __ecereInstance1->type = ProcessType(&specs, (((void *)0))), __ecereInstance1->isStruct = 1, __ecereInstance1;
2236 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&curContext->parent->structSymbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
2241 struct Attribute * MkAttribute(char * attr, struct Expression * exp)
2243 return __extension__ ({
2244 struct Attribute * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Attribute);
2246 __ecereInstance1->attr = attr, __ecereInstance1->exp = exp, __ecereInstance1;
2250 struct Attrib * MkAttrib(int type, struct __ecereNameSpace__ecere__sys__OldList * attribs)
2252 return __extension__ ({
2253 struct Attrib * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Attrib);
2255 __ecereInstance1->type = type, __ecereInstance1->attribs = attribs, __ecereInstance1;
2259 struct ExtDecl * MkExtDeclString(char * s)
2261 return __extension__ ({
2262 struct ExtDecl * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ExtDecl);
2264 __ecereInstance1->type = 0, __ecereInstance1->__anon1.s = s, __ecereInstance1;
2268 struct ExtDecl * MkExtDeclAttrib(struct Attrib * attr)
2270 return __extension__ ({
2271 struct ExtDecl * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ExtDecl);
2273 __ecereInstance1->type = 1, __ecereInstance1->__anon1.attr = attr, __ecereInstance1;
2277 struct Declarator * MkDeclaratorIdentifier(struct Identifier * id)
2279 return __extension__ ({
2280 struct Declarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declarator);
2282 __ecereInstance1->type = 1, __ecereInstance1->__anon1.identifier = id, __ecereInstance1;
2286 struct Declarator * MkDeclaratorFunction(struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * parameters)
2288 return __extension__ ({
2289 struct Declarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declarator);
2291 __ecereInstance1->type = 4, __ecereInstance1->declarator = declarator, __ecereInstance1->__anon1.function.parameters = parameters, __ecereInstance1;
2295 struct Declarator * MkDeclaratorExtended(struct ExtDecl * extended, struct Declarator * declarator)
2297 return __extension__ ({
2298 struct Declarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declarator);
2300 __ecereInstance1->type = 6, __ecereInstance1->declarator = declarator, __ecereInstance1->__anon1.extended.extended = extended, __ecereInstance1;
2304 struct Declarator * MkDeclaratorExtendedEnd(struct ExtDecl * extended, struct Declarator * declarator)
2306 return __extension__ ({
2307 struct Declarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declarator);
2309 __ecereInstance1->type = 7, __ecereInstance1->declarator = declarator, __ecereInstance1->__anon1.extended.extended = extended, __ecereInstance1;
2313 struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp)
2315 return __extension__ ({
2316 struct Declarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declarator);
2318 __ecereInstance1->type = 0, __ecereInstance1->declarator = declarator, __ecereInstance1->__anon1.structDecl.exp = exp, __ecereInstance1;
2322 struct Declarator * MkDeclaratorBrackets(struct Declarator * declarator)
2324 return __extension__ ({
2325 struct Declarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declarator);
2327 __ecereInstance1->type = 2, __ecereInstance1->declarator = declarator, __ecereInstance1;
2331 struct Declarator * MkDeclaratorArray(struct Declarator * declarator, struct Expression * exp)
2333 return __extension__ ({
2334 struct Declarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declarator);
2336 __ecereInstance1->type = 3, __ecereInstance1->declarator = declarator, __ecereInstance1->__anon1.array.exp = exp, __ecereInstance1;
2340 struct Declarator * MkDeclaratorEnumArray(struct Declarator * declarator, struct Specifier * _class)
2342 return __extension__ ({
2343 struct Declarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declarator);
2345 __ecereInstance1->type = 3, __ecereInstance1->declarator = declarator, __ecereInstance1->__anon1.array.enumClass = _class, __ecereInstance1;
2349 struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator)
2351 return __extension__ ({
2352 struct Declarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declarator);
2354 __ecereInstance1->type = 5, __ecereInstance1->declarator = declarator, __ecereInstance1->__anon1.pointer.pointer = pointer, __ecereInstance1;
2358 struct Enumerator * MkEnumerator(struct Identifier * id, struct Expression * exp)
2360 return __extension__ ({
2361 struct Enumerator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Enumerator);
2363 __ecereInstance1->id = id, __ecereInstance1->exp = exp, __ecereInstance1;
2367 struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer)
2369 return __extension__ ({
2370 struct Pointer * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Pointer);
2372 __ecereInstance1->qualifiers = qualifiers, __ecereInstance1->pointer = pointer, __ecereInstance1;
2376 struct Initializer * MkInitializerAssignment(struct Expression * exp)
2378 return __extension__ ({
2379 struct Initializer * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Initializer);
2381 __ecereInstance1->type = 0, __ecereInstance1->__anon1.exp = exp, __ecereInstance1->loc = yylloc, __ecereInstance1;
2385 struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sys__OldList * list)
2387 return __extension__ ({
2388 struct Initializer * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Initializer);
2390 __ecereInstance1->type = 1, __ecereInstance1->__anon1.list = list, __ecereInstance1->loc = yylloc, __ecereInstance1;
2394 struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer)
2396 return __extension__ ({
2397 struct InitDeclarator * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_InitDeclarator);
2399 __ecereInstance1->declarator = declarator, __ecereInstance1->initializer = initializer, __ecereInstance1;
2403 struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator)
2405 if(qualifiers != (((void *)0)))
2407 struct Declarator * parentDecl = declarator;
2408 struct Declarator * decl = declarator;
2410 while(decl && decl->type == 3)
2411 decl = decl->declarator;
2412 if(decl && decl->type == 1 && decl->__anon1.identifier->string && CheckType(decl->__anon1.identifier->string) == TYPE_NAME)
2414 struct Specifier * spec;
2416 for(spec = qualifiers->first; spec; spec = spec->next)
2420 if(spec->__anon1.specifier == CONST || spec->__anon1.specifier == VOLATILE || spec->__anon1.specifier == EXTERN || spec->__anon1.specifier == STATIC || spec->__anon1.specifier == AUTO || spec->__anon1.specifier == REGISTER)
2424 else if(spec->type != 5)
2429 ListAdd(qualifiers, MkSpecifierName(decl->__anon1.identifier->string));
2430 FreeDeclarator(decl);
2431 parentDecl->declarator = (((void *)0));
2435 return __extension__ ({
2436 struct TypeName * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
2438 __ecereInstance1->qualifiers = qualifiers, __ecereInstance1->declarator = declarator, __ecereInstance1;
2442 struct FunctionDefinition * _MkFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * declarator, struct __ecereNameSpace__ecere__sys__OldList * declarationList, unsigned int errorOnOmit)
2446 struct Declarator * funcDecl = GetFuncDecl(declarator);
2448 if(funcDecl && funcDecl->__anon1.function.parameters)
2450 struct TypeName * tn;
2452 for(tn = (*funcDecl->__anon1.function.parameters).first; tn; tn = tn->next)
2454 if(tn->qualifiers || tn->declarator)
2456 struct Identifier * declID = tn->declarator ? GetDeclId(tn->declarator) : (((void *)0));
2460 struct Specifier * spec = tn->qualifiers ? (*tn->qualifiers).first : (((void *)0));
2462 if(!tn->declarator && !tn->prev && !tn->next && spec && !spec->next && spec->type == 0 && spec->__anon1.specifier == VOID)
2465 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "parameter name omitted\n", (((void *)0))));
2472 return __extension__ ({
2473 struct FunctionDefinition * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_FunctionDefinition);
2475 __ecereInstance1->specifiers = specifiers, __ecereInstance1->declarator = declarator, __ecereInstance1->declarations = declarationList, __ecereInstance1;
2479 struct Type * MkClassTypeSymbol(struct Symbol * symbol)
2483 struct Type * type = (type = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type), type->kind = 8, type->__anon1._class = symbol, type);
2485 if(!type->__anon1._class)
2492 return (((void *)0));
2495 struct ClassFunction * MkClassFunction(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Specifier * _class, struct Declarator * decl, struct __ecereNameSpace__ecere__sys__OldList * declList)
2497 return __extension__ ({
2498 struct ClassFunction * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassFunction);
2500 __ecereInstance1->specifiers = specifiers, __ecereInstance1->declarator = decl, __ecereInstance1->declarations = declList, __ecereInstance1;
2504 struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer)
2506 return __extension__ ({
2507 struct MemberInit * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_MemberInit);
2509 __ecereInstance1->identifiers = ids, __ecereInstance1->initializer = initializer, __ecereInstance1;
2513 struct MemberInit * MkMemberInitExp(struct Expression * idExp, struct Initializer * initializer)
2515 struct MemberInit * init = (init = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_MemberInit), init->initializer = initializer, init->identifiers = MkList(), init);
2516 struct Expression * exp;
2518 for(exp = idExp; exp && exp->type == 8; exp = exp->__anon1.member.exp)
2520 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*init->identifiers), (((void *)0)), exp->__anon1.member.member);
2521 exp->__anon1.member.member = (((void *)0));
2523 if(exp && exp->type == 0)
2525 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*init->identifiers), (((void *)0)), exp->__anon1.__anon1.identifier);
2526 exp->__anon1.__anon1.identifier = (((void *)0));
2528 FreeExpression(idExp);
2532 struct MembersInit * MkMembersInitList(struct __ecereNameSpace__ecere__sys__OldList * dataMembers)
2534 return __extension__ ({
2535 struct MembersInit * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_MembersInit);
2537 __ecereInstance1->type = 0, __ecereInstance1->__anon1.dataMembers = dataMembers, __ecereInstance1;
2541 struct MembersInit * MkMembersInitMethod(struct ClassFunction * function)
2543 return __extension__ ({
2544 struct MembersInit * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_MembersInit);
2546 __ecereInstance1->type = 1, __ecereInstance1->__anon1.function = function, __ecereInstance1;
2550 struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members)
2552 return __extension__ ({
2553 struct Instantiation * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Instantiation);
2555 __ecereInstance1->_class = _class, __ecereInstance1->exp = exp, __ecereInstance1->members = members, __ecereInstance1;
2559 struct Instantiation * MkInstantiationNamed(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members)
2561 struct Instantiation * inst = (inst = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Instantiation), inst->exp = exp, inst->members = members, inst);
2563 if(specs != (((void *)0)))
2565 struct Specifier * spec;
2567 for(spec = specs->first; spec; spec = spec->next)
2570 inst->_class = spec;
2571 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(specs, spec);
2574 FreeList(specs, (void *)(FreeSpecifier));
2577 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Expecting class specifier\n", (((void *)0))));
2578 inst->_class = MkSpecifierName("");
2584 struct Context * PushContext()
2586 struct Context * ctx = (ctx = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ctx->parent = curContext, ctx);
2592 struct AsmField * MkAsmField(char * command, struct Expression * expression, struct Identifier * symbolic)
2594 return __extension__ ({
2595 struct AsmField * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_AsmField);
2597 __ecereInstance1->command = command, __ecereInstance1->expression = expression, __ecereInstance1->symbolic = symbolic, __ecereInstance1;
2601 struct PropertyWatch * MkDeleteWatch(struct Statement * compound)
2603 return __extension__ ({
2604 struct PropertyWatch * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_PropertyWatch);
2606 __ecereInstance1->compound = compound, __ecereInstance1->deleteWatch = 1, __ecereInstance1;
2610 struct PropertyWatch * MkPropertyWatch(struct __ecereNameSpace__ecere__sys__OldList * properties, struct Statement * compound)
2612 return __extension__ ({
2613 struct PropertyWatch * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_PropertyWatch);
2615 __ecereInstance1->compound = compound, __ecereInstance1->properties = properties, __ecereInstance1;
2619 struct DBTableDef * MkDBTableDef(char * name, struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * definitions)
2621 return __extension__ ({
2622 struct DBTableDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_DBTableDef);
2624 __ecereInstance1->name = name, __ecereInstance1->symbol = symbol, __ecereInstance1->definitions = definitions, __ecereInstance1;
2628 struct DBTableEntry * MkDBFieldEntry(struct TypeName * type, struct Identifier * id, char * name)
2630 return __extension__ ({
2631 struct DBTableEntry * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_DBTableEntry);
2633 __ecereInstance1->type = 0, __ecereInstance1->__anon1.__anon1.dataType = type, __ecereInstance1->id = id, __ecereInstance1->__anon1.__anon1.name = name, __ecereInstance1;
2637 struct DBTableEntry * MkDBIndexEntry(struct __ecereNameSpace__ecere__sys__OldList * items, struct Identifier * id)
2639 return __extension__ ({
2640 struct DBTableEntry * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_DBTableEntry);
2642 __ecereInstance1->type = 1, __ecereInstance1->__anon1.items = items, __ecereInstance1->id = id, __ecereInstance1;
2646 struct DBIndexItem * MkDBIndexItem(struct Identifier * id, int order)
2648 return __extension__ ({
2649 struct DBIndexItem * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_DBIndexItem);
2651 __ecereInstance1->id = id, __ecereInstance1->order = order, __ecereInstance1;
2655 void __ecereCreateModuleInstances_ast()
2657 intlStrings = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Map_TPL_ContextStringPair__ecere__com__List_TPL_Location___);
2658 __ecereNameSpace__ecere__com__eInstance_IncRef(intlStrings);
2661 struct TemplateParameter * MkTypeTemplateParameter(struct Identifier * identifier, struct TemplateDatatype * baseTplDatatype, struct TemplateArgument * defaultArgument)
2663 if(identifier->string)
2665 struct TemplateParameter * param = (param = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplateParameter), param->type = 0, param->identifier = identifier, param->__anon1.dataType = baseTplDatatype, param->defaultArgument = defaultArgument, param);
2666 struct TemplatedType * type = (type = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplatedType), type->key = (uintptr_t)identifier->string, type->param = param, type);
2668 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&curContext->templateTypes, (struct __ecereNameSpace__ecere__sys__BTNode *)type))
2669 ((type ? __extension__ ({
2670 void * __ecerePtrToDelete = (type);
2672 __ecereClass_TemplatedType->Destructor ? __ecereClass_TemplatedType->Destructor((void *)__ecerePtrToDelete) : 0, __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor ? __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
2676 return (((void *)0));
2679 void OutputIntlStrings()
2681 if(((struct __ecereNameSpace__ecere__com__CustomAVLTree *)(((char *)intlStrings + 0 + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->count)
2683 const char * srcFile = GetSourceFile();
2684 const char * objFile = GetOutputFile();
2685 char srcFileFixed[797];
2687 struct __ecereNameSpace__ecere__com__Instance * f;
2689 __ecereNameSpace__ecere__sys__ChangeExtension(objFile, "bowl", potFile);
2690 f = __ecereNameSpace__ecere__sys__FileOpen(potFile, 2);
2693 const char * filePrefix = "";
2695 if(!(srcFile[0] && (srcFile[1] == ':' || srcFile[0] == '/')))
2697 __ecereNameSpace__ecere__sys__GetSlashPathBuffer(srcFileFixed, srcFile);
2699 struct __ecereNameSpace__ecere__com__MapIterator s = (s.container = (void *)0, s.pointer = (void *)0, __ecereProp___ecereNameSpace__ecere__com__MapIterator_Set_map(&s, (intlStrings)), s);
2701 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next((void *)(&s)))
2703 struct ContextStringPair pair = (*(struct ContextStringPair *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__MapIterator_Get_key(&s));
2706 struct __ecereNameSpace__ecere__com__Iterator l =
2708 ((struct __ecereNameSpace__ecere__com__Instance *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data((void *)(&s))), 0
2711 while(__ecereMethod___ecereNameSpace__ecere__com__Iterator_Next(&l))
2712 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "#: %s%s:%d\n", filePrefix, srcFileFixed, (*(struct Location *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&l)).start.line);
2715 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "msgctxt \"%s\"\n", pair.context);
2716 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "msgid \"%s\"\n", pair.string);
2717 __ecereMethod___ecereNameSpace__ecere__sys__File_Printf(f, "msgstr \"%s\"\n\n", pair.string);
2720 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
2723 void (* __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *);
2725 __internal_VirtualMethod = ((void (*)(struct __ecereNameSpace__ecere__com__Instance *))__extension__ ({
2726 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = intlStrings;
2728 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__Map->_vTbl;
2729 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Free]);
2730 __internal_VirtualMethod ? __internal_VirtualMethod(intlStrings) : (void)1;
2735 void __ecereUnregisterModule_ast(struct __ecereNameSpace__ecere__com__Instance * module)
2740 unsigned int ModuleAccess(struct __ecereNameSpace__ecere__com__Instance * searchIn, struct __ecereNameSpace__ecere__com__Instance * searchFor)
2742 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2744 if(searchFor == searchIn)
2746 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)searchIn + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->modules.first; subModule; subModule = subModule->next)
2748 if(subModule->importMode == 1)
2750 if(ModuleAccess(subModule->module, searchFor))
2757 struct Expression * MkExpIntlString(const char * string, const char * context)
2761 struct __ecereNameSpace__ecere__sys__OldList * list = MkList();
2766 struct ContextStringPair pair =
2770 struct __ecereNameSpace__ecere__com__Instance * list;
2771 int len = strlen(string);
2773 pair.string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len - 2 + 1));
2774 memcpy(pair.string, string + 1, len - 2);
2775 pair.string[len - 2] = '\0';
2778 len = strlen(context);
2779 pair.context = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned char) * (len - 2 + 1));
2780 memcpy(pair.context, context + 1, len - 2);
2781 pair.context[len - 2] = '\0';
2783 list = (((struct __ecereNameSpace__ecere__com__Instance *)((uintptr_t)(__extension__ ({
2784 struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
2789 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, ((uint64)(uintptr_t)(&pair)), 0);
2790 ((struct __ecereNameSpace__ecere__com__Instance *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&__internalIterator));
2794 list = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__List_TPL_Location_);
2796 struct __ecereNameSpace__ecere__com__Iterator __internalIterator =
2801 __ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, ((uint64)(uintptr_t)(&pair)), 1);
2802 __ecereProp___ecereNameSpace__ecere__com__Iterator_Set_data(&__internalIterator, (uint64)(uintptr_t)(list));
2807 (__ecereNameSpace__ecere__com__eSystem_Delete(pair.string), pair.string = 0);
2808 (__ecereNameSpace__ecere__com__eSystem_Delete(pair.context), pair.context = 0);
2811 struct __ecereNameSpace__ecere__com__IteratorPointer * (* __internal_VirtualMethod)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value);
2813 __internal_VirtualMethod = ((struct __ecereNameSpace__ecere__com__IteratorPointer * (*)(struct __ecereNameSpace__ecere__com__Instance *, uint64 value))__extension__ ({
2814 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = list;
2816 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__List->_vTbl;
2817 })[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Add]);
2818 __internal_VirtualMethod ? __internal_VirtualMethod(list, (uint64)(uintptr_t)(&yylloc)) : (struct __ecereNameSpace__ecere__com__IteratorPointer *)1;
2821 s = QMkString(i18nModuleName ? i18nModuleName : "");
2822 ListAdd(list, MkExpString(s));
2823 (__ecereNameSpace__ecere__com__eSystem_Delete(s), s = 0);
2824 ListAdd(list, MkExpString(string));
2827 int lenString = strlen(string), lenContext = strlen(context);
2828 char * msgid = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (lenString - 2 + lenContext - 2 + 4));
2831 memcpy(msgid + 1, context + 1, lenContext - 2);
2832 msgid[1 + lenContext - 2] = 4;
2833 memcpy(msgid + 1 + lenContext - 2 + 1, string + 1, lenString - 2);
2834 memcpy(msgid + 1 + lenContext - 2 + 1 + lenString - 2, "\"", 2);
2835 ListAdd(list, MkExpString(msgid));
2836 (__ecereNameSpace__ecere__com__eSystem_Delete(msgid), msgid = 0);
2839 ListAdd(list, QMkExpId("null"));
2840 return MkExpCall(QMkExpId("GetTranslatedString"), list);
2844 struct Expression * e = MkExpString(string);
2846 e->__anon1.__anon2.intlString = 1;
2851 struct ModuleImport * FindModule(struct __ecereNameSpace__ecere__com__Instance * moduleToFind)
2853 struct ModuleImport * module;
2855 if(!((struct __ecereNameSpace__ecere__com__Module *)(((char *)moduleToFind + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->name)
2857 for(module = (*imports).first; module; module = module->next)
2858 if(module->name && !strcmp(module->name, ((struct __ecereNameSpace__ecere__com__Module *)(((char *)moduleToFind + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->name))
2862 module = __extension__ ({
2863 struct ModuleImport * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ModuleImport);
2865 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(((struct __ecereNameSpace__ecere__com__Module *)(((char *)moduleToFind + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->name), __ecereInstance1->importType = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)moduleToFind + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->importType, __ecereInstance1->importAccess = ModuleAccess(privateModule, moduleToFind) ? 1 : 2, __ecereInstance1;
2867 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*imports), module);
2872 struct Symbol * FindClass(const char * name)
2874 struct Symbol * cl = (((void *)0));
2875 struct __ecereNameSpace__ecere__com__Class * _class;
2876 unsigned int global = 0;
2877 char fullName[1024];
2879 if(name[0] == ':' && name[1] == ':')
2884 if(!global && (currentNameSpace || defaultNameSpace) && declMode != 0 && defaultDeclMode != 0)
2886 int len = 0, stringLen;
2888 if(defaultNameSpace)
2890 memcpy(fullName, defaultNameSpace, defaultNameSpaceLen);
2891 len += defaultNameSpaceLen;
2892 fullName[len++] = ':';
2893 fullName[len++] = ':';
2895 if(currentNameSpace)
2897 memcpy(fullName + len, currentNameSpace, currentNameSpaceLen);
2898 len += currentNameSpaceLen;
2899 fullName[len++] = ':';
2900 fullName[len++] = ':';
2902 stringLen = strlen(name);
2903 memcpy(fullName + len, name, stringLen);
2906 cl = globalContext ? (struct Symbol *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&globalContext->classes, fullName) : (((void *)0));
2909 cl = globalContext ? (struct Symbol *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&globalContext->classes, name) : (((void *)0));
2912 for(cl = globalContext ? (struct Symbol *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&globalContext->classes) : (((void *)0)); cl; cl = (struct Symbol *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)cl)))
2914 if(cl->shortName && !strcmp(cl->shortName, name))
2920 _class = (((void *)0));
2921 if(!global && (currentNameSpace || defaultNameSpace) && declMode != 0 && defaultDeclMode != 0)
2922 _class = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, fullName);
2924 _class = __ecereNameSpace__ecere__com__eSystem_FindClass(privateModule, name);
2927 name = _class->fullName;
2928 cl = (struct Symbol *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&globalContext->classes, name);
2931 cl = __extension__ ({
2932 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
2934 __ecereInstance1->string = __ecereNameSpace__ecere__sys__CopyString(name), __ecereInstance1->__anon1.registered = _class, __ecereInstance1->notYetDeclared = 1, __ecereInstance1->imported = 1, __ecereInstance1;
2936 _class->symbol = cl;
2938 cl->module = FindModule(_class->module);
2940 cl->module = mainModule;
2941 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&globalContext->classes, (struct __ecereNameSpace__ecere__sys__BTNode *)cl))
2942 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), cl);
2943 if(strcmp(name, _class->name))
2944 cl->shortName = __ecereNameSpace__ecere__sys__CopyString(_class->name);
2951 struct Identifier * MkIdentifier(const char * string)
2953 struct Identifier * id = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Identifier);
2956 id->_class = (((void *)0));
2959 const char * namePart;
2960 unsigned int gotColon = 0;
2962 for(c = strlen(string) - 1; c >= 0; c--)
2963 if(string[c] == ':')
2968 namePart = string + c + 1;
2969 while(c >= 0 && string[c] == ':')
2974 struct Symbol * symbol;
2976 memcpy(name, string, c + 1);
2978 if(!strcmp(name, "typed_object"))
2980 id->_class = MkSpecifierName("typed_object");
2981 id->string = __ecereNameSpace__ecere__sys__CopyString(namePart);
2983 else if(!strcmp(name, "property"))
2985 id->_class = MkSpecifierName("property");
2986 id->string = __ecereNameSpace__ecere__sys__CopyString(namePart);
2988 else if(!strcmp(name, "typed_object&"))
2990 id->_class = MkSpecifierName("typed_object&");
2991 id->string = __ecereNameSpace__ecere__sys__CopyString(namePart);
2993 else if(!strcmp(name, "any_object"))
2995 id->_class = MkSpecifierName("any_object");
2996 id->string = __ecereNameSpace__ecere__sys__CopyString(namePart);
3000 struct TemplatedType * templatedType = FindTemplateTypeParameter(curContext, name);
3004 id->_class = __extension__ ({
3005 struct Specifier * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier);
3007 __ecereInstance1->type = 8, __ecereInstance1->__anon1.templateParameter = templatedType->param, __ecereInstance1;
3009 id->string = __ecereNameSpace__ecere__sys__CopyString(namePart);
3013 symbol = FindClass(name);
3016 id->_class = _MkSpecifierName(symbol->string, symbol, (((void *)0)));
3017 id->string = __ecereNameSpace__ecere__sys__CopyString(namePart);
3020 id->string = __ecereNameSpace__ecere__sys__CopyString(string);
3026 id->_class = MkSpecifierName((((void *)0)));
3027 id->string = __ecereNameSpace__ecere__sys__CopyString(namePart);
3030 id->string = __ecereNameSpace__ecere__sys__CopyString(string);
3033 id->string = __ecereNameSpace__ecere__sys__CopyString("");
3037 void SetClassTemplateArgs(struct Specifier * spec, struct __ecereNameSpace__ecere__sys__OldList * templateArgs)
3041 struct Symbol * symbol = spec->__anon1.__anon1.symbol;
3043 spec->__anon1.__anon1.templateArgs = templateArgs;
3044 if(templateArgs && templateArgs->first)
3046 char templateString[1024];
3047 struct TemplateArgument * arg;
3049 strcpy(templateString, symbol ? symbol->string : spec->__anon1.__anon1.name);
3050 strcat(templateString, "<");
3051 for(arg = templateArgs->first; arg; arg = arg->next)
3060 char expString[1024];
3061 struct __ecereNameSpace__ecere__com__Class * backupThisClass = thisClass;
3063 thisClass = (((void *)0));
3064 expString[0] = '\0';
3065 PrintExpression(arg->__anon1.expression, expString);
3066 strcat(argument, expString);
3067 thisClass = backupThisClass;
3072 strcat(argument, arg->__anon1.identifier->string);
3077 char * typeString = StringFromSpecDecl(arg->__anon1.templateDatatype->specifiers, arg->__anon1.templateDatatype->decl);
3079 strcat(argument, typeString);
3080 (__ecereNameSpace__ecere__com__eSystem_Delete(typeString), typeString = 0);
3087 strcat(templateString, ", ");
3090 strcat(templateString, arg->name->string);
3091 strcat(templateString, " = ");
3093 strcat(templateString, argument);
3097 int len = strlen(templateString);
3099 if(templateString[len - 1] == '>')
3100 templateString[len++] = ' ';
3101 templateString[len++] = '>';
3102 templateString[len++] = '\0';
3104 symbol = FindClass(templateString);
3105 if(!symbol && spec->__anon1.__anon1.symbol)
3107 symbol = _DeclClass((((void *)0)), templateString);
3108 symbol->notYetDeclared = 1;
3110 if(spec->__anon1.__anon1.symbol)
3111 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&spec->__anon1.__anon1.symbol->templatedClasses, __extension__ ({
3112 struct __ecereNameSpace__ecere__sys__OldLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__sys__OldLink));
3114 __ecereInstance1->data = symbol, __ecereInstance1;
3116 (__ecereNameSpace__ecere__com__eSystem_Delete(spec->__anon1.__anon1.name), spec->__anon1.__anon1.name = 0);
3117 spec->__anon1.__anon1.symbol = symbol;
3118 spec->__anon1.__anon1.name = __ecereNameSpace__ecere__sys__CopyString(symbol ? symbol->string : templateString);
3122 FreeList(templateArgs, (void *)(FreeTemplateArgument));
3125 struct Symbol * _DeclClass(struct Specifier * _class, const char * name)
3127 struct Symbol * symbol;
3128 char nameBuffer[1024];
3132 strcpy(nameBuffer, _class->__anon1.__anon1.name ? _class->__anon1.__anon1.name : "");
3133 strcat(nameBuffer, "::");
3134 strcat(nameBuffer, name);
3137 symbol = FindClass(name);
3140 if(name[0] == ':' && name[1] == ':')
3142 symbol = __extension__ ({
3143 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
3145 __ecereInstance1->string = __ecereNameSpace__ecere__sys__CopyString(name), __ecereInstance1->notYetDeclared = 1, __ecereInstance1;
3147 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&globalContext->classes, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
3148 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
3153 for(c = 0; (ch = name[c]); c++)
3155 if(ch == '.' || (ch == ':' && name[c + 1] == ':'))
3162 if(start && c - start)
3163 symbol->shortName = __ecereNameSpace__ecere__sys__CopyString(name + start);
3169 int CheckType(const char * text)
3173 if(!strcmp(text, "WINAPI"))
3175 else if(!strcmp(text, "BOOL") || !strcmp(text, "WINUSERAPI"))
3178 if(FindTemplateTypeParameter(curContext, text))
3182 if(FindType(curContext, text))
3193 struct Type * MkClassType(const char * name)
3197 struct Type * type = (type = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type), type->kind = 8, type->__anon1._class = FindClass(name), type);
3199 if(!type->__anon1._class)
3206 return (((void *)0));
3209 struct TypeName * MkTypeNameGuessDecl(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator)
3211 if(qualifiers != (((void *)0)))
3213 unsigned int gotType = 0;
3214 unsigned int gotFullType = 0;
3215 struct Specifier * spec, * next;
3217 for(spec = qualifiers->first; spec; spec = next)
3220 if(gotType && !declarator && ((spec->type == 1 && spec->__anon1.__anon1.name) || (spec->type == 0 && gotFullType)))
3222 const char * s = (((void *)0));
3226 char * colon = __ecereNameSpace__ecere__sys__RSearchString(spec->__anon1.__anon1.name, "::", strlen(spec->__anon1.__anon1.name), 1, 0);
3228 s = colon ? colon + 2 : spec->__anon1.__anon1.name;
3230 else if(spec->type == 0)
3232 if(spec->__anon1.specifier == INT64)
3234 else if(spec->__anon1.specifier == INT128)
3239 declarator = MkDeclaratorIdentifier(MkIdentifier(s));
3240 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(qualifiers, spec);
3241 FreeSpecifier(spec);
3242 spec = (((void *)0));
3245 if(spec && spec->type != 5)
3249 if(spec->__anon1.specifier == CONST || spec->__anon1.specifier == VOLATILE || spec->__anon1.specifier == EXTERN || spec->__anon1.specifier == STATIC || spec->__anon1.specifier == AUTO || spec->__anon1.specifier == REGISTER)
3251 else if(spec->__anon1.specifier != UNSIGNED && spec->__anon1.specifier != SIGNED && spec->__anon1.specifier != LONG)
3263 return __extension__ ({
3264 struct TypeName * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TypeName);
3266 __ecereInstance1->qualifiers = qualifiers, __ecereInstance1->declarator = declarator, __ecereInstance1;
3270 void SetupBaseSpecs(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs)
3272 if(baseSpecs && baseSpecs->first && ((struct Specifier *)baseSpecs->first)->type == 1)
3275 struct Symbol * baseClass;
3278 strcpy(name, ((struct Specifier *)baseSpecs->first)->__anon1.__anon1.name);
3279 tpl = strchr(name, '<');
3282 baseClass = FindClass(name);
3283 if(baseClass && baseClass->ctx)
3285 struct TemplatedType * copy;
3287 for(copy = (struct TemplatedType *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&baseClass->ctx->templateTypes); copy; copy = (struct TemplatedType *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next((void *)(copy)))
3289 struct TemplatedType * type = (type = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplatedType), type->key = copy->key, type->param = copy->param, type);
3291 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&curContext->templateTypes, (struct __ecereNameSpace__ecere__sys__BTNode *)type))
3292 ((type ? __extension__ ({
3293 void * __ecerePtrToDelete = (type);
3295 __ecereClass_TemplatedType->Destructor ? __ecereClass_TemplatedType->Destructor((void *)__ecerePtrToDelete) : 0, __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor ? __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
3299 else if(baseClass && baseClass->__anon1.registered)
3301 struct __ecereNameSpace__ecere__com__Class * sClass;
3303 for(sClass = baseClass->__anon1.registered; sClass; sClass = sClass->base)
3305 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * p;
3307 for(p = sClass->templateParams.first; p; p = p->next)
3311 struct TemplateParameter * param = p->param;
3312 struct TemplatedType * type;
3316 p->param = param = __extension__ ({
3317 struct TemplateParameter * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplateParameter);
3319 __ecereInstance1->identifier = MkIdentifier(p->name), __ecereInstance1->type = p->type, __ecereInstance1->dataTypeString = p->__anon1.dataTypeString, __ecereInstance1;
3322 type = __extension__ ({
3323 struct TemplatedType * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_TemplatedType);
3325 __ecereInstance1->key = (uintptr_t)p->name, __ecereInstance1->param = param, __ecereInstance1;
3327 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&curContext->templateTypes, (struct __ecereNameSpace__ecere__sys__BTNode *)type))
3328 ((type ? __extension__ ({
3329 void * __ecerePtrToDelete = (type);
3331 __ecereClass_TemplatedType->Destructor ? __ecereClass_TemplatedType->Destructor((void *)__ecerePtrToDelete) : 0, __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor ? __ecereClass___ecereNameSpace__ecere__sys__BTNode->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
3340 struct Specifier * _MkSpecifierName(const char * name, struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * templateArgs)
3342 struct Specifier * spec = (spec = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Specifier), spec->type = 1, spec);
3348 struct TemplatedType * templatedType = FindTemplateTypeParameter(curContext, name);
3352 spec->__anon1.templateParameter = templatedType->param;
3357 symbol = FindClass(name);
3359 if(symbol && symbol->__anon1.registered && symbol->__anon1.registered->isRemote == 1)
3361 char className[1024];
3363 strcpy(className, "DCOMClient_");
3364 if(!strncmp(name, className, strlen(className)))
3365 spec->__anon1.__anon1.name = __ecereNameSpace__ecere__sys__CopyString(name);
3368 strcat(className, name);
3369 spec->__anon1.__anon1.name = __ecereNameSpace__ecere__sys__CopyString(className);
3374 char nameSpace[1024];
3375 char * c = strstr(name, symbol->string);
3377 spec->__anon1.__anon1.name = __ecereNameSpace__ecere__sys__CopyString(symbol->string);
3378 if(c && c >= name + 2 && c[-1] == ':' && c[-2] == ':')
3382 memcpy(nameSpace, name, c - name - 2);
3383 nameSpace[c - name] = 0;
3384 spec->__anon1.__anon1.nsSpec = _MkSpecifierName(nameSpace, (((void *)0)), (((void *)0)));
3387 spec->__anon1.__anon1.nsSpec = _MkSpecifierName((((void *)0)), (((void *)0)), (((void *)0)));
3391 spec->__anon1.__anon1.name = __ecereNameSpace__ecere__sys__CopyString(name);
3392 spec->__anon1.__anon1.symbol = symbol;
3393 if(templateArgs != (((void *)0)))
3394 SetClassTemplateArgs(spec, templateArgs);
3401 struct Expression * GetTemplateArgExpByName(const char * paramName, struct __ecereNameSpace__ecere__com__Class * curClass, int tplType);
3403 struct Expression * GetTemplateArgExp(struct TemplateParameter * param, struct __ecereNameSpace__ecere__com__Class * curClass, unsigned int pointer)
3405 return param->identifier ? GetTemplateArgExpByName(param->identifier->string, curClass, 0) : (((void *)0));
3412 struct Declaration * prev;
3413 struct Declaration * next;
3414 struct Location loc;
3420 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
3421 struct __ecereNameSpace__ecere__sys__OldList * declarators;
3422 } ecere_gcc_struct __anon1;
3423 struct Instantiation * inst;
3426 struct Identifier * id;
3427 struct Expression * exp;
3428 } ecere_gcc_struct __anon2;
3429 } ecere_gcc_struct __anon1;
3430 struct Specifier * extStorage;
3431 struct Symbol * symbol;
3437 struct Statement * prev;
3438 struct Statement * next;
3439 struct Location loc;
3443 struct __ecereNameSpace__ecere__sys__OldList * expressions;
3446 struct Identifier * id;
3447 struct Statement * stmt;
3448 } ecere_gcc_struct labeled;
3451 struct Expression * exp;
3452 struct Statement * stmt;
3453 } ecere_gcc_struct caseStmt;
3456 struct __ecereNameSpace__ecere__sys__OldList * declarations;
3457 struct __ecereNameSpace__ecere__sys__OldList * statements;
3458 struct Context * context;
3459 unsigned int isSwitch;
3460 } ecere_gcc_struct compound;
3463 struct __ecereNameSpace__ecere__sys__OldList * exp;
3464 struct Statement * stmt;
3465 struct Statement * elseStmt;
3466 } ecere_gcc_struct ifStmt;
3469 struct __ecereNameSpace__ecere__sys__OldList * exp;
3470 struct Statement * stmt;
3471 } ecere_gcc_struct switchStmt;
3474 struct __ecereNameSpace__ecere__sys__OldList * exp;
3475 struct Statement * stmt;
3476 } ecere_gcc_struct whileStmt;
3479 struct __ecereNameSpace__ecere__sys__OldList * exp;
3480 struct Statement * stmt;
3481 } ecere_gcc_struct doWhile;
3484 struct Statement * init;
3485 struct Statement * check;
3486 struct __ecereNameSpace__ecere__sys__OldList * increment;
3487 struct Statement * stmt;
3488 } ecere_gcc_struct forStmt;
3491 struct Identifier * id;
3492 } ecere_gcc_struct gotoStmt;
3495 struct Specifier * spec;
3497 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
3498 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
3499 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
3500 } ecere_gcc_struct asmStmt;
3503 struct Expression * watcher;
3504 struct Expression * object;
3505 struct __ecereNameSpace__ecere__sys__OldList * watches;
3506 } ecere_gcc_struct _watch;
3509 struct Identifier * id;
3510 struct __ecereNameSpace__ecere__sys__OldList * exp;
3511 struct __ecereNameSpace__ecere__sys__OldList * filter;
3512 struct Statement * stmt;
3513 } ecere_gcc_struct forEachStmt;
3514 struct Declaration * decl;
3515 } ecere_gcc_struct __anon1;
3520 struct External * prev;
3521 struct External * next;
3522 struct Location loc;
3524 struct Symbol * symbol;
3527 struct FunctionDefinition * function;
3528 struct ClassDefinition * _class;
3529 struct Declaration * declaration;
3530 char * importString;
3531 struct Identifier * id;
3532 struct DBTableDef * table;
3533 } ecere_gcc_struct __anon1;
3535 struct External * fwdDecl;
3536 struct __ecereNameSpace__ecere__com__Instance * outgoing;
3537 struct __ecereNameSpace__ecere__com__Instance * incoming;
3538 int nonBreakableIncoming;
3541 struct Declaration * MkDeclarationInst(struct Instantiation * inst)
3543 struct Declaration * decl = (decl = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declaration), decl->type = 2, decl->__anon1.inst = inst, decl->loc = yylloc, decl);
3544 struct Symbol * symbol;
3546 if(curContext == globalContext && (currentNameSpace || defaultNameSpace) && declMode != 0 && defaultDeclMode != 0)
3549 int len = 0, stringLen;
3551 if(defaultNameSpace)
3553 memcpy(name, defaultNameSpace, defaultNameSpaceLen);
3554 len += defaultNameSpaceLen;
3558 if(currentNameSpace)
3560 memcpy(name + len, currentNameSpace, currentNameSpaceLen);
3561 len += currentNameSpaceLen;
3565 stringLen = strlen(inst->exp->__anon1.__anon1.identifier->string);
3566 memcpy(name + len, inst->exp->__anon1.__anon1.identifier->string, stringLen);
3569 (__ecereNameSpace__ecere__com__eSystem_Delete(inst->exp->__anon1.__anon1.identifier->string), inst->exp->__anon1.__anon1.identifier->string = 0);
3570 inst->exp->__anon1.__anon1.identifier->string = __ecereNameSpace__ecere__sys__CopyString(name);
3572 symbol = __extension__ ({
3573 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
3575 __ecereInstance1->string = (inst->exp->type == 0) ? __ecereNameSpace__ecere__sys__CopyString(inst->exp->__anon1.__anon1.identifier->string) : (((void *)0)), __ecereInstance1->type = MkClassTypeSymbol(inst->_class->__anon1.__anon1.symbol), __ecereInstance1;
3577 if(strstr(symbol->string, "::"))
3578 curContext->hasNameSpace = 1;
3579 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(curContext->templateTypesOnly ? curContext->parent : curContext)->symbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
3580 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
3581 decl->symbol = inst->symbol = symbol;
3585 struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators)
3587 struct Declaration * decl = (decl = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declaration), decl->type = 1, decl->__anon1.__anon1.declarators = initDeclarators, decl->__anon1.__anon1.specifiers = specifiers, decl->loc = yylloc, decl);
3588 unsigned int variable = 1;
3590 if(specifiers != (((void *)0)))
3592 unsigned int gotType = 0;
3593 struct Specifier * spec, * next;
3595 for(spec = specifiers->first; spec; spec = next)
3598 if(spec->type == 0 && spec->__anon1.specifier == TYPEDEF)
3600 if(initDeclarators != (((void *)0)))
3602 struct InitDeclarator * d;
3604 for(d = initDeclarators->first; d; d = d->next)
3606 if(GetDeclId(d->declarator)->string)
3608 struct Symbol * type = (type = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol), type->string = __ecereNameSpace__ecere__sys__CopyString(GetDeclId(d->declarator)->string), type->type = ProcessType(specifiers, d->declarator), type);
3610 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(curContext->templateTypesOnly ? curContext->parent : curContext)->types, (struct __ecereNameSpace__ecere__sys__BTNode *)type))
3611 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), type);
3612 decl->symbol = d->declarator->symbol = type;
3618 spec = specifiers->last;
3620 if((spec->type == 1 && spec->__anon1.__anon1.name) || spec->type == 0)
3622 const char * s = (((void *)0));
3626 const char * colon = __ecereNameSpace__ecere__sys__RSearchString(spec->__anon1.__anon1.name, "::", strlen(spec->__anon1.__anon1.name), 1, 0);
3628 s = colon ? colon + 2 : spec->__anon1.__anon1.name;
3630 else if(spec->type == 0)
3632 if(spec->__anon1.specifier == INT64)
3634 else if(spec->__anon1.specifier == INT128)
3639 struct Symbol * type = (type = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol), type->string = __ecereNameSpace__ecere__sys__CopyString(s), type->type = ProcessType(specifiers, (((void *)0))), type);
3641 decl->symbol = type;
3642 decl->__anon1.__anon1.declarators = initDeclarators = MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(s)), (((void *)0))));
3643 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(specifiers, spec);
3644 FreeSpecifier(spec);
3645 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(curContext->templateTypesOnly ? curContext->parent : curContext)->types, (struct __ecereNameSpace__ecere__sys__BTNode *)type))
3646 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), type);
3654 else if(spec->type == 0 && (spec->__anon1.specifier == STRUCT || spec->__anon1.specifier == UNION))
3658 if(gotType && initDeclarators == (((void *)0)) && !spec->next && ((spec->type == 1 && spec->__anon1.__anon1.name) || spec->type == 0))
3660 const char * s = (((void *)0));
3664 char * colon = __ecereNameSpace__ecere__sys__RSearchString(spec->__anon1.__anon1.name, "::", strlen(spec->__anon1.__anon1.name), 1, 0);
3666 s = colon ? colon + 2 : spec->__anon1.__anon1.name;
3668 else if(spec->type == 0)
3670 if(spec->__anon1.specifier == INT64)
3672 else if(spec->__anon1.specifier == INT128)
3677 decl->__anon1.__anon1.declarators = initDeclarators = MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(s)), (((void *)0))));
3678 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(specifiers, spec);
3679 FreeSpecifier(spec);
3680 spec = (((void *)0));
3684 if(spec && spec->type != 5)
3688 if(variable && initDeclarators)
3690 struct InitDeclarator * d;
3692 for(d = initDeclarators->first; d; d = d->next)
3694 struct Identifier * id = GetDeclId(d->declarator);
3696 if(id && id->string && id->string[0])
3700 struct Symbol * symbol;
3702 if(curContext == globalContext && (currentNameSpace || defaultNameSpace) && declMode != 0 && defaultDeclMode != 0)
3705 int len = 0, stringLen;
3707 if(defaultNameSpace)
3709 memcpy(name, defaultNameSpace, defaultNameSpaceLen);
3710 len += defaultNameSpaceLen;
3714 if(currentNameSpace)
3716 memcpy(name + len, currentNameSpace, currentNameSpaceLen);
3717 len += currentNameSpaceLen;
3721 stringLen = strlen(id->string);
3722 memcpy(name + len, id->string, stringLen);
3725 (__ecereNameSpace__ecere__com__eSystem_Delete(id->string), id->string = 0);
3726 id->string = __ecereNameSpace__ecere__sys__CopyString(name);
3728 symbol = (struct Symbol *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(curContext->templateTypesOnly ? curContext->parent : curContext)->symbols, id->string);
3729 if(!symbol && strcmp(id->string, "strlen"))
3731 symbol = __extension__ ({
3732 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
3734 __ecereInstance1->string = __ecereNameSpace__ecere__sys__CopyString(id->string), __ecereInstance1->type = ProcessType(specifiers, d->declarator), __ecereInstance1;
3736 if(strstr(symbol->string, "::"))
3737 curContext->hasNameSpace = 1;
3738 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(curContext->templateTypesOnly ? curContext->parent : curContext)->symbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
3739 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
3740 if(symbol->type && symbol->type->kind == 12 && !symbol->type->__anon1.__anon4.arraySizeExp && d->initializer)
3742 if(d->initializer->type == 1)
3746 sprintf(string, "%d", (*d->initializer->__anon1.list).count);
3747 symbol->type->__anon1.__anon4.arraySizeExp = MkExpConstant(string);
3748 symbol->type->__anon1.__anon4.freeExp = 1;
3750 else if(d->initializer->type == 0 && d->initializer->__anon1.exp->type == 3 && d->initializer->__anon1.exp->__anon1.__anon2.string)
3755 unsigned int escaped = 0;
3756 char * s = d->initializer->__anon1.exp->__anon1.__anon2.string;
3760 for(c = 1; (ch = s[c]); c++)
3762 if(ch == '\\' && !escaped)
3770 sprintf(string, "%d", count);
3771 symbol->type->__anon1.__anon4.arraySizeExp = MkExpConstant(string);
3772 symbol->type->__anon1.__anon4.freeExp = 1;
3776 decl->symbol = d->declarator->symbol = symbol;
3783 decl->symbol = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
3784 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), decl->symbol);
3789 struct Declaration * MkStructDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * declarators, struct Specifier * extStorage)
3791 struct Declaration * decl = (decl = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declaration), decl->type = 0, decl->__anon1.__anon1.declarators = declarators, decl->__anon1.__anon1.specifiers = specifiers, decl->extStorage = extStorage, decl->loc = yylloc, decl);
3793 if(specifiers != (((void *)0)))
3795 unsigned int gotType = 0;
3796 struct Specifier * spec, * next;
3798 for(spec = specifiers->first; spec; spec = next)
3801 if(gotType && declarators == (((void *)0)) && ((spec->type == 1 && spec->__anon1.__anon1.name) || spec->type == 0))
3803 const char * s = (((void *)0));
3807 const char * colon = __ecereNameSpace__ecere__sys__RSearchString(spec->__anon1.__anon1.name, "::", strlen(spec->__anon1.__anon1.name), 1, 0);
3809 s = colon ? colon + 2 : spec->__anon1.__anon1.name;
3811 else if(spec->type == 0)
3813 if(spec->__anon1.specifier == INT64)
3815 else if(spec->__anon1.specifier == INT128)
3820 decl->__anon1.__anon1.declarators = declarators = MkListOne(MkStructDeclarator(MkDeclaratorIdentifier(MkIdentifier(s)), (((void *)0))));
3821 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(specifiers, spec);
3822 FreeSpecifier(spec);
3823 spec = (((void *)0));
3826 if(spec && spec->type != 5)
3833 struct Declaration * MkDeclarationClassInst(struct Instantiation * inst)
3835 return __extension__ ({
3836 struct Declaration * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declaration);
3838 __ecereInstance1->type = 2, __ecereInstance1->__anon1.inst = inst, __ecereInstance1->loc = yylloc, __ecereInstance1;
3842 struct Declaration * MkDeclarationDefine(struct Identifier * id, struct Expression * exp)
3844 struct Declaration * decl = (decl = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Declaration), decl->type = 3, decl->__anon1.__anon2.id = id, decl->__anon1.__anon2.exp = exp, decl->loc = yylloc, decl);
3845 char expString[1024];
3847 expString[0] = '\0';
3848 PrintExpression(exp, expString);
3849 if(curContext == globalContext && (currentNameSpace || defaultNameSpace) && declMode != 0 && defaultDeclMode != 0)
3852 int len = 0, stringLen;
3854 if(defaultNameSpace)
3856 memcpy(name, defaultNameSpace, defaultNameSpaceLen);
3857 len += defaultNameSpaceLen;
3861 if(currentNameSpace)
3863 memcpy(name + len, currentNameSpace, currentNameSpaceLen);
3864 len += currentNameSpaceLen;
3868 stringLen = strlen(id->string);
3869 memcpy(name + len, id->string, stringLen);
3872 (__ecereNameSpace__ecere__com__eSystem_Delete(id->string), id->string = 0);
3873 id->string = __ecereNameSpace__ecere__sys__CopyString(name);
3875 if(!__ecereNameSpace__ecere__com__eSystem_FindDefine(privateModule, id->string))
3876 __ecereNameSpace__ecere__com__eSystem_RegisterDefine(id->string, expString, privateModule, buildingECERECOMModule ? 4 : 1);
3878 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "Redefinition of %s ignored\n", (((void *)0))), id->string);
3882 struct Statement * MkLabeledStmt(struct Identifier * id, struct Statement * statement)
3884 return __extension__ ({
3885 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
3887 __ecereInstance1->type = 0, __ecereInstance1->__anon1.labeled.id = id, __ecereInstance1->__anon1.labeled.stmt = statement, __ecereInstance1->loc = yylloc, __ecereInstance1;
3891 struct Statement * MkCaseStmt(struct Expression * exp, struct Statement * statement)
3893 return __extension__ ({
3894 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
3896 __ecereInstance1->type = 1, __ecereInstance1->__anon1.caseStmt.exp = exp, __ecereInstance1->__anon1.caseStmt.stmt = statement, __ecereInstance1->loc = yylloc, __ecereInstance1;
3900 struct Statement * MkIfStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement, struct Statement * elseStmt)
3902 return __extension__ ({
3903 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
3905 __ecereInstance1->type = 4, __ecereInstance1->__anon1.ifStmt.exp = exp, __ecereInstance1->__anon1.ifStmt.stmt = statement, __ecereInstance1->__anon1.ifStmt.elseStmt = elseStmt, __ecereInstance1->loc = yylloc, __ecereInstance1;
3909 struct Statement * MkSwitchStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement)
3912 statement->__anon1.compound.isSwitch = 1;
3913 return __extension__ ({
3914 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
3916 __ecereInstance1->type = 5, __ecereInstance1->__anon1.switchStmt.exp = exp, __ecereInstance1->__anon1.switchStmt.stmt = statement, __ecereInstance1->loc = yylloc, __ecereInstance1;
3920 struct Statement * MkWhileStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement)
3922 return __extension__ ({
3923 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
3925 __ecereInstance1->type = 6, __ecereInstance1->__anon1.whileStmt.exp = exp, __ecereInstance1->__anon1.whileStmt.stmt = statement, __ecereInstance1->loc = yylloc, __ecereInstance1;
3929 struct Statement * MkDoWhileStmt(struct Statement * statement, struct __ecereNameSpace__ecere__sys__OldList * exp)
3931 return __extension__ ({
3932 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
3934 __ecereInstance1->type = 7, __ecereInstance1->__anon1.doWhile.exp = exp, __ecereInstance1->__anon1.doWhile.stmt = statement, __ecereInstance1->loc = yylloc, __ecereInstance1;
3938 struct Statement * MkForStmt(struct Statement * init, struct Statement * check, struct __ecereNameSpace__ecere__sys__OldList * inc, struct Statement * statement)
3940 return __extension__ ({
3941 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
3943 __ecereInstance1->type = 8, __ecereInstance1->__anon1.forStmt.init = init, __ecereInstance1->__anon1.forStmt.check = check, __ecereInstance1->__anon1.forStmt.increment = inc, __ecereInstance1->__anon1.forStmt.stmt = statement, __ecereInstance1->loc = yylloc, __ecereInstance1;
3947 struct Statement * MkForEachStmt(struct Identifier * id, struct __ecereNameSpace__ecere__sys__OldList * exp, struct __ecereNameSpace__ecere__sys__OldList * filter, struct Statement * statement)
3949 return __extension__ ({
3950 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
3952 __ecereInstance1->type = 18, __ecereInstance1->__anon1.forEachStmt.id = id, __ecereInstance1->__anon1.forEachStmt.exp = exp, __ecereInstance1->__anon1.forEachStmt.filter = filter, __ecereInstance1->__anon1.forEachStmt.stmt = statement, __ecereInstance1->loc = yylloc, __ecereInstance1;
3956 void ProcessFunctionBody(struct FunctionDefinition * func, struct Statement * body)
3958 struct Declarator * declarator = func->declarator;
3959 struct Declarator * funcDecl = GetFuncDecl(declarator);
3960 struct Symbol * symbol;
3963 if(funcDecl && funcDecl->__anon1.function.parameters && body)
3965 struct Context * context = body->__anon1.compound.context;
3966 struct TypeName * param;
3968 for(param = (*funcDecl->__anon1.function.parameters).first; param; param = param->next)
3970 if(param->declarator)
3972 struct Symbol * symbol = (((void *)0));
3973 struct Identifier * id = GetDeclId(param->declarator);
3974 char * string = id ? id->string : (((void *)0));
3978 for(symbol = (struct Symbol *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&context->symbols); symbol; symbol = (struct Symbol *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)symbol)))
3979 if(!strcmp(symbol->string, string))
3983 symbol = __extension__ ({
3984 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
3986 __ecereInstance1->string = __ecereNameSpace__ecere__sys__CopyString(id->string), __ecereInstance1->type = ProcessType(param->qualifiers, param->declarator), __ecereInstance1->isParam = 1, __ecereInstance1;
3988 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&context->symbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
3989 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
3990 param->declarator->symbol = symbol;
3996 if(!declarator->symbol)
3998 struct Identifier * id = GetDeclId(declarator);
4000 if((currentNameSpace || defaultNameSpace) && declMode != 0 && defaultDeclMode != 0 && strcmp(id->string, "__on_register_module"))
4003 int len = 0, stringLen;
4005 if(defaultNameSpace)
4007 memcpy(name, defaultNameSpace, defaultNameSpaceLen);
4008 len += defaultNameSpaceLen;
4012 if(currentNameSpace)
4014 memcpy(name + len, currentNameSpace, currentNameSpaceLen);
4015 len += currentNameSpaceLen;
4019 stringLen = strlen(id->string);
4020 memcpy(name + len, id->string, stringLen);
4023 (__ecereNameSpace__ecere__com__eSystem_Delete(id->string), id->string = 0);
4024 id->string = __ecereNameSpace__ecere__sys__CopyString(name);
4026 symbol = __extension__ ({
4027 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
4029 __ecereInstance1->string = __ecereNameSpace__ecere__sys__CopyString(id->string), __ecereInstance1->type = ProcessType(func->specifiers, declarator), __ecereInstance1;
4031 if(strstr(symbol->string, "::"))
4032 globalContext->hasNameSpace = 1;
4033 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&globalContext->symbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
4034 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
4035 declarator->symbol = symbol;
4039 symbol = declarator->symbol;
4040 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*excludedSymbols), declarator->symbol);
4041 (__ecereNameSpace__ecere__com__eSystem_Delete(symbol->string), symbol->string = 0);
4042 symbol->string = __ecereNameSpace__ecere__sys__CopyString(GetDeclId(declarator)->string);
4043 if(strstr(symbol->string, "::"))
4044 globalContext->hasNameSpace = 1;
4045 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&globalContext->symbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
4046 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
4048 symbol->type = ProcessType(func->specifiers, declarator);
4050 if(symbol->type && (symbol->type->kind == 11 || symbol->type->kind == 16))
4052 if(!symbol->type->__anon1.__anon2.params.count)
4054 struct Type * type = (type = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type), type->refCount = 1, type);
4056 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&symbol->type->__anon1.__anon2.params, type);
4064 void ProcessClassFunctionBody(struct ClassFunction * func, struct Statement * body)
4066 struct Symbol * symbol;
4067 struct Declarator * decl = func->declarator;
4068 struct Declarator * funcDecl = GetFuncDecl(func->declarator);
4071 if(decl && !decl->symbol)
4073 struct __ecereNameSpace__ecere__sys__OldList * symbolSpecs = MkList();
4075 if(funcDecl && funcDecl->__anon1.function.parameters && body)
4077 struct Context * context = body->__anon1.compound.context;
4078 struct TypeName * param;
4080 for(param = (*funcDecl->__anon1.function.parameters).first; param; param = param->next)
4082 if(param->declarator)
4084 struct Symbol * symbol = (((void *)0));
4085 struct Identifier * id = GetDeclId(param->declarator);
4086 char * string = id ? id->string : (((void *)0));
4090 symbol = (struct Symbol *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&context->symbols, string);
4094 symbol = __extension__ ({
4095 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
4097 __ecereInstance1->string = __ecereNameSpace__ecere__sys__CopyString(id->string), __ecereInstance1->type = ProcessType(param->qualifiers, param->declarator), __ecereInstance1->isParam = 1, __ecereInstance1;
4099 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&context->symbols, (struct __ecereNameSpace__ecere__sys__BTNode *)symbol))
4100 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
4101 param->declarator->symbol = symbol;
4106 symbol = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
4108 struct Identifier * id = GetDeclId(funcDecl);
4114 for(c = strlen(id->string) - 1; c >= 0; c--)
4116 if(id->string[c] == ':')
4118 char * string = __ecereNameSpace__ecere__sys__CopyString(id->string + c + 1);
4120 id->string[c - 1] = 0;
4121 id->_class = MkSpecifierName(id->string);
4122 (__ecereNameSpace__ecere__com__eSystem_Delete(id->string), id->string = 0);
4123 id->string = string;
4127 symbol->string = __ecereNameSpace__ecere__sys__CopyString(id->string);
4130 if(func->specifiers)
4132 struct Specifier * spec;
4134 for(spec = (*func->specifiers).first; spec; spec = spec->next)
4135 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*symbolSpecs), CopySpecifier(spec));
4137 symbol->type = ProcessType(symbolSpecs, decl);
4138 decl->symbol = symbol;
4139 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
4140 FreeList(symbolSpecs, (void *)(FreeSpecifier));
4144 struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements)
4146 return __extension__ ({
4147 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4149 __ecereInstance1->type = 2, __ecereInstance1->__anon1.compound.declarations = declarations, __ecereInstance1->__anon1.compound.statements = statements, __ecereInstance1->loc = yylloc, __ecereInstance1;
4153 struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions)
4155 return __extension__ ({
4156 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4158 __ecereInstance1->type = 3, __ecereInstance1->__anon1.expressions = expressions, __ecereInstance1->loc = yylloc, __ecereInstance1;
4162 struct Statement * MkBadDeclStmt(struct Declaration * decl)
4164 return __extension__ ({
4165 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4167 __ecereInstance1->type = 14, __ecereInstance1->__anon1.decl = decl, __ecereInstance1->loc = yylloc, __ecereInstance1;
4171 struct Statement * MkGotoStmt(struct Identifier * id)
4173 return __extension__ ({
4174 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4176 __ecereInstance1->type = 9, __ecereInstance1->__anon1.gotoStmt.id = id, __ecereInstance1->loc = yylloc, __ecereInstance1;
4180 struct Statement * MkContinueStmt()
4182 return __extension__ ({
4183 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4185 __ecereInstance1->type = 10, __ecereInstance1->loc = yylloc, __ecereInstance1;
4189 struct Statement * MkBreakStmt()
4191 return __extension__ ({
4192 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4194 __ecereInstance1->type = 11, __ecereInstance1->loc = yylloc, __ecereInstance1;
4198 struct Statement * MkReturnStmt(struct __ecereNameSpace__ecere__sys__OldList * exp)
4200 return __extension__ ({
4201 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4203 __ecereInstance1->type = 12, __ecereInstance1->__anon1.expressions = exp, __ecereInstance1->loc = yylloc, __ecereInstance1;
4207 struct Statement * MkAsmStmt(struct Specifier * spec, char * statements, struct __ecereNameSpace__ecere__sys__OldList * inputFields, struct __ecereNameSpace__ecere__sys__OldList * outputFields, struct __ecereNameSpace__ecere__sys__OldList * clobberedFields)
4209 return __extension__ ({
4210 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4212 __ecereInstance1->type = 13, __ecereInstance1->__anon1.asmStmt.spec = spec, __ecereInstance1->__anon1.asmStmt.statements = statements, __ecereInstance1->__anon1.asmStmt.inputFields = inputFields, __ecereInstance1->__anon1.asmStmt.outputFields = outputFields, __ecereInstance1->__anon1.asmStmt.clobberedFields = clobberedFields, __ecereInstance1;
4216 struct Statement * MkFireWatchersStmt(struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches)
4218 return __extension__ ({
4219 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4221 __ecereInstance1->type = 15, __ecereInstance1->__anon1._watch.object = object, __ecereInstance1->__anon1._watch.watches = watches, __ecereInstance1;
4225 struct Statement * MkStopWatchingStmt(struct Expression * watcher, struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches)
4227 return __extension__ ({
4228 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4230 __ecereInstance1->type = 16, __ecereInstance1->__anon1._watch.watcher = watcher, __ecereInstance1->__anon1._watch.object = object, __ecereInstance1->__anon1._watch.watches = watches, __ecereInstance1;
4234 struct Statement * MkWatchStmt(struct Expression * watcher, struct Expression * object, struct __ecereNameSpace__ecere__sys__OldList * watches)
4236 return __extension__ ({
4237 struct Statement * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Statement);
4239 __ecereInstance1->type = 17, __ecereInstance1->__anon1._watch.watcher = watcher, __ecereInstance1->__anon1._watch.object = object, __ecereInstance1->__anon1._watch.watches = watches, __ecereInstance1;
4243 struct External * MkExternalFunction(struct FunctionDefinition * function)
4245 struct External * external = (external = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_External), external->type = 0, external->__anon1.function = function, external->symbol = function->declarator->symbol, external);
4247 if(function->specifiers)
4249 struct Specifier * spec;
4251 for(spec = (*function->specifiers).first; spec; spec = spec->next)
4252 if(spec->type == 0 && spec->__anon1.specifier == STATIC)
4254 structDeclMode = declMode = 3;
4258 if(external->symbol && !external->symbol->__anon2.__anon3.methodExternal)
4259 external->symbol->__anon2.__anon3.methodExternal = external;
4263 struct External * MkExternalImport(char * name, int importType, int importAccess)
4265 struct External * external = (external = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_External), external->type = 3, external);
4266 int len = strlen(name) - 2;
4268 external->__anon1.importString = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len + 1));
4269 strncpy(external->__anon1.importString, name + 1, len);
4270 external->__anon1.importString[len] = '\0';
4271 (__ecereNameSpace__ecere__com__eSystem_Delete(name), name = 0);
4273 ImportModule(external->__anon1.importString, importType, importAccess, 1);
4274 ImportModule(external->__anon1.importString, importType, importAccess, 0);
4279 struct ClassDefinition * MkClass(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs, struct __ecereNameSpace__ecere__sys__OldList * definitions)
4281 struct ClassDefinition * classDef;
4283 SetupBaseSpecs(symbol, baseSpecs);
4286 struct ClassDefinition * classDef = symbol->ctx->classDef;
4290 struct External * external;
4292 for(external = (*ast).first; external; external = external->next)
4294 if(external->type == 2 && external->__anon1._class == classDef)
4296 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*ast), external);
4297 FreeExternal(external);
4302 FreeContext(symbol->ctx);
4303 ((symbol->ctx ? __extension__ ({
4304 void * __ecerePtrToDelete = (symbol->ctx);
4306 __ecereClass_Context->Destructor ? __ecereClass_Context->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete);
4307 }) : 0), symbol->ctx = 0);
4309 symbol->ctx = curContext;
4310 classDef = __extension__ ({
4311 struct ClassDefinition * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDefinition);
4313 __ecereInstance1->symbol = symbol, __ecereInstance1->_class = MkSpecifierName(symbol->string), __ecereInstance1->baseSpecs = baseSpecs, __ecereInstance1->definitions = definitions, __ecereInstance1->nameLoc = symbol->nameLoc, __ecereInstance1;
4315 curContext->classDef = classDef;
4319 struct Expression * GetTemplateArgExpByName(const char * paramName, struct __ecereNameSpace__ecere__com__Class * curClass, int tplType)
4321 struct Expression * argExp = (((void *)0));
4322 struct __ecereNameSpace__ecere__com__Class * _class = curClass ? curClass : ((curExternal && curExternal->type == 0 && curExternal->__anon1.function) ? curExternal->__anon1.function->_class : (((void *)0)));
4327 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * curParam;
4328 struct __ecereNameSpace__ecere__com__Class * sClass;
4330 for(sClass = _class; sClass; sClass = sClass->base)
4333 for(curParam = sClass->templateParams.first; curParam; curParam = curParam->next)
4335 if(!strcmp(curParam->name, paramName))
4337 for(sClass = sClass->base; sClass; sClass = sClass->base)
4338 id += sClass->templateParams.count;
4346 if(curParam && curParam->type != tplType)
4347 curParam = (((void *)0));
4351 char className[1024];
4353 sprintf(idString, "%d", id);
4354 strcpy(className, "__ecereClass_");
4355 FullClassNameCat(className, _class->fullName, 1);
4356 DeclareClass(curExternal, FindClass(_class->fullName), className);
4357 argExp = MkExpIndex((MkExpMember)(MkExpMember(MkExpIdentifier(MkIdentifier("this")), MkIdentifier("_class")), MkIdentifier("templateArgs")), MkListOne(MkExpConstant(idString)));
4363 struct External * MkExternalDeclaration(struct Declaration * declaration)
4365 struct External * external = (external = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_External), external->type = 1, external->__anon1.declaration = declaration, external->symbol = declaration ? declaration->symbol : (((void *)0)), external);
4367 if(declaration && declaration->type == 1 && declaration->__anon1.__anon1.specifiers)
4369 struct Specifier * spec;
4371 for(spec = (*declaration->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
4372 if(spec->type == 0 && spec->__anon1.specifier == TYPEDEF)
4374 structDeclMode = declMode = 0;
4377 else if(spec->type == 0 && spec->__anon1.specifier == STATIC)
4379 structDeclMode = declMode = 3;
4383 if(declaration && declaration->symbol && !declaration->symbol->__anon2.__anon3.methodExternal)
4384 declaration->symbol->__anon2.__anon3.methodExternal = external;
4388 struct External * MkExternalNameSpace(struct Identifier * identifier)
4390 struct External * external = (external = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_External), external->type = 4, external->__anon1.id = identifier, external);
4392 currentNameSpace = identifier ? identifier->string : (((void *)0));
4393 currentNameSpaceLen = currentNameSpace ? strlen(currentNameSpace) : 0;
4397 struct External * MkExternalClass(struct ClassDefinition * _class)
4399 return __extension__ ({
4400 struct External * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_External);
4402 __ecereInstance1->type = 2, __ecereInstance1->__anon1._class = _class, __ecereInstance1->symbol = _class->symbol, __ecereInstance1;
4406 struct External * MkExternalDBTable(struct DBTableDef * table)
4408 return __extension__ ({
4409 struct External * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_External);
4411 __ecereInstance1->type = 5, __ecereInstance1->__anon1.table = table, __ecereInstance1;
4417 typedef union YYSTYPE
4422 struct Identifier * id;
4423 struct Expression * exp;
4424 struct Specifier * specifier;
4425 struct __ecereNameSpace__ecere__sys__OldList * list;
4426 struct Enumerator * enumerator;
4427 struct Declarator * declarator;
4428 struct Pointer * pointer;
4429 struct Initializer * initializer;
4430 struct InitDeclarator * initDeclarator;
4431 struct TypeName * typeName;
4432 struct Declaration * declaration;
4433 struct Statement * stmt;
4434 struct FunctionDefinition * function;
4435 struct External * external;
4436 struct Context * context;
4437 struct AsmField * asmField;
4438 struct Attrib * attrib;
4439 struct ExtDecl * extDecl;
4440 struct Attribute * attribute;
4441 struct Instantiation * instance;
4442 struct MembersInit * membersInit;
4443 struct MemberInit * memberInit;
4444 struct ClassFunction * classFunction;
4445 struct ClassDefinition * _class;
4446 struct ClassDef * classDef;
4447 struct PropertyDef * prop;
4449 struct Symbol * symbol;
4450 struct PropertyWatch * propertyWatch;
4451 struct TemplateParameter * templateParameter;
4452 struct TemplateArgument * templateArgument;
4453 struct TemplateDatatype * templateDatatype;
4454 struct DBTableEntry * dbtableEntry;
4455 struct DBIndexItem * dbindexItem;
4456 struct DBTableDef * dbtableDef;
4457 } ecere_gcc_struct YYSTYPE;
4459 extern YYSTYPE yylval;
4463 struct ClassDef * prev;
4464 struct ClassDef * next;
4465 struct Location loc;
4469 struct Declaration * decl;
4470 struct ClassFunction * function;
4471 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
4472 struct PropertyDef * propertyDef;
4473 struct PropertyWatch * propertyWatch;
4475 struct Identifier * defaultProperty;
4478 struct Identifier * id;
4479 struct Initializer * initializer;
4480 } ecere_gcc_struct __anon1;
4481 } ecere_gcc_struct __anon1;
4488 struct PropertyDef * prev;
4489 struct PropertyDef * next;
4490 struct Location loc;
4491 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
4492 struct Declarator * declarator;
4493 struct Identifier * id;
4494 struct Statement * getStmt;
4495 struct Statement * setStmt;
4496 struct Statement * issetStmt;
4497 struct Symbol * symbol;
4498 struct Expression * category;
4501 unsigned int conversion : 1;
4502 unsigned int isWatchable : 1;
4503 unsigned int isDBProp : 1;
4504 } ecere_gcc_struct __anon1;
4507 struct ClassDef * MkClassDefFunction(struct ClassFunction * function)
4509 struct ClassDef * def = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4511 if(function && function->declarator)
4513 struct Declarator * funcDecl = GetFuncDecl(function->declarator);
4515 if(funcDecl && funcDecl->declarator && funcDecl->declarator->type == 2)
4518 def->__anon1.decl = MkStructDeclaration(function->specifiers, MkListOne(MkStructDeclarator(function->declarator, (((void *)0)))), (((void *)0)));
4519 function->declarator = (((void *)0));
4520 function->specifiers = (((void *)0));
4521 FreeClassFunction(function);
4526 def->__anon1.function = function;
4530 static struct Type * ProcessTypeSpecs(struct __ecereNameSpace__ecere__sys__OldList * specs, unsigned int assumeEllipsis, unsigned int keepTypeName)
4532 struct Type * specType = (specType = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type), specType->refCount = 1, specType->kind = 3, specType->isSigned = 1, specType);
4534 if(specs != (((void *)0)))
4536 unsigned int isTypedef = 0;
4537 struct Specifier * spec;
4538 unsigned int isLong = 0;
4540 for(spec = specs->first; spec; spec = spec->next)
4544 struct ExtDecl * extDecl = spec->__anon1.__anon1.extDecl;
4546 if(extDecl->type == 0)
4548 if(!strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "__declspec(dllexport)") || !strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "dllexport"))
4549 specType->dllExport = 1;
4550 else if(!strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "__declspec(stdcall)") || !strcmp(spec->__anon1.__anon1.extDecl->__anon1.s, "stdcall"))
4551 specType->attrStdcall = 1;
4553 else if(extDecl->type == 1)
4555 struct __ecereNameSpace__ecere__sys__OldList * attribs = extDecl->__anon1.attr->attribs;
4559 struct Attribute * attr;
4561 for(attr = (*attribs).first; attr; attr = attr->next)
4563 char * s = attr->attr;
4567 if(!strcmp(s, "dllexport"))
4568 specType->dllExport = 1;
4569 else if(!strcmp(s, "stdcall"))
4570 specType->attrStdcall = 1;
4571 else if(!strcmp(s, "__vector_size__"))
4572 specType->isVector = 1;
4576 specType->keepCast = 1;
4579 if(spec->__anon1.specifier != CONST && (specType->kind == 9 || specType->kind == 10))
4582 specType = __extension__ ({
4583 struct Type * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
4585 __ecereInstance1->kind = 3, __ecereInstance1->isSigned = 1, __ecereInstance1->refCount = 1, __ecereInstance1;
4588 if(isTypedef && keepTypeName)
4590 specType->kind = 18;
4593 else if(spec->type == 0)
4595 if(spec->__anon1.specifier == TYPEDEF)
4597 else if(spec->__anon1.specifier == VOID)
4599 else if(spec->__anon1.specifier == CHAR)
4601 else if(spec->__anon1.specifier == INT)
4603 if(specType->kind != 2 && specType->kind != 5 && !isLong)
4606 else if(spec->__anon1.specifier == _BOOL || spec->__anon1.specifier == BOOL)
4607 specType->kind = 24;
4608 else if(spec->__anon1.specifier == UINT)
4610 if(specType->kind != 2 && specType->kind != 5)
4612 specType->isSigned = 0;
4614 else if(spec->__anon1.specifier == INT64)
4616 else if(spec->__anon1.specifier == INT128)
4617 specType->kind = 25;
4618 else if(spec->__anon1.specifier == VALIST)
4619 specType->kind = 17;
4620 else if(spec->__anon1.specifier == SHORT)
4622 else if(spec->__anon1.specifier == LONG)
4624 if(isLong || (targetBits == 64 && targetPlatform != 1))
4628 specType->isLong = 1;
4631 else if(spec->__anon1.specifier == FLOAT)
4633 else if(spec->__anon1.specifier == DOUBLE)
4635 else if(spec->__anon1.specifier == SIGNED)
4636 specType->isSigned = 1;
4637 else if(spec->__anon1.specifier == UNSIGNED)
4638 specType->isSigned = 0;
4639 else if(spec->__anon1.specifier == CONST)
4640 specType->constant = 1;
4641 else if(spec->__anon1.specifier == TYPED_OBJECT || spec->__anon1.specifier == ANY_OBJECT || spec->__anon1.specifier == CLASS)
4643 switch(spec->__anon1.specifier)
4646 specType->classObjectType = 2;
4649 specType->classObjectType = 3;
4652 specType->classObjectType = 1;
4656 specType->__anon1._class = FindClass("class");
4658 else if(spec->__anon1.specifier == THISCLASS)
4659 specType->kind = 21;
4661 else if(spec->type == 1)
4663 if(spec->__anon1.__anon1.name && (!strcmp(spec->__anon1.__anon1.name, "intptr") || !strcmp(spec->__anon1.__anon1.name, "uintptr")))
4665 specType->kind = 22;
4666 if(!strcmp(spec->__anon1.__anon1.name, "uintptr"))
4667 specType->isSigned = 0;
4669 else if(spec->__anon1.__anon1.name && (!strcmp(spec->__anon1.__anon1.name, "uintsize") || !strcmp(spec->__anon1.__anon1.name, "intsize")))
4671 specType->kind = 23;
4672 if(!strcmp(spec->__anon1.__anon1.name, "uintsize"))
4673 specType->isSigned = 0;
4677 struct Symbol * symbol = spec->__anon1.__anon1.name ? FindType(curContext, spec->__anon1.__anon1.name) : (((void *)0));
4679 if(symbol && symbol->type)
4681 unsigned int isConstant = specType->constant;
4682 struct Type * dummy = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
4686 CopyTypeInto(specType, symbol->type);
4687 specType->constant = isConstant;
4688 (__ecereNameSpace__ecere__com__eSystem_Delete(specType->typeName), specType->typeName = 0);
4689 specType->typeName = __ecereNameSpace__ecere__sys__CopyString(symbol->type->name);
4693 specType->__anon1._class = spec->__anon1.__anon1.name ? FindClass(spec->__anon1.__anon1.name) : (((void *)0));
4695 if(!specType->__anon1._class)
4700 else if(spec->type == 2)
4702 specType->kind = 15;
4703 specType->__anon1.__anon1.enumName = spec->__anon1.__anon2.id ? __ecereNameSpace__ecere__sys__CopyString(spec->__anon1.__anon2.id->string) : (((void *)0));
4704 if(spec->__anon1.__anon2.list)
4706 struct Enumerator * e;
4708 for(e = (*spec->__anon1.__anon2.list).first; e; e = e->next)
4710 struct __ecereNameSpace__ecere__sys__NamedLink64 * i = (i = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__sys__NamedLink64)), i->name = __ecereNameSpace__ecere__sys__CopyString(e->id->string), i);
4712 if(e->exp && e->exp->type == 2 && e->exp->__anon1.__anon1.constant)
4713 i->data = strtoll(e->exp->__anon1.__anon1.constant, (((void *)0)), 0);
4714 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&specType->__anon1.__anon1.members, i);
4718 else if(spec->type == 8)
4720 specType->kind = 20;
4721 specType->__anon1.templateParameter = spec->__anon1.templateParameter;
4723 else if(spec->type == 3 || spec->type == 4)
4725 struct Symbol * _class = spec->__anon1.__anon2.id ? FindClass(spec->__anon1.__anon2.id->string) : (((void *)0));
4729 specType->declaredWithStruct = 1;
4730 if(!_class->__anon1.registered || _class->__anon1.registered->type != 1)
4731 specType->directClassAccess = 1;
4732 specType->__anon1._class = _class;
4736 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(&specType->__anon1.__anon1.members);
4739 else if(spec->type == 4)
4740 specType->kind = 10;
4741 if(spec->__anon1.__anon2.id)
4743 if(!spec->__anon1.__anon2.definitions && !isTypedef)
4745 struct Symbol * symbol = spec->__anon1.__anon2.id->string ? FindSymbol(spec->__anon1.__anon2.id->string, curContext, globalContext, 1, 0) : (((void *)0));
4747 if(symbol && symbol->type)
4749 *specType = *symbol->type;
4750 specType->name = __ecereNameSpace__ecere__sys__CopyString(symbol->type->name);
4751 specType->typeName = __ecereNameSpace__ecere__sys__CopyString(spec->__anon1.__anon1.name);
4752 specType->__anon1.__anon1.enumName = __ecereNameSpace__ecere__sys__CopyString(symbol->type->__anon1.__anon1.enumName);
4753 specType->refCount = 1;
4754 if(symbol->type->kind == 15)
4756 struct __ecereNameSpace__ecere__sys__NamedLink64 * member;
4758 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(&specType->__anon1.__anon1.members);
4759 for(member = symbol->type->__anon1.__anon1.members.first; member; member = member->next)
4761 struct __ecereNameSpace__ecere__sys__NamedLink64 * item = (item = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__sys__NamedLink64)), item->name = __ecereNameSpace__ecere__sys__CopyString(member->name), item->data = member->data, item);
4763 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&specType->__anon1.__anon1.members, item);
4766 else if(symbol->type->kind == 9 || symbol->type->kind == 10)
4768 struct Type * member;
4770 for(member = specType->__anon1.__anon1.members.first; member; member = member->next)
4773 else if(symbol->type->kind == 11)
4775 struct Type * param;
4777 specType->__anon1.__anon2.returnType->refCount++;
4778 for(param = specType->__anon1.__anon2.params.first; param; param = param->next)
4781 else if(symbol->type->kind == 13 || symbol->type->kind == 12)
4783 specType->__anon1.type->refCount++;
4784 if(symbol->type->kind == 12)
4786 if(specType->__anon1.__anon4.arraySizeExp)
4787 specType->__anon1.__anon4.arraySizeExp = CopyExpression(specType->__anon1.__anon4.arraySizeExp);
4792 specType->__anon1.__anon1.enumName = __ecereNameSpace__ecere__sys__CopyString(spec->__anon1.__anon2.id->string);
4795 specType->__anon1.__anon1.enumName = __ecereNameSpace__ecere__sys__CopyString(spec->__anon1.__anon2.id->string);
4797 if(spec->__anon1.__anon2.definitions)
4799 struct ClassDef * def;
4801 for(def = (*spec->__anon1.__anon2.definitions).first; def; def = def->next)
4803 if(def->type == 2 && def->__anon1.decl->type == 0)
4805 struct Declaration * decl = def->__anon1.decl;
4807 if(decl->__anon1.__anon1.declarators)
4809 struct Declarator * d;
4811 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
4813 struct Type * memberType = ProcessType(decl->__anon1.__anon1.specifiers, d);
4815 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&specType->__anon1.__anon1.members, memberType);
4818 else if(decl->__anon1.__anon1.specifiers)
4820 struct Type * memberType = ProcessType(decl->__anon1.__anon1.specifiers, (((void *)0)));
4822 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&specType->__anon1.__anon1.members, memberType);
4829 else if(spec->type == 7)
4831 specType->kind = 19;
4832 specType->__anon1._class = spec->__anon1._class->__anon1.__anon1.symbol;
4836 else if(assumeEllipsis)
4837 specType->kind = 14;
4841 struct ClassDef * MkClassDefAccessOverride(int access, struct Identifier * id)
4843 return __extension__ ({
4844 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4846 __ecereInstance1->type = 13, __ecereInstance1->__anon1.__anon1.id = id, __ecereInstance1->memberAccess = access, __ecereInstance1;
4850 struct ClassDef * MkClassDefMemberAccess()
4852 return __extension__ ({
4853 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4855 __ecereInstance1->type = 12, __ecereInstance1;
4859 struct ClassDef * MkClassDefDeclaration(struct Declaration * decl)
4861 return __extension__ ({
4862 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4864 __ecereInstance1->type = 2, __ecereInstance1->__anon1.decl = decl, __ecereInstance1;
4868 struct ClassDef * MkClassDefClassData(struct Declaration * decl)
4870 return __extension__ ({
4871 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4873 __ecereInstance1->type = 9, __ecereInstance1->__anon1.decl = decl, __ecereInstance1;
4877 struct ClassDef * MkClassDefDesigner(const char * designer)
4879 return __extension__ ({
4880 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4882 __ecereInstance1->type = 5, __ecereInstance1->__anon1.designer = __ecereNameSpace__ecere__sys__CopyString(designer), __ecereInstance1;
4886 struct ClassDef * MkClassDefNoExpansion()
4888 return __extension__ ({
4889 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4891 __ecereInstance1->type = 6, __ecereInstance1;
4895 struct ClassDef * MkClassDefFixed()
4897 return __extension__ ({
4898 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4900 __ecereInstance1->type = 7, __ecereInstance1;
4904 struct ClassDef * MkClassDefDesignerDefaultProperty(struct Identifier * id)
4906 return __extension__ ({
4907 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4909 __ecereInstance1->type = 8, __ecereInstance1->__anon1.defaultProperty = id, __ecereInstance1;
4913 struct ClassDef * MkClassDefDefaultProperty(struct __ecereNameSpace__ecere__sys__OldList * defProperties)
4915 return __extension__ ({
4916 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4918 __ecereInstance1->type = 1, __ecereInstance1->__anon1.defProperties = defProperties, __ecereInstance1;
4922 struct ClassDef * MkClassDefProperty(struct PropertyDef * propertyDef)
4924 return __extension__ ({
4925 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4927 __ecereInstance1->type = 3, __ecereInstance1->__anon1.propertyDef = propertyDef, __ecereInstance1->loc = yylloc, __ecereInstance1;
4931 struct ClassDef * MkClassDefClassProperty(struct PropertyDef * propertyDef)
4933 return __extension__ ({
4934 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4936 __ecereInstance1->type = 10, __ecereInstance1->__anon1.propertyDef = propertyDef, __ecereInstance1->loc = yylloc, __ecereInstance1;
4940 struct ClassDef * MkClassDefClassPropertyValue(struct Identifier * id, struct Initializer * initializer)
4942 return __extension__ ({
4943 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4945 __ecereInstance1->type = 11, __ecereInstance1->__anon1.__anon1.id = id, __ecereInstance1->__anon1.__anon1.initializer = initializer, __ecereInstance1->loc = yylloc, __ecereInstance1;
4949 struct ClassDef * MkClassDefPropertyWatch(struct PropertyWatch * watcher)
4951 return __extension__ ({
4952 struct ClassDef * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_ClassDef);
4954 __ecereInstance1->type = 4, __ecereInstance1->__anon1.propertyWatch = watcher, __ecereInstance1;
4958 struct PropertyDef * MkProperty(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl, struct Identifier * id, struct Statement * setStmt, struct Statement * getStmt)
4960 struct PropertyDef * prop = (prop = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_PropertyDef), prop->specifiers = specs, prop->declarator = decl, prop->setStmt = setStmt, prop->getStmt = getStmt, prop);
4961 struct Symbol * symbol;
4962 struct Type * type = ProcessType(specs, decl);
4966 char typeString[1024];
4968 typeString[0] = '\0';
4969 PrintTypeNoConst(type, typeString, 0, 1);
4970 id = MkIdentifier(typeString);
4971 prop->__anon1.conversion = 1;
4974 symbol = __extension__ ({
4975 struct Symbol * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Symbol);
4977 __ecereInstance1->string = __ecereNameSpace__ecere__sys__CopyString(id->string), __ecereInstance1->type = type, __ecereInstance1;
4979 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*excludedSymbols), symbol);
4980 prop->symbol = symbol;
4984 static struct Type * ProcessTypeDecls(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl, struct Type * parentType)
4986 struct Type * type = parentType;
4987 struct Declarator * subDecl = decl ? decl->declarator : (((void *)0));
4988 unsigned int isVector = 0;
4990 if(decl && (decl->type == 6 || decl->type == 7))
4992 struct ExtDecl * extDecl = decl->__anon1.extended.extended;
4994 if(extDecl && extDecl->type == 1)
4996 struct __ecereNameSpace__ecere__sys__OldList * attribs = extDecl->__anon1.attr->attribs;
5000 struct Attribute * attr;
5002 for(attr = (*attribs).first; attr; attr = attr->next)
5004 char * s = attr->attr;
5007 if(!strcmp(s, "__vector_size__"))
5014 type = ProcessTypeSpecs(specs, decl == (((void *)0)), (decl && decl->type == 7 && !isVector) ? 1 : 0);
5024 struct ExtDecl * extDecl = decl->__anon1.extended.extended;
5028 switch(extDecl->type)
5032 char * s = extDecl->__anon1.s;
5036 if(!strcmp(s, "__declspec(dllexport)") || !strcmp(s, "dllexport"))
5037 type->dllExport = 1;
5038 else if(!strcmp(s, "__declspec(stdcall)") || !strcmp(s, "stdcall"))
5039 type->attrStdcall = 1;
5045 struct __ecereNameSpace__ecere__sys__OldList * attribs = extDecl->__anon1.attr->attribs;
5049 struct Attribute * attr;
5051 for(attr = (*attribs).first; attr; attr = attr->next)
5053 char * s = attr->attr;
5057 if(!strcmp(s, "dllexport"))
5058 type->dllExport = 1;
5059 else if(!strcmp(s, "stdcall"))
5060 type->attrStdcall = 1;
5061 else if(!strcmp(s, "__vector_size__"))
5077 struct Expression * exp = decl->__anon1.structDecl.exp;
5081 ProcessExpressionType(exp);
5082 ComputeExpression(exp);
5084 type->bitFieldCount = (unsigned int)strtoul(exp->__anon1.__anon1.constant, (((void *)0)), 0);
5090 type = __extension__ ({
5091 struct Type * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
5093 __ecereInstance1->refCount = 1, __ecereInstance1->kind = 11, __ecereInstance1->__anon1.__anon2.returnType = type, __ecereInstance1->dllExport = type->dllExport, __ecereInstance1->attrStdcall = type->attrStdcall, __ecereInstance1;
5095 if(decl->__anon1.function.parameters)
5097 struct TypeName * param;
5099 for(param = (*decl->__anon1.function.parameters).first; param; param = param->next)
5100 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&type->__anon1.__anon2.params, ProcessType(param->qualifiers, param->declarator));
5106 type = __extension__ ({
5107 struct Type * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
5109 __ecereInstance1->refCount = 1, __ecereInstance1->kind = 12, __ecereInstance1->__anon1.__anon4.arraySizeExp = CopyExpression(decl->__anon1.array.exp), __ecereInstance1->__anon1.__anon4.freeExp = 1, __ecereInstance1->__anon1.type = type, __ecereInstance1->dllExport = type->dllExport, __ecereInstance1->attrStdcall = type->attrStdcall, __ecereInstance1;
5111 if(decl->__anon1.array.enumClass)
5112 type->__anon1.__anon4.enumClass = decl->__anon1.array.enumClass->__anon1.__anon1.symbol;
5117 struct Pointer * pointer = decl->__anon1.pointer.pointer;
5121 struct __ecereNameSpace__ecere__sys__OldList * qualifiers = pointer->qualifiers;
5123 if(type->classObjectType)
5124 type->byReference = 1;
5126 type = __extension__ ({
5127 struct Type * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
5129 __ecereInstance1->refCount = 1, __ecereInstance1->kind = 13, __ecereInstance1->__anon1.type = type, __ecereInstance1->dllExport = type->dllExport, __ecereInstance1->attrStdcall = type->attrStdcall, __ecereInstance1;
5133 struct Specifier * spec;
5135 for(spec = (*qualifiers).first; spec; spec = spec->next)
5137 if(spec->type == 0 && spec->__anon1.specifier == CONST)
5141 pointer = pointer->pointer;
5147 struct Identifier * id = decl->__anon1.identifier;
5148 struct Specifier * _class = id->_class;
5150 (__ecereNameSpace__ecere__com__eSystem_Delete(type->name), type->name = 0);
5151 type->name = __ecereNameSpace__ecere__sys__CopyString(id->string);
5154 if(_class->type == 8)
5156 type->__anon1.__anon2.thisClassTemplate = _class->__anon1.templateParameter;
5157 type->extraParam = 1;
5161 char * name = _class->__anon1.__anon1.name;
5164 type->__anon1.__anon2.staticMethod = 1;
5168 id->classSym = _class->__anon1.__anon1.symbol;
5169 if(name[strlen(name) - 1] == '&')
5171 type->__anon1.__anon2.thisClass = FindClass("class");
5172 type->byReference = 1;
5175 type->__anon1.__anon2.thisClass = _class->__anon1.__anon1.symbol;
5176 if(type->__anon1.__anon2.thisClass && strcmp(type->__anon1.__anon2.thisClass->string, "class"))
5177 type->extraParam = 1;
5178 else if(!strcmp(name, "any_object"))
5180 type->extraParam = 1;
5181 type->__anon1.__anon2.thisClass = FindClass("class");
5183 else if(!strcmp(name, "class"))
5185 type->__anon1.__anon2.thisClass = FindClass("class");
5186 type->classObjectType = 1;
5188 else if(!strcmp(name, "typed_object") || !strcmp(name, "typed_object&"))
5190 type->__anon1.__anon2.thisClass = FindClass("class");
5191 type->classObjectType = 2;
5199 __ecereNameSpace__ecere__com__PrintLn(__ecereClass_char__PTR_, "Unhandled Declarator Type: ", __ecereClass_DeclaratorType, (void *)&decl->type, (void *)0);
5204 struct Type * curType = type;
5206 type = ProcessTypeDecls((((void *)0)), subDecl, type);
5207 if(curType && type->kind != 11)
5209 curType->__anon1.__anon2.thisClassTemplate = type->__anon1.__anon2.thisClassTemplate;
5210 curType->extraParam = type->extraParam;
5211 curType->__anon1.__anon2.staticMethod = type->__anon1.__anon2.staticMethod;
5212 curType->__anon1.__anon2.thisClass = type->__anon1.__anon2.thisClass;
5213 curType->byReference = type->byReference;
5214 curType->classObjectType = type->classObjectType;
5220 void __ecereRegisterModule_ast(struct __ecereNameSpace__ecere__com__Instance * module)
5222 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
5224 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetDefaultNameSpace", "void SetDefaultNameSpace(const char * s)", SetDefaultNameSpace, module, 1);
5225 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetStrictNameSpaces", "void SetStrictNameSpaces(bool b)", SetStrictNameSpaces, module, 1);
5226 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetDeclMode", "void SetDeclMode(ecere::com::AccessMode accessMode)", SetDeclMode, module, 1);
5227 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetDefaultDeclMode", "void SetDefaultDeclMode(ecere::com::AccessMode accessMode)", SetDefaultDeclMode, module, 1);
5228 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetCurrentNameSpace", "void SetCurrentNameSpace(const char * s)", SetCurrentNameSpace, module, 1);
5229 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkList", "ecere::sys::OldList * MkList(void)", MkList, module, 1);
5230 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkListOne", "ecere::sys::OldList * MkListOne(void * item)", MkListOne, module, 1);
5231 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ListAdd", "void ListAdd(ecere::sys::OldList list, void * item)", ListAdd, module, 2);
5232 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ListAddFront", "void ListAddFront(ecere::sys::OldList list, void * item)", ListAddFront, module, 2);
5233 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkIdentifier", "Identifier MkIdentifier(const char * string)", MkIdentifier, module, 1);
5234 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkTypeTemplateParameter", "TemplateParameter MkTypeTemplateParameter(Identifier identifier, TemplateDatatype baseTplDatatype, TemplateArgument defaultArgument)", MkTypeTemplateParameter, module, 1);
5235 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkIdentifierTemplateParameter", "TemplateParameter MkIdentifierTemplateParameter(Identifier identifier, ecere::com::TemplateMemberType memberType, TemplateArgument defaultArgument)", MkIdentifierTemplateParameter, module, 1);
5236 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpressionTemplateParameter", "TemplateParameter MkExpressionTemplateParameter(Identifier identifier, TemplateDatatype dataType, TemplateArgument defaultArgument)", MkExpressionTemplateParameter, module, 1);
5237 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkTemplateDatatype", "TemplateDatatype MkTemplateDatatype(ecere::sys::OldList * specifiers, Declarator decl)", MkTemplateDatatype, module, 1);
5238 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkTemplateTypeArgument", "TemplateArgument MkTemplateTypeArgument(TemplateDatatype tplDatatype)", MkTemplateTypeArgument, module, 1);
5239 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkTemplateExpressionArgument", "TemplateArgument MkTemplateExpressionArgument(Expression expr)", MkTemplateExpressionArgument, module, 1);
5240 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkTemplateIdentifierArgument", "TemplateArgument MkTemplateIdentifierArgument(Identifier ident)", MkTemplateIdentifierArgument, module, 1);
5241 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpExtensionCompound", "Expression MkExpExtensionCompound(Statement compound)", MkExpExtensionCompound, module, 2);
5242 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpExtensionExpression", "Expression MkExpExtensionExpression(ecere::sys::OldList * expressions)", MkExpExtensionExpression, module, 2);
5243 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpExtensionInitializer", "Expression MkExpExtensionInitializer(TypeName typeName, Initializer initializer)", MkExpExtensionInitializer, module, 2);
5244 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpIdentifier", "Expression MkExpIdentifier(Identifier id)", MkExpIdentifier, module, 1);
5245 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpDummy", "Expression MkExpDummy(void)", MkExpDummy, module, 1);
5246 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpConstant", "Expression MkExpConstant(const char * string)", MkExpConstant, module, 1);
5247 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpString", "Expression MkExpString(const char * string)", MkExpString, module, 2);
5248 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpWideString", "Expression MkExpWideString(const char * string)", MkExpWideString, module, 2);
5249 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ContextStringPair", 0, sizeof(struct ContextStringPair), 0, (void *)0, (void *)0, module, 1, 1);
5250 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application && class)
5251 __ecereClass_ContextStringPair = class;
5252 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnCompare", 0, __ecereMethod_ContextStringPair_OnCompare, 1);
5253 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod_ContextStringPair_OnFree, 1);
5254 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "string", "String", sizeof(void *), 0xF000F000, 1);
5255 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "context", "String", sizeof(void *), 0xF000F000, 1);
5256 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpIntlString", "Expression MkExpIntlString(const char * string, const char * context)", MkExpIntlString, module, 2);
5257 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpOp", "Expression MkExpOp(Expression exp1, int op, Expression exp2)", MkExpOp, module, 2);
5258 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpBrackets", "Expression MkExpBrackets(ecere::sys::OldList expressions)", MkExpBrackets, module, 2);
5259 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpIndex", "Expression MkExpIndex(Expression expression, ecere::sys::OldList index)", MkExpIndex, module, 2);
5260 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpCall", "Expression MkExpCall(Expression expression, ecere::sys::OldList arguments)", MkExpCall, module, 2);
5261 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpMember", "Expression MkExpMember(Expression expression, Identifier member)", MkExpMember, module, 2);
5262 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpPointer", "Expression MkExpPointer(Expression expression, Identifier member)", MkExpPointer, module, 2);
5263 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpTypeSize", "Expression MkExpTypeSize(TypeName typeName)", MkExpTypeSize, module, 2);
5264 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpTypeAlign", "Expression MkExpTypeAlign(TypeName typeName)", MkExpTypeAlign, module, 2);
5265 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpOffsetOf", "Expression MkExpOffsetOf(TypeName typeName, Identifier id)", MkExpOffsetOf, module, 2);
5266 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpClassSize", "Expression MkExpClassSize(Specifier _class)", MkExpClassSize, module, 2);
5267 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpCast", "Expression MkExpCast(TypeName typeName, Expression expression)", MkExpCast, module, 2);
5268 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpCondition", "Expression MkExpCondition(Expression cond, ecere::sys::OldList expressions, Expression elseExp)", MkExpCondition, module, 2);
5269 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpRenew", "Expression MkExpRenew(Expression memExp, TypeName type, Expression size)", MkExpRenew, module, 2);
5270 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpRenew0", "Expression MkExpRenew0(Expression memExp, TypeName type, Expression size)", MkExpRenew0, module, 2);
5271 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpNew", "Expression MkExpNew(TypeName type, Expression size)", MkExpNew, module, 2);
5272 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpNew0", "Expression MkExpNew0(TypeName type, Expression size)", MkExpNew0, module, 2);
5273 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpVaArg", "Expression MkExpVaArg(Expression exp, TypeName type)", MkExpVaArg, module, 2);
5274 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkSpecifier", "Specifier MkSpecifier(int specifier)", MkSpecifier, module, 2);
5275 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkSpecifierTypeOf", "Specifier MkSpecifierTypeOf(Expression expression)", MkSpecifierTypeOf, module, 2);
5276 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkSpecifierSubClass", "Specifier MkSpecifierSubClass(Specifier _class)", MkSpecifierSubClass, module, 2);
5277 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkSpecifierExtended", "Specifier MkSpecifierExtended(ExtDecl extDecl)", MkSpecifierExtended, module, 2);
5278 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkEnum", "Specifier MkEnum(Identifier id, ecere::sys::OldList list)", MkEnum, module, 2);
5279 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkStructOrUnion", "Specifier MkStructOrUnion(SpecifierType type, Identifier id, ecere::sys::OldList definitions)", MkStructOrUnion, module, 2);
5280 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("AddStructDefinitions", "void AddStructDefinitions(Specifier spec, ecere::sys::OldList definitions)", AddStructDefinitions, module, 2);
5281 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkAttribute", "Attribute MkAttribute(String attr, Expression exp)", MkAttribute, module, 2);
5282 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkAttrib", "Attrib MkAttrib(int type, ecere::sys::OldList * attribs)", MkAttrib, module, 2);
5283 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExtDeclString", "ExtDecl MkExtDeclString(String s)", MkExtDeclString, module, 2);
5284 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExtDeclAttrib", "ExtDecl MkExtDeclAttrib(Attrib attr)", MkExtDeclAttrib, module, 2);
5285 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclaratorIdentifier", "Declarator MkDeclaratorIdentifier(Identifier id)", MkDeclaratorIdentifier, module, 1);
5286 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclaratorFunction", "Declarator MkDeclaratorFunction(Declarator declarator, ecere::sys::OldList parameters)", MkDeclaratorFunction, module, 2);
5287 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclaratorExtended", "Declarator MkDeclaratorExtended(ExtDecl extended, Declarator declarator)", MkDeclaratorExtended, module, 2);
5288 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclaratorExtendedEnd", "Declarator MkDeclaratorExtendedEnd(ExtDecl extended, Declarator declarator)", MkDeclaratorExtendedEnd, module, 2);
5289 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkStructDeclarator", "Declarator MkStructDeclarator(Declarator declarator, Expression exp)", MkStructDeclarator, module, 2);
5290 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclaratorBrackets", "Declarator MkDeclaratorBrackets(Declarator declarator)", MkDeclaratorBrackets, module, 2);
5291 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclaratorArray", "Declarator MkDeclaratorArray(Declarator declarator, Expression exp)", MkDeclaratorArray, module, 2);
5292 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclaratorEnumArray", "Declarator MkDeclaratorEnumArray(Declarator declarator, Specifier _class)", MkDeclaratorEnumArray, module, 2);
5293 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclaratorPointer", "Declarator MkDeclaratorPointer(Pointer pointer, Declarator declarator)", MkDeclaratorPointer, module, 2);
5294 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkEnumerator", "Enumerator MkEnumerator(Identifier id, Expression exp)", MkEnumerator, module, 2);
5295 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkPointer", "Pointer MkPointer(ecere::sys::OldList qualifiers, Pointer pointer)", MkPointer, module, 2);
5296 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkInitializerAssignment", "Initializer MkInitializerAssignment(Expression exp)", MkInitializerAssignment, module, 2);
5297 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkInitializerList", "Initializer MkInitializerList(ecere::sys::OldList list)", MkInitializerList, module, 2);
5298 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkInitDeclarator", "InitDeclarator MkInitDeclarator(Declarator declarator, Initializer initializer)", MkInitDeclarator, module, 2);
5299 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkTypeName", "TypeName MkTypeName(ecere::sys::OldList qualifiers, Declarator declarator)", MkTypeName, module, 1);
5300 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkTypeNameGuessDecl", "TypeName MkTypeNameGuessDecl(ecere::sys::OldList qualifiers, Declarator declarator)", MkTypeNameGuessDecl, module, 1);
5301 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetDeclId", "Identifier GetDeclId(Declarator decl)", GetDeclId, module, 1);
5302 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclarationClassInst", "Declaration MkDeclarationClassInst(Instantiation inst)", MkDeclarationClassInst, module, 2);
5303 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclarationInst", "Declaration MkDeclarationInst(Instantiation inst)", MkDeclarationInst, module, 2);
5304 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclarationDefine", "Declaration MkDeclarationDefine(Identifier id, Expression exp)", MkDeclarationDefine, module, 2);
5305 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeclaration", "Declaration MkDeclaration(ecere::sys::OldList specifiers, ecere::sys::OldList initDeclarators)", MkDeclaration, module, 2);
5306 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkStructDeclaration", "Declaration MkStructDeclaration(ecere::sys::OldList specifiers, ecere::sys::OldList declarators, Specifier extStorage)", MkStructDeclaration, module, 2);
5307 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkLabeledStmt", "Statement MkLabeledStmt(Identifier id, Statement statement)", MkLabeledStmt, module, 2);
5308 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkCaseStmt", "Statement MkCaseStmt(Expression exp, Statement statement)", MkCaseStmt, module, 2);
5309 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkCompoundStmt", "Statement MkCompoundStmt(ecere::sys::OldList declarations, ecere::sys::OldList statements)", MkCompoundStmt, module, 2);
5310 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpressionStmt", "Statement MkExpressionStmt(ecere::sys::OldList expressions)", MkExpressionStmt, module, 2);
5311 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkBadDeclStmt", "Statement MkBadDeclStmt(Declaration decl)", MkBadDeclStmt, module, 2);
5312 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkIfStmt", "Statement MkIfStmt(ecere::sys::OldList exp, Statement statement, Statement elseStmt)", MkIfStmt, module, 2);
5313 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkSwitchStmt", "Statement MkSwitchStmt(ecere::sys::OldList exp, Statement statement)", MkSwitchStmt, module, 2);
5314 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkWhileStmt", "Statement MkWhileStmt(ecere::sys::OldList exp, Statement statement)", MkWhileStmt, module, 2);
5315 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDoWhileStmt", "Statement MkDoWhileStmt(Statement statement, ecere::sys::OldList exp)", MkDoWhileStmt, module, 2);
5316 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkForStmt", "Statement MkForStmt(Statement init, Statement check, ecere::sys::OldList inc, Statement statement)", MkForStmt, module, 2);
5317 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkForEachStmt", "Statement MkForEachStmt(Identifier id, ecere::sys::OldList exp, ecere::sys::OldList filter, Statement statement)", MkForEachStmt, module, 2);
5318 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkGotoStmt", "Statement MkGotoStmt(Identifier id)", MkGotoStmt, module, 2);
5319 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkContinueStmt", "Statement MkContinueStmt(void)", MkContinueStmt, module, 2);
5320 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkBreakStmt", "Statement MkBreakStmt(void)", MkBreakStmt, module, 2);
5321 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkReturnStmt", "Statement MkReturnStmt(ecere::sys::OldList exp)", MkReturnStmt, module, 2);
5322 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkFunction", "FunctionDefinition MkFunction(ecere::sys::OldList specifiers, Declarator declarator, ecere::sys::OldList declarationList)", MkFunction, module, 2);
5323 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("_MkFunction", "FunctionDefinition _MkFunction(ecere::sys::OldList specifiers, Declarator declarator, ecere::sys::OldList declarationList, bool errorOnOmit)", _MkFunction, module, 2);
5324 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessFunctionBody", "void ProcessFunctionBody(FunctionDefinition func, Statement body)", ProcessFunctionBody, module, 2);
5325 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExternalFunction", "External MkExternalFunction(FunctionDefinition function)", MkExternalFunction, module, 2);
5326 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExternalImport", "External MkExternalImport(char * name, ecere::com::ImportType importType, ecere::com::AccessMode importAccess)", MkExternalImport, module, 2);
5327 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExternalDeclaration", "External MkExternalDeclaration(Declaration declaration)", MkExternalDeclaration, module, 2);
5328 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExternalNameSpace", "External MkExternalNameSpace(Identifier identifier)", MkExternalNameSpace, module, 2);
5329 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetClassTemplateArgs", "void SetClassTemplateArgs(Specifier spec, ecere::sys::OldList templateArgs)", SetClassTemplateArgs, module, 2);
5330 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("_MkSpecifierName", "Specifier _MkSpecifierName(const char * name, Symbol symbol, ecere::sys::OldList templateArgs)", _MkSpecifierName, module, 2);
5331 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkSpecifierName", "Specifier MkSpecifierName(const char * name)", MkSpecifierName, module, 1);
5332 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkSpecifierNameArgs", "Specifier MkSpecifierNameArgs(const char * name, ecere::sys::OldList * templateArgs)", MkSpecifierNameArgs, module, 1);
5333 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassFunction", "ClassFunction MkClassFunction(ecere::sys::OldList specifiers, Specifier _class, Declarator decl, ecere::sys::OldList declList)", MkClassFunction, module, 2);
5334 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessClassFunctionBody", "void ProcessClassFunctionBody(ClassFunction func, Statement body)", ProcessClassFunctionBody, module, 2);
5335 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkSpecsClass", "ecere::sys::OldList * MkSpecsClass(Specifier _class)", MkSpecsClass, module, 2);
5336 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkMemberInit", "MemberInit MkMemberInit(ecere::sys::OldList ids, Initializer initializer)", MkMemberInit, module, 2);
5337 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkMemberInitExp", "MemberInit MkMemberInitExp(Expression idExp, Initializer initializer)", MkMemberInitExp, module, 2);
5338 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkMembersInitList", "MembersInit MkMembersInitList(ecere::sys::OldList dataMembers)", MkMembersInitList, module, 2);
5339 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkMembersInitMethod", "MembersInit MkMembersInitMethod(ClassFunction function)", MkMembersInitMethod, module, 2);
5340 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkInstantiation", "Instantiation MkInstantiation(Specifier _class, Expression exp, ecere::sys::OldList members)", MkInstantiation, module, 2);
5341 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkInstantiationNamed", "Instantiation MkInstantiationNamed(ecere::sys::OldList specs, Expression exp, ecere::sys::OldList members)", MkInstantiationNamed, module, 2);
5342 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefAccessOverride", "ClassDef MkClassDefAccessOverride(ecere::com::AccessMode access, Identifier id)", MkClassDefAccessOverride, module, 2);
5343 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefMemberAccess", "ClassDef MkClassDefMemberAccess(void)", MkClassDefMemberAccess, module, 2);
5344 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefDeclaration", "ClassDef MkClassDefDeclaration(Declaration decl)", MkClassDefDeclaration, module, 2);
5345 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefClassData", "ClassDef MkClassDefClassData(Declaration decl)", MkClassDefClassData, module, 2);
5346 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefDesigner", "ClassDef MkClassDefDesigner(const char * designer)", MkClassDefDesigner, module, 2);
5347 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefNoExpansion", "ClassDef MkClassDefNoExpansion(void)", MkClassDefNoExpansion, module, 2);
5348 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefFixed", "ClassDef MkClassDefFixed(void)", MkClassDefFixed, module, 2);
5349 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefDesignerDefaultProperty", "ClassDef MkClassDefDesignerDefaultProperty(Identifier id)", MkClassDefDesignerDefaultProperty, module, 2);
5350 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefDefaultProperty", "ClassDef MkClassDefDefaultProperty(ecere::sys::OldList defProperties)", MkClassDefDefaultProperty, module, 2);
5351 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefFunction", "ClassDef MkClassDefFunction(ClassFunction function)", MkClassDefFunction, module, 2);
5352 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("DeclClassAddNameSpace", "Symbol DeclClassAddNameSpace(Specifier _class, const char * className)", DeclClassAddNameSpace, module, 2);
5353 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("DeclClass", "Symbol DeclClass(Specifier _class, const char * name)", DeclClass, module, 2);
5354 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("_DeclClass", "Symbol _DeclClass(Specifier _class, const char * name)", _DeclClass, module, 2);
5355 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetupBaseSpecs", "void SetupBaseSpecs(Symbol symbol, ecere::sys::OldList baseSpecs)", SetupBaseSpecs, module, 2);
5356 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClass", "ClassDefinition MkClass(Symbol symbol, ecere::sys::OldList baseSpecs, ecere::sys::OldList definitions)", MkClass, module, 2);
5357 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpInstance", "Expression MkExpInstance(Instantiation inst)", MkExpInstance, module, 2);
5358 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExternalClass", "External MkExternalClass(ClassDefinition _class)", MkExternalClass, module, 2);
5359 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkProperty", "PropertyDef MkProperty(ecere::sys::OldList specs, Declarator decl, Identifier id, Statement setStmt, Statement getStmt)", MkProperty, module, 2);
5360 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefProperty", "ClassDef MkClassDefProperty(PropertyDef propertyDef)", MkClassDefProperty, module, 2);
5361 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefClassProperty", "ClassDef MkClassDefClassProperty(PropertyDef propertyDef)", MkClassDefClassProperty, module, 2);
5362 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefClassPropertyValue", "ClassDef MkClassDefClassPropertyValue(Identifier id, Initializer initializer)", MkClassDefClassPropertyValue, module, 2);
5363 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CheckType", "int CheckType(const char * text)", CheckType, module, 2);
5364 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("check_type", "int check_type(void)", check_type, module, 2);
5365 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("PushContext", "Context PushContext(void)", PushContext, module, 2);
5366 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("PopContext", "void PopContext(Context ctx)", PopContext, module, 2);
5367 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FindType", "Symbol FindType(Context ctx, const char * name)", FindType, module, 2);
5368 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FindStruct", "Symbol FindStruct(Context ctx, const char * name)", FindStruct, module, 2);
5369 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FindTemplateTypeParameter", "TemplatedType FindTemplateTypeParameter(Context ctx, const char * name)", FindTemplateTypeParameter, module, 2);
5370 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ModuleAccess", "bool ModuleAccess(ecere::com::Module searchIn, ecere::com::Module searchFor)", ModuleAccess, module, 2);
5371 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FindModule", "ModuleImport FindModule(ecere::com::Module moduleToFind)", FindModule, module, 2);
5372 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("FindClass", "Symbol FindClass(const char * name)", FindClass, module, 1);
5373 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("CopyTypeInto", "void CopyTypeInto(Type type, Type src)", CopyTypeInto, module, 2);
5374 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessType", "Type ProcessType(ecere::sys::OldList specs, Declarator decl)", ProcessType, module, 1);
5375 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessTypeString", "Type ProcessTypeString(const char * string, bool staticMethod)", ProcessTypeString, module, 1);
5376 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassTypeSymbol", "Type MkClassTypeSymbol(Symbol symbol)", MkClassTypeSymbol, module, 2);
5377 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassType", "Type MkClassType(const char * name)", MkClassType, module, 1);
5378 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkAsmField", "AsmField MkAsmField(char * command, Expression expression, Identifier symbolic)", MkAsmField, module, 2);
5379 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkAsmStmt", "Statement MkAsmStmt(Specifier spec, char * statements, ecere::sys::OldList inputFields, ecere::sys::OldList outputFields, ecere::sys::OldList clobberedFields)", MkAsmStmt, module, 2);
5380 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkClassDefPropertyWatch", "ClassDef MkClassDefPropertyWatch(PropertyWatch watcher)", MkClassDefPropertyWatch, module, 2);
5381 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkFireWatchersStmt", "Statement MkFireWatchersStmt(Expression object, ecere::sys::OldList watches)", MkFireWatchersStmt, module, 2);
5382 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkStopWatchingStmt", "Statement MkStopWatchingStmt(Expression watcher, Expression object, ecere::sys::OldList watches)", MkStopWatchingStmt, module, 2);
5383 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkWatchStmt", "Statement MkWatchStmt(Expression watcher, Expression object, ecere::sys::OldList watches)", MkWatchStmt, module, 2);
5384 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDeleteWatch", "PropertyWatch MkDeleteWatch(Statement compound)", MkDeleteWatch, module, 2);
5385 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkPropertyWatch", "PropertyWatch MkPropertyWatch(ecere::sys::OldList properties, Statement compound)", MkPropertyWatch, module, 2);
5386 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpClass", "Expression MkExpClass(ecere::sys::OldList * specifiers, Declarator decl)", MkExpClass, module, 2);
5387 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpClassData", "Expression MkExpClassData(Identifier id)", MkExpClassData, module, 2);
5388 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExternalDBTable", "External MkExternalDBTable(DBTableDef table)", MkExternalDBTable, module, 2);
5389 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDBTableDef", "DBTableDef MkDBTableDef(char * name, Symbol symbol, ecere::sys::OldList * definitions)", MkDBTableDef, module, 2);
5390 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDBFieldEntry", "DBTableEntry MkDBFieldEntry(TypeName type, Identifier id, char * name)", MkDBFieldEntry, module, 2);
5391 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDBIndexItem", "DBIndexItem MkDBIndexItem(Identifier id, Order order)", MkDBIndexItem, module, 2);
5392 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkDBIndexEntry", "DBTableEntry MkDBIndexEntry(ecere::sys::OldList * items, Identifier id)", MkDBIndexEntry, module, 2);
5393 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpDBOpen", "Expression MkExpDBOpen(Expression ds, Expression dbName)", MkExpDBOpen, module, 2);
5394 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpDBField", "Expression MkExpDBField(char * table, Identifier id)", MkExpDBField, module, 2);
5395 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpDBIndex", "Expression MkExpDBIndex(char * table, Identifier id)", MkExpDBIndex, module, 2);
5396 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpDBTable", "Expression MkExpDBTable(char * table)", MkExpDBTable, module, 2);
5397 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("MkExpArray", "Expression MkExpArray(ecere::sys::OldList * expressions)", MkExpArray, module, 2);
5398 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetTemplateArgExpByName", "Expression GetTemplateArgExpByName(const char * paramName, ecere::com::Class curClass, ecere::com::TemplateParameterType tplType)", GetTemplateArgExpByName, module, 2);
5399 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetTemplateArgExp", "Expression GetTemplateArgExp(TemplateParameter param, ecere::com::Class curClass, bool pointer)", GetTemplateArgExp, module, 2);
5400 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("OutputIntlStrings", "void OutputIntlStrings(void)", OutputIntlStrings, module, 1);
5401 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetAST", "void SetAST(ecere::sys::OldList * list)", SetAST, module, 1);
5402 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetAST", "ecere::sys::OldList * GetAST(void)", GetAST, module, 1);
5403 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ParseEc", "void ParseEc(void)", ParseEc, module, 1);
5404 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("LexEc", "int LexEc(void)", LexEc, module, 1);
5405 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetYYText", "const char * GetYYText(void)", GetYYText, module, 1);