compiler/libec; eda, extras: const fixes for DB apps
[sdk] / compiler / bootstrap / libec / bootstrap / ecdefs.c
index 71b8524..46db9ab 100644 (file)
@@ -1,3 +1,4 @@
+/* Code generated from eC source file: ecdefs.ec */
 #if defined(__GNUC__)
 typedef long long int64;
 typedef unsigned long long uint64;
@@ -30,7 +31,7 @@ typedef unsigned __int64 uint64;
 #include <stdint.h>
 #include <sys/types.h>
 
-#if defined(_W64) || (defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
+#if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
 #define _64BIT 1
 #else
 #define _64BIT 0
@@ -54,6 +55,8 @@ extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsig
 
 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
 
+extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
+
 struct __ecereNameSpace__ecere__sys__BTNode;
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
@@ -83,7 +86,7 @@ extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpac
 
 struct __ecereNameSpace__ecere__com__Method
 {
-char *  name;
+const char *  name;
 struct __ecereNameSpace__ecere__com__Method * parent;
 struct __ecereNameSpace__ecere__com__Method * left;
 struct __ecereNameSpace__ecere__com__Method * right;
@@ -93,7 +96,7 @@ int vid;
 int type;
 struct __ecereNameSpace__ecere__com__Class * _class;
 void *  symbol;
-char *  dataTypeString;
+const char *  dataTypeString;
 struct Type * dataType;
 int memberAccess;
 } __attribute__ ((gcc_struct));
@@ -104,12 +107,12 @@ struct __ecereNameSpace__ecere__com__Property
 {
 struct __ecereNameSpace__ecere__com__Property * prev;
 struct __ecereNameSpace__ecere__com__Property * next;
-char *  name;
+const char *  name;
 unsigned int isProperty;
 int memberAccess;
 int id;
 struct __ecereNameSpace__ecere__com__Class * _class;
-char *  dataTypeString;
+const char *  dataTypeString;
 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
 struct Type * dataType;
 void (*  Set)(void * , int);
@@ -120,7 +123,7 @@ void *  symbol;
 int vid;
 unsigned int conversion;
 unsigned int watcherOffset;
-char *  category;
+const char *  category;
 unsigned int compiled;
 unsigned int selfWatchable;
 unsigned int isWatchable;
@@ -129,7 +132,7 @@ unsigned int isWatchable;
 struct CodePosition
 {
 int line, charPos, pos;
-unsigned int included;
+int included;
 } __attribute__ ((gcc_struct));
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
@@ -346,6 +349,7 @@ struct Expression * exp;
 struct __ecereNameSpace__ecere__sys__OldList * list;
 } __attribute__ ((gcc_struct));
 unsigned int isConstant;
+struct Identifier * id;
 } __attribute__ ((gcc_struct));
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
@@ -384,7 +388,11 @@ struct Identifier * identifier;
 } __attribute__ ((gcc_struct));
 struct Statement * compound;
 struct Instantiation * instance;
+struct
+{
 char * string;
+unsigned int intlString;
+} __attribute__ ((gcc_struct));
 struct __ecereNameSpace__ecere__sys__OldList * list;
 struct
 {
@@ -476,6 +484,7 @@ unsigned int isConstant;
 unsigned int addedThis;
 unsigned int needCast;
 unsigned int thisPtr;
+unsigned int opDestType;
 } __attribute__ ((gcc_struct));
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
@@ -516,7 +525,7 @@ struct TemplateDatatype * dataType;
 int memberType;
 } __attribute__ ((gcc_struct));
 struct TemplateArgument * defaultArgument;
-char * dataTypeString;
+const char * dataTypeString;
 struct Type * baseType;
 } __attribute__ ((gcc_struct));
 
@@ -683,7 +692,7 @@ char * name;
 struct __ecereNameSpace__ecere__sys__OldList methods;
 struct __ecereNameSpace__ecere__sys__OldList properties;
 unsigned int itself;
-unsigned int isRemote;
+int isRemote;
 } __attribute__ ((gcc_struct));
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
@@ -783,25 +792,29 @@ struct Symbol * enumClass;
 struct Type * type;
 struct TemplateParameter * templateParameter;
 } __attribute__ ((gcc_struct));
-unsigned int isSigned;
 int kind;
-unsigned int constant;
 unsigned int size;
 char * name;
 char * typeName;
-unsigned int count;
-unsigned int truth;
 int classObjectType;
-unsigned int byReference;
-unsigned int extraParam;
 int alignment;
-unsigned int directClassAccess;
-unsigned int computing;
-unsigned int dllExport;
 unsigned int offset;
-unsigned int keepCast;
-unsigned int passAsTemplate;
 int bitFieldCount;
+int count;
+unsigned int isSigned : 1;
+unsigned int constant : 1;
+unsigned int truth : 1;
+unsigned int byReference : 1;
+unsigned int extraParam : 1;
+unsigned int directClassAccess : 1;
+unsigned int computing : 1;
+unsigned int keepCast : 1;
+unsigned int passAsTemplate : 1;
+unsigned int dllExport : 1;
+unsigned int attrStdcall : 1;
+unsigned int declaredWithStruct : 1;
+unsigned int typedByReference : 1;
+unsigned int casted : 1;
 } __attribute__ ((gcc_struct));
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
@@ -812,7 +825,7 @@ struct __ecereNameSpace__ecere__com__Class
 {
 struct __ecereNameSpace__ecere__com__Class * prev;
 struct __ecereNameSpace__ecere__com__Class * next;
-char *  name;
+const char *  name;
 int offset;
 int structSize;
 int (* *  _vTbl)();
@@ -833,19 +846,19 @@ int startMemberID;
 int type;
 struct __ecereNameSpace__ecere__com__Instance * module;
 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
-char *  dataTypeString;
+const char *  dataTypeString;
 struct Type * dataType;
 int typeSize;
 int defaultAlignment;
 void (*  Initialize)();
 int memberOffset;
 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
-char *  designerClass;
+const char *  designerClass;
 unsigned int noExpansion;
-char *  defaultProperty;
+const char *  defaultProperty;
 unsigned int comRedefinition;
 int count;
-unsigned int isRemote;
+int isRemote;
 unsigned int internalDecl;
 void *  data;
 unsigned int computeSize;
@@ -854,7 +867,7 @@ int destructionWatchOffset;
 unsigned int fixed;
 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
 int inheritanceAccess;
-char *  fullName;
+const char *  fullName;
 void *  symbol;
 struct __ecereNameSpace__ecere__sys__OldList conversions;
 struct __ecereNameSpace__ecere__sys__OldList templateParams;
@@ -862,9 +875,25 @@ struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
 struct __ecereNameSpace__ecere__com__Class * templateClass;
 struct __ecereNameSpace__ecere__sys__OldList templatized;
 int numParams;
+unsigned int isInstanceClass;
+unsigned int byValueSystemClass;
 } __attribute__ ((gcc_struct));
 
-extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
+extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
+
+extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
+
+extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
+
+extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
+
+extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
+
+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);
+
+extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
+
+extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
 
@@ -881,12 +910,12 @@ struct __ecereNameSpace__ecere__com__DataMember
 {
 struct __ecereNameSpace__ecere__com__DataMember * prev;
 struct __ecereNameSpace__ecere__com__DataMember * next;
-char *  name;
+const char *  name;
 unsigned int isProperty;
 int memberAccess;
 int id;
 struct __ecereNameSpace__ecere__com__Class * _class;
-char *  dataTypeString;
+const char *  dataTypeString;
 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
 struct Type * dataType;
 int type;
@@ -916,13 +945,13 @@ union
 {
 struct
 {
-char *  dataTypeString;
+const char *  dataTypeString;
 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
 } __attribute__ ((gcc_struct));
 struct __ecereNameSpace__ecere__com__DataValue expression;
 struct
 {
-char *  memberString;
+const char *  memberString;
 union
 {
 struct __ecereNameSpace__ecere__com__DataMember * member;
@@ -991,9 +1020,201 @@ int ferror(FILE * stream);
 
 int fileno(FILE * stream);
 
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_Order;
+enum yytokentype
+{
+IDENTIFIER = 258, CONSTANT = 259, STRING_LITERAL = 260, SIZEOF = 261, PTR_OP = 262, INC_OP = 263, DEC_OP = 264, LEFT_OP = 265, RIGHT_OP = 266, LE_OP = 267, GE_OP = 268, EQ_OP = 269, NE_OP = 270, AND_OP = 271, OR_OP = 272, MUL_ASSIGN = 273, DIV_ASSIGN = 274, MOD_ASSIGN = 275, ADD_ASSIGN = 276, SUB_ASSIGN = 277, LEFT_ASSIGN = 278, RIGHT_ASSIGN = 279, AND_ASSIGN = 280, XOR_ASSIGN = 281, OR_ASSIGN = 282, TYPE_NAME = 283, TYPEDEF = 284, EXTERN = 285, STATIC = 286, AUTO = 287, REGISTER = 288, CHAR = 289, SHORT = 290, INT = 291, UINT = 292, INT64 = 293, LONG = 294, SIGNED = 295, UNSIGNED = 296, FLOAT = 297, DOUBLE = 298, CONST = 299, VOLATILE = 300, VOID = 301, VALIST = 302, STRUCT = 303, UNION = 304, ENUM = 305, ELLIPSIS = 306, CASE = 307, DEFAULT = 308, IF = 309, SWITCH = 310, WHILE = 311, DO = 312, FOR = 313, GOTO = 314, CONTINUE = 315, BREAK = 316, RETURN = 317, IFX = 318, ELSE = 319, CLASS = 320, THISCLASS = 321, CLASS_NAME = 322, PROPERTY = 323, SETPROP = 324, GETPROP = 325, NEWOP = 326, RENEW = 327, DELETE = 328, EXT_DECL = 329, EXT_STORAGE = 330, IMPORT = 331, DEFINE = 332, VIRTUAL = 333, ATTRIB = 334, PUBLIC = 335, PRIVATE = 336, TYPED_OBJECT = 337, ANY_OBJECT = 338, _INCREF = 339, EXTENSION = 340, ASM = 341, TYPEOF = 342, WATCH = 343, STOPWATCHING = 344, FIREWATCHERS = 345, WATCHABLE = 346, CLASS_DESIGNER = 347, CLASS_NO_EXPANSION = 348, CLASS_FIXED = 349, ISPROPSET = 350, CLASS_DEFAULT_PROPERTY = 351, PROPERTY_CATEGORY = 352, CLASS_DATA = 353, CLASS_PROPERTY = 354, SUBCLASS = 355, NAMESPACE = 356, NEW0OP = 357, RENEW0 = 358, VAARG = 359, DBTABLE = 360, DBFIELD = 361, DBINDEX = 362, DATABASE_OPEN = 363, ALIGNOF = 364, ATTRIB_DEP = 365, __ATTRIB = 366, BOOL = 367, _BOOL = 368, _COMPLEX = 369, _IMAGINARY = 370, RESTRICT = 371, THREAD = 372
+};
 
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntryType;
+typedef union YYSTYPE
+{
+int specifierType;
+int i;
+int declMode;
+struct Identifier * id;
+struct Expression * exp;
+struct Specifier * specifier;
+struct __ecereNameSpace__ecere__sys__OldList * list;
+struct Enumerator * enumerator;
+struct Declarator * declarator;
+struct Pointer * pointer;
+struct Initializer * initializer;
+struct InitDeclarator * initDeclarator;
+struct TypeName * typeName;
+struct Declaration * declaration;
+struct Statement * stmt;
+struct FunctionDefinition * function;
+struct External * external;
+struct Context * context;
+struct AsmField * asmField;
+struct Attrib * attrib;
+struct ExtDecl * extDecl;
+struct Attribute * attribute;
+struct Instantiation * instance;
+struct MembersInit * membersInit;
+struct MemberInit * memberInit;
+struct ClassFunction * classFunction;
+struct ClassDefinition * _class;
+struct ClassDef * classDef;
+struct PropertyDef * prop;
+char * string;
+struct Symbol * symbol;
+struct PropertyWatch * propertyWatch;
+struct TemplateParameter * templateParameter;
+struct TemplateArgument * templateArgument;
+struct TemplateDatatype * templateDatatype;
+struct DBTableEntry * dbtableEntry;
+struct DBIndexItem * dbindexItem;
+struct DBTableDef * dbtableDef;
+} __attribute__ ((gcc_struct)) YYSTYPE;
+
+struct Enumerator
+{
+struct Enumerator * prev, * next;
+struct Location loc;
+struct Identifier * id;
+struct Expression * exp;
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
+
+struct InitDeclarator
+{
+struct InitDeclarator * prev, * next;
+struct Location loc;
+struct Declarator * declarator;
+struct Initializer * initializer;
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
+
+struct AsmField
+{
+struct AsmField * prev, * next;
+struct Location loc;
+char * command;
+struct Expression * expression;
+struct Identifier * symbolic;
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
+
+struct Attribute
+{
+struct Attribute * prev, * next;
+struct Location loc;
+char * attr;
+struct Expression * exp;
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
+
+struct ClassFunction
+{
+struct ClassFunction * prev, * next;
+struct Location loc;
+struct __ecereNameSpace__ecere__sys__OldList * specifiers;
+struct Declarator * declarator;
+struct __ecereNameSpace__ecere__sys__OldList * declarations;
+struct Statement * body;
+struct __ecereNameSpace__ecere__com__Class * _class;
+struct __ecereNameSpace__ecere__sys__OldList attached;
+int declMode;
+struct Type * type;
+struct Symbol * propSet;
+unsigned int isVirtual;
+unsigned int isConstructor, isDestructor;
+unsigned int dontMangle;
+int id, idCode;
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
+
+struct MembersInit
+{
+struct MembersInit * prev, * next;
+struct Location loc;
+int type;
+union
+{
+struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
+struct ClassFunction * function;
+} __attribute__ ((gcc_struct));
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
+
+struct MemberInit
+{
+struct MemberInit * prev, * next;
+struct Location loc;
+struct Location realLoc;
+struct __ecereNameSpace__ecere__sys__OldList * identifiers;
+struct Initializer * initializer;
+unsigned int used;
+unsigned int variable;
+unsigned int takeOutExp;
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
+
+struct PropertyDef
+{
+struct PropertyDef * prev, * next;
+struct Location loc;
+struct __ecereNameSpace__ecere__sys__OldList * specifiers;
+struct Declarator * declarator;
+struct Identifier * id;
+struct Statement * getStmt;
+struct Statement * setStmt;
+struct Statement * issetStmt;
+struct Symbol * symbol;
+struct Expression * category;
+struct
+{
+unsigned int conversion : 1;
+unsigned int isWatchable : 1;
+unsigned int isDBProp : 1;
+} __attribute__ ((gcc_struct));
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
+
+struct PropertyWatch
+{
+struct PropertyWatch * prev, * next;
+struct Location loc;
+struct Statement * compound;
+struct __ecereNameSpace__ecere__sys__OldList * properties;
+unsigned int deleteWatch;
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
+
+struct ClassDef
+{
+struct ClassDef * prev, * next;
+struct Location loc;
+int type;
+union
+{
+struct Declaration * decl;
+struct ClassFunction * function;
+struct __ecereNameSpace__ecere__sys__OldList * defProperties;
+struct PropertyDef * propertyDef;
+struct PropertyWatch * propertyWatch;
+char * designer;
+struct Identifier * defaultProperty;
+struct
+{
+struct Identifier * id;
+struct Initializer * initializer;
+} __attribute__ ((gcc_struct));
+} __attribute__ ((gcc_struct));
+int memberAccess;
+void * object;
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
 
 struct DBTableEntry
 {
@@ -1022,6 +1243,24 @@ int order;
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
 
+extern YYSTYPE yylval;
+
+typedef struct YYLTYPE
+{
+int first_line;
+int first_column;
+int last_line;
+int last_column;
+} __attribute__ ((gcc_struct)) YYLTYPE;
+
+extern YYLTYPE _yylloc;
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_TokenType;
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_Order;
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntryType;
+
 unsigned int inCompiler = 0x0;
 
 void SetInCompiler(unsigned int b)
@@ -1074,43 +1313,55 @@ fileInput = file;
 
 char * symbolsDir = (((void *)0));
 
-extern char *  __ecereNameSpace__ecere__sys__CopyString(char *  string);
+extern char *  __ecereNameSpace__ecere__sys__CopyString(const char *  string);
 
-void SetSymbolsDir(char * s)
+void SetSymbolsDir(const char * s)
 {
 (__ecereNameSpace__ecere__com__eSystem_Delete(symbolsDir), symbolsDir = 0);
 symbolsDir = __ecereNameSpace__ecere__sys__CopyString(s);
 }
 
-char * GetSymbolsDir()
+const char * GetSymbolsDir()
 {
 return symbolsDir ? symbolsDir : "";
 }
 
-char * outputFile;
+const char * outputFile;
 
-void SetOutputFile(char * s)
+void SetOutputFile(const char * s)
 {
 outputFile = s;
 }
 
-char * GetOutputFile()
+const char * GetOutputFile()
 {
 return outputFile;
 }
 
-char * sourceFile;
+const char * sourceFile;
 
-void SetSourceFile(char * s)
+void SetSourceFile(const char * s)
 {
 sourceFile = s;
 }
 
-char * GetSourceFile()
+const char * GetSourceFile()
 {
 return sourceFile;
 }
 
+const char * i18nModuleName;
+
+void SetI18nModuleName(const char * s)
+{
+i18nModuleName = s;
+}
+
+const char * GetI18nModuleName()
+{
+return i18nModuleName;
+}
+
 void SetGlobalContext(struct Context * context)
 {
 globalContext = context;
@@ -1163,6 +1414,61 @@ void SetOutputLineNumbers(unsigned int value)
 outputLineNumbers = value;
 }
 
+extern void __ecereNameSpace__ecere__sys__ChangeCh(char *  string, char ch1, char ch2);
+
+void FixModuleName(char * moduleName)
+{
+__ecereNameSpace__ecere__sys__ChangeCh(moduleName, '.', '_');
+__ecereNameSpace__ecere__sys__ChangeCh(moduleName, ' ', '_');
+__ecereNameSpace__ecere__sys__ChangeCh(moduleName, '-', '_');
+__ecereNameSpace__ecere__sys__ChangeCh(moduleName, '&', '_');
+}
+
+extern char *  strchr(const char * , int);
+
+char * PassArg(char * output, const char * input)
+{
+#ifdef __WIN32__
+const char * escChars = " !\"%&'()+,;=[]^`{}~";
+const char * escCharsQuoted = "\"";
+#else
+const char * escChars = " !\"$&'()*:;<=>?[\\`{|";
+const char * escCharsQuoted = "\"()$";
+#endif
+unsigned int quoting = 0x0;
+char * o = output;
+const char * i = input, * l = input;
+
+#ifdef __WIN32__
+while(*l && !strchr(escChars, *l))
+l++;
+if(*l)
+quoting = 0x1;
+#else
+if(*i == '-')
+{
+l++;
+while(*l && !strchr(escChars, *l))
+l++;
+if(*l)
+quoting = 0x1;
+*o++ = *i++;
+}
+#endif
+if(quoting)
+*o++ = '\"';
+while(*i)
+{
+if(strchr(quoting ? escCharsQuoted : escChars, *i))
+*o++ = '\\';
+*o++ = *i++;
+}
+if(quoting)
+*o++ = '\"';
+*o = '\0';
+return o;
+}
+
 struct GlobalData
 {
 uintptr_t key;
@@ -1296,23 +1602,13 @@ static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExpUsage;
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_SpecifierType;
 
-struct Attribute
-{
-struct Attribute * prev, * next;
-struct Location loc;
-char * attr;
-struct Expression * exp;
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
-
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDeclType;
 
 void __ecereMethod_Expression_Clear(struct Expression * this)
 {
-struct __ecereNameSpace__ecere__com__DataValue __simpleStruct0 = 
+struct __ecereNameSpace__ecere__com__DataValue __simpleStruct0 =
 {
-(char)0
+.c = (char)0
 };
 
 this->debugValue = 0x0;
@@ -1328,159 +1624,26 @@ this->isConstant = 0x0;
 this->addedThis = 0x0;
 this->needCast = 0x0;
 this->thisPtr = 0x0;
+this->opDestType = 0x0;
 }
 
-struct Enumerator
-{
-struct Enumerator * prev, * next;
-struct Location loc;
-struct Identifier * id;
-struct Expression * exp;
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
-
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_DeclaratorType;
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitializerType;
 
-struct InitDeclarator
-{
-struct InitDeclarator * prev, * next;
-struct Location loc;
-struct Declarator * declarator;
-struct Initializer * initializer;
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
-
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassObjectType;
 
-struct AsmField
-{
-struct AsmField * prev, * next;
-struct Location loc;
-char * command;
-struct Expression * expression;
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
-
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_StmtType;
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_DeclarationType;
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInitType;
 
-struct ClassFunction
-{
-struct ClassFunction * prev, * next;
-struct Location loc;
-struct __ecereNameSpace__ecere__sys__OldList * specifiers;
-struct Declarator * declarator;
-struct __ecereNameSpace__ecere__sys__OldList * declarations;
-struct Statement * body;
-struct __ecereNameSpace__ecere__com__Class * _class;
-struct __ecereNameSpace__ecere__sys__OldList attached;
-int declMode;
-struct Type * type;
-struct Symbol * propSet;
-unsigned int isVirtual;
-unsigned int isConstructor, isDestructor;
-unsigned int dontMangle;
-int id, idCode;
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
-
-struct MembersInit
-{
-struct MembersInit * prev, * next;
-struct Location loc;
-int type;
-union
-{
-struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
-struct ClassFunction * function;
-} __attribute__ ((gcc_struct));
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
-
-struct MemberInit
-{
-struct MemberInit * prev, * next;
-struct Location loc;
-struct Location realLoc;
-struct __ecereNameSpace__ecere__sys__OldList * identifiers;
-struct Initializer * initializer;
-unsigned int used;
-unsigned int variable;
-unsigned int takeOutExp;
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
-
-struct PropertyWatch
-{
-struct PropertyWatch * prev, * next;
-struct Location loc;
-struct Statement * compound;
-struct __ecereNameSpace__ecere__sys__OldList * properties;
-unsigned int deleteWatch;
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
-
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefType;
 
-struct PropertyDef
-{
-struct PropertyDef * prev, * next;
-struct Location loc;
-struct __ecereNameSpace__ecere__sys__OldList * specifiers;
-struct Declarator * declarator;
-struct Identifier * id;
-struct Statement * getStmt;
-struct Statement * setStmt;
-struct Statement * issetStmt;
-struct Symbol * symbol;
-unsigned int conversion;
-unsigned int isWatchable;
-struct Expression * category;
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
-
-struct ClassDef
-{
-struct ClassDef * prev, * next;
-struct Location loc;
-int type;
-union
-{
-struct Declaration * decl;
-struct ClassFunction * function;
-struct __ecereNameSpace__ecere__sys__OldList * defProperties;
-struct PropertyDef * propertyDef;
-struct PropertyWatch * propertyWatch;
-char * designer;
-struct Identifier * defaultProperty;
-struct
-{
-struct Identifier * id;
-struct Initializer * initializer;
-} __attribute__ ((gcc_struct));
-} __attribute__ ((gcc_struct));
-int memberAccess;
-void * object;
-} __attribute__ ((gcc_struct));
-
-static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
-
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExternalType;
 
-int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char *  a, char *  b);
+int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, const char *  a, const char *  b);
 
 unsigned int __ecereConstructor_Context(struct Context * this)
 {
@@ -1521,9 +1684,11 @@ static struct __ecereNameSpace__ecere__com__Class * __ecereClass_MethodImport;
 
 static struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeKind;
 
+static struct __ecereNameSpace__ecere__com__Property * __ecereProp_Type_specConst, * __ecerePropM_Type_specConst;
+
 extern void PrintType(struct Type * type, char *  string, unsigned int printName, unsigned int fullName);
 
-char * __ecereMethod_Type_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, struct Type * this, char * tempString, void * fieldData, unsigned int * needClass)
+const char * __ecereMethod_Type_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, struct Type * this, char * tempString, void * fieldData, unsigned int * needClass)
 {
 struct Type * type = (struct Type *)this;
 
@@ -1537,6 +1702,15 @@ void __ecereMethod_Type_OnFree(struct __ecereNameSpace__ecere__com__Class * clas
 {
 }
 
+unsigned int __ecereProp_Type_Get_specConst(struct Type * this)
+{
+struct Type * t = this;
+
+while((t->kind == 13 || t->kind == 12) && t->type)
+t = t->type;
+return t->constant;
+}
+
 struct OpTable
 {
 unsigned int (* Add)(struct Expression *, struct Operand *, struct Operand *);
@@ -1608,23 +1782,23 @@ extern struct Location yylloc;
 
 extern char *  __ecereNameSpace__ecere__sys__GetWorkingDir(char *  buf, int size);
 
-extern char *  __ecereNameSpace__ecere__sys__PathCat(char *  string, char *  addedPath);
+extern char *  __ecereNameSpace__ecere__sys__PathCat(char *  string, const char *  addedPath);
 
 extern char *  GetIncludeFileFromID(int id);
 
-extern int printf(char * , ...);
+extern int printf(const char * , ...);
 
-extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
+extern const char *  __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char *  string, const char *  stringAndContext);
 
-extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
+extern int fputs(const char * , void *  stream);
 
-extern int fputs(char * , void *  stream);
+extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
 
 struct __ecereNameSpace__ecere__com__NameSpace
 {
-char *  name;
+const char *  name;
 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
 struct __ecereNameSpace__ecere__com__NameSpace *  left;
 struct __ecereNameSpace__ecere__com__NameSpace *  right;
@@ -1647,7 +1821,7 @@ struct __ecereNameSpace__ecere__sys__OldList functions;
 struct __ecereNameSpace__ecere__sys__OldList modules;
 struct __ecereNameSpace__ecere__com__Instance * prev;
 struct __ecereNameSpace__ecere__com__Instance * next;
-char *  name;
+const char *  name;
 void *  library;
 void *  Unload;
 int importType;
@@ -1661,7 +1835,7 @@ extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpac
 struct __ecereNameSpace__ecere__com__Application
 {
 int argc;
-char * *  argv;
+const char * *  argv;
 int exitCode;
 unsigned int isGUIApp;
 struct __ecereNameSpace__ecere__sys__OldList allModules;
@@ -1671,7 +1845,7 @@ struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
 
 extern unsigned int parseTypeError;
 
-void Compiler_Error(char * format, ...)
+void Compiler_Error(const char * format, ...)
 {
 if(inCompiler)
 {
@@ -1682,19 +1856,19 @@ char string[10000];
 
 if(yylloc.start.included)
 {
-__ecereNameSpace__ecere__sys__GetWorkingDir(string, sizeof string);
-__ecereNameSpace__ecere__sys__PathCat(string, GetIncludeFileFromID((unsigned int)yylloc.start.included));
+__ecereNameSpace__ecere__sys__GetWorkingDir(string, sizeof (string));
+__ecereNameSpace__ecere__sys__PathCat(string, GetIncludeFileFromID(yylloc.start.included));
 }
 else
 {
-__ecereNameSpace__ecere__sys__GetWorkingDir(string, sizeof string);
+__ecereNameSpace__ecere__sys__GetWorkingDir(string, sizeof (string));
 __ecereNameSpace__ecere__sys__PathCat(string, sourceFile);
 }
 printf(string);
-printf(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, ":%d:%d: error: ", (((void *)0))), yylloc.start.line, yylloc.start.charPos);
+printf(__ecereNameSpace__ecere__GetTranslatedString("ec", ":%d:%d: error: ", (((void *)0))), yylloc.start.line, yylloc.start.charPos);
 __builtin_va_start(args, format);
-vsnprintf(string, sizeof string, format, args);
-string[sizeof string - 1] = (char)0;
+vsnprintf(string, sizeof (string), format, args);
+string[sizeof (string) - 1] = (char)0;
 __builtin_va_end(args);
 fputs(string, (bsl_stdout()));
 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application + structSize_Module)))->exitCode = 1;
@@ -1713,28 +1887,38 @@ int GetNumWarnings()
 return numWarnings;
 }
 
-void Compiler_Warning(char * format, ...)
+extern char *  __ecereNameSpace__ecere__sys__GetLastDirectory(const char *  string, char *  output);
+
+extern int strcmp(const char * , const char * );
+
+void Compiler_Warning(const char * format, ...)
 {
 if(inCompiler)
 {
 va_list args;
 char string[10000];
+char fileName[274];
 
 if(yylloc.start.included)
 {
-__ecereNameSpace__ecere__sys__GetWorkingDir(string, sizeof string);
-__ecereNameSpace__ecere__sys__PathCat(string, GetIncludeFileFromID((unsigned int)yylloc.start.included));
+char * include = GetIncludeFileFromID(yylloc.start.included);
+
+__ecereNameSpace__ecere__sys__GetWorkingDir(string, sizeof (string));
+__ecereNameSpace__ecere__sys__PathCat(string, include);
 }
 else
 {
-__ecereNameSpace__ecere__sys__GetWorkingDir(string, sizeof string);
+__ecereNameSpace__ecere__sys__GetWorkingDir(string, sizeof (string));
 __ecereNameSpace__ecere__sys__PathCat(string, sourceFile);
 }
+__ecereNameSpace__ecere__sys__GetLastDirectory(string, fileName);
+if(!strcmp(fileName, "intrin-impl.h"))
+return ;
 printf(string);
-printf(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, ":%d:%d: warning: ", (((void *)0))), yylloc.start.line, yylloc.start.charPos);
+printf(__ecereNameSpace__ecere__GetTranslatedString("ec", ":%d:%d: warning: ", (((void *)0))), yylloc.start.line, yylloc.start.charPos);
 __builtin_va_start(args, format);
-vsnprintf(string, sizeof string, format, args);
-string[sizeof string - 1] = (char)0;
+vsnprintf(string, sizeof (string), format, args);
+string[sizeof (string) - 1] = (char)0;
 __builtin_va_end(args);
 fputs(string, (bsl_stdout()));
 numWarnings++;
@@ -1745,12 +1929,12 @@ unsigned int parseError;
 
 unsigned int skipErrors;
 
-int yyerror(char * s)
+int yyerror()
 {
 if(!skipErrors)
 {
 parseError = 0x1;
-Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "syntax error\n", (((void *)0))));
+Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "syntax error\n", (((void *)0))));
 }
 return 0;
 }
@@ -1759,9 +1943,7 @@ int targetPlatform;
 
 extern char *  getenv(const char *  name);
 
-extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__DualPipeOpen(unsigned int mode, char *  commandLine);
-
-extern int strcmp(const char * , const char * );
+extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__DualPipeOpen(unsigned int mode, const char *  commandLine);
 
 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(struct __ecereNameSpace__ecere__com__Instance * this, char *  s, int max);
 
@@ -1779,7 +1961,7 @@ struct __ecereNameSpace__ecere__com__Instance * f = __ecereNameSpace__ecere__sys
 
 if(f)
 {
-if(__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, host, sizeof host))
+if(__ecereMethod___ecereNameSpace__ecere__sys__File_GetLine(f, host, sizeof (host)))
 hostType = host;
 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
 }
@@ -1811,44 +1993,164 @@ int GetTargetBits()
 return targetBits;
 }
 
-extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
+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);
 
-extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char *  string, int value);
+extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, const char *  string, int value);
 
-extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, unsigned int size, unsigned int alignment, int declMode);
+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);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
 
 struct __ecereNameSpace__ecere__com__GlobalFunction;
 
-extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
+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);
 
-extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
+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);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
 
 struct __ecereNameSpace__ecere__com__BitMember;
 
-extern struct __ecereNameSpace__ecere__com__BitMember * __ecereNameSpace__ecere__com__eClass_AddBitMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, int bitSize, int bitPos, int declMode);
+extern struct __ecereNameSpace__ecere__com__BitMember * __ecereNameSpace__ecere__com__eClass_AddBitMember(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  type, int bitSize, int bitPos, int declMode);
 
 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode);
 
-extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_AddDataMember(struct __ecereNameSpace__ecere__com__DataMember * member, char *  name, char *  type, unsigned int size, unsigned int alignment, int declMode);
+extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_AddDataMember(struct __ecereNameSpace__ecere__com__DataMember * member, const char *  name, const char *  type, unsigned int size, unsigned int alignment, int declMode);
 
 extern unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember);
 
 extern unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember);
 
+extern struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  dataType, void *  setStmt, void *  getStmt, int declMode);
+
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
 
 struct __ecereNameSpace__ecere__com__DefinedExpression;
 
-extern struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char *  name, char *  value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
+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);
 
 void __ecereRegisterModule_ecdefs(struct __ecereNameSpace__ecere__com__Instance * module)
 {
 struct __ecereNameSpace__ecere__com__Class * class;
 
+class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "TokenType", 0, 0, 0, 0, 0, module, 1, 1);
+if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
+__ecereClass_TokenType = class;
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "identifier", 258);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "constant", 259);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "stringLiteral", 260);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "sizeOf", 261);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "ptrOp", 262);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "incOp", 263);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "decOp", 264);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "leftOp", 265);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "rightOp", 266);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "leOp", 267);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "geOp", 268);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "eqOp", 269);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "neOp", 270);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "andOp", 271);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "orOp", 272);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "mulAssign", 273);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "divAssign", 274);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "modAssign", 275);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "addAssign", 276);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "subAssign", 277);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "leftAssign", 278);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "rightAssign", 279);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "andAssign", 280);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "xorAssign", 281);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "orAssign", 282);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "typeName", 283);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_typedef", 284);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_extern", 285);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_static", 286);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_auto", 287);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_register", 288);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_char", 289);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_short", 290);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_int", 291);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_uint", 292);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_int64", 293);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_long", 294);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_signed", 295);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_unsigned", 296);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_float", 297);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_double", 298);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_const", 299);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_volatile", 300);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_void", 301);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_valist", 302);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_struct", 303);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_union", 304);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_enum", 305);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "ellipsis", 306);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_case", 307);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_default", 308);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_if", 309);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_switch", 310);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_whilte", 311);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_do", 312);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_for", 313);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_goto", 314);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_continue", 315);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_break", 316);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_return", 317);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "ifx", 318);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_else", 319);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_class", 320);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "thisClass", 321);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "className", 322);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_property", 323);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "setProp", 324);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "getProp", 325);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "newOp", 326);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_renew", 327);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_delete", 328);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_extDecl", 329);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_extStorage", 330);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_import", 331);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_define", 332);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_virtual", 333);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "attrib", 334);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_public", 335);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_priate", 336);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "typedObject", 337);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "anyObject", 338);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_incref", 339);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "extension", 340);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "___asm", 341);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_typeof", 342);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_watch", 343);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "stopWatching", 344);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "fireWatchers", 345);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_watchable", 346);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classDesigner", 347);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classNoExpansion", 348);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classFixed", 349);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "isPropSet", 350);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classDefaultProperty", 351);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "propertyCategory", 352);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classData", 353);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classProperty", 354);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "subClass", 355);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "nameSpace", 356);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "new0Op", 357);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "renew0Op", 358);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "vaArg", 359);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbTable", 360);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbField", 361);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbIndex", 362);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "databaseOpen", 363);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "alignOf", 364);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "attribDep", 365);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_attrib", 366);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "BOOL", 367);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_BOOL", 368);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "complex", 369);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "imaginary", 370);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_restrict", 371);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_thread", 372);
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "Order", 0, 0, 0, 0, 0, module, 2, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_Order = class;
@@ -1878,12 +2180,14 @@ __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetPrivateModule", "ecer
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetMainModule", "void SetMainModule(ModuleImport moduleImport)", SetMainModule, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetMainModule", "ModuleImport GetMainModule(void)", GetMainModule, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetFileInput", "void SetFileInput(ecere::sys::File file)", SetFileInput, module, 1);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetSymbolsDir", "void SetSymbolsDir(char * s)", SetSymbolsDir, module, 1);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetSymbolsDir", "char * GetSymbolsDir(void)", GetSymbolsDir, module, 1);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetOutputFile", "void SetOutputFile(char * s)", SetOutputFile, module, 1);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetOutputFile", "char * GetOutputFile(void)", GetOutputFile, module, 1);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetSourceFile", "void SetSourceFile(char * s)", SetSourceFile, module, 1);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetSourceFile", "char * GetSourceFile(void)", GetSourceFile, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetSymbolsDir", "void SetSymbolsDir(const char * s)", SetSymbolsDir, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetSymbolsDir", "const char * GetSymbolsDir(void)", GetSymbolsDir, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetOutputFile", "void SetOutputFile(const char * s)", SetOutputFile, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetOutputFile", "const char * GetOutputFile(void)", GetOutputFile, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetSourceFile", "void SetSourceFile(const char * s)", SetSourceFile, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetSourceFile", "const char * GetSourceFile(void)", GetSourceFile, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetI18nModuleName", "void SetI18nModuleName(const char * s)", SetI18nModuleName, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetI18nModuleName", "const char * GetI18nModuleName(void)", GetI18nModuleName, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetGlobalContext", "void SetGlobalContext(Context context)", SetGlobalContext, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetGlobalContext", "Context GetGlobalContext(void)", GetGlobalContext, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetTopContext", "void SetTopContext(Context context)", SetTopContext, module, 1);
@@ -1894,6 +2198,8 @@ __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetExcludedSymbols", "vo
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetImports", "void SetImports(ecere::sys::OldList * list)", SetImports, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetDefines", "void SetDefines(ecere::sys::OldList * list)", SetDefines, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetOutputLineNumbers", "void SetOutputLineNumbers(bool value)", SetOutputLineNumbers, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("FixModuleName", "void FixModuleName(char * moduleName)", FixModuleName, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("PassArg", "char * PassArg(char * output, const char * input)", PassArg, module, 1);
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "GlobalData", "ecere::sys::BTNode", sizeof(struct GlobalData), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_GlobalData = class;
@@ -1917,7 +2223,7 @@ __ecereNameSpace__ecere__com__eClass_AddMethod(class, "AdjustDelete", "void Adju
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "line", "int", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "charPos", "int", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "int", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "included", "bool", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "included", "int", 4, 4, 1);
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "Location", 0, sizeof(struct Location), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_Location = class;
@@ -1982,26 +2288,27 @@ __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classSizeExp", 15);
 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dummyExp", 16);
 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dereferenceErrorExp", 17);
 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "symbolErrorExp", 18);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classMemberSymbolErrorExp", 19);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structMemberSymbolErrorExp", 20);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "memoryErrorExp", 21);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknownErrorExp", 22);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noDebuggerErrorExp", 23);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "debugStateErrorExp", 24);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "extensionCompoundExp", 25);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classExp", 26);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classDataExp", 27);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "new0Exp", 28);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "renew0Exp", 29);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbopenExp", 30);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbfieldExp", 31);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbtableExp", 32);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbindexExp", 33);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "extensionExpressionExp", 34);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "extensionInitializerExp", 35);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "vaArgExp", 36);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "arrayExp", 37);
-__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "typeAlignExp", 38);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "memberSymbolErrorExp", 19);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "memoryErrorExp", 20);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknownErrorExp", 21);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noDebuggerErrorExp", 22);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "extensionCompoundExp", 23);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classExp", 24);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "classDataExp", 25);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "new0Exp", 26);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "renew0Exp", 27);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbopenExp", 28);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbfieldExp", 29);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbtableExp", 30);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dbindexExp", 31);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "extensionExpressionExp", 32);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "extensionInitializerExp", 33);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "vaArgExp", 34);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "arrayExp", 35);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "typeAlignExp", 36);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "memberPropertyErrorExp", 37);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "functionCallErrorExp", 38);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "divideBy0ErrorExp", 39);
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "MemberType", 0, 0, 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_MemberType = class;
@@ -2038,7 +2345,7 @@ __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "memberType", "
 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
 }
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultArgument", "TemplateArgument", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "const char *", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "baseType", "Type", arch_PointerSize, arch_PointerSize, 1);
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "TemplateDatatype", 0, sizeof(struct TemplateDatatype), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
@@ -2161,24 +2468,30 @@ __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
 }
 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "compound", "Statement", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "instance", "Instantiation", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "string", "char *", arch_PointerSize, arch_PointerSize, 1);
+{
+struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
+
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "string", "char *", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "intlString", "bool", 4, 4, 1);
+__ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
+}
 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "list", "ecere::sys::OldList *", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "_classExp", "struct {ecere::sys::OldList * specifiers; Declarator decl; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "classData", "struct {Identifier id; }", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "call", "struct {Expression exp; ecere::sys::OldList * arguments; Location argLoc; }", structSize_ExpCall, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "index", "struct {Expression exp; ecere::sys::OldList * index; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "member", "struct {Expression exp; Identifier member; MemberType memberType; bool thisPtr; }", structSize_ExpMember, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "op", "struct {int op; Expression exp1; Expression exp2; }", 3*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "_classExp", "struct { ecere::sys::OldList * specifiers; Declarator decl; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "classData", "struct { Identifier id; }", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "call", "struct { Expression exp; ecere::sys::OldList * arguments; Location argLoc; }", structSize_ExpCall, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "index", "struct { Expression exp; ecere::sys::OldList * index; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "member", "struct { Expression exp; Identifier member; MemberType memberType; bool thisPtr; }", structSize_ExpMember, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "op", "struct { int op; Expression exp1; Expression exp2; }", 3*arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "typeName", "TypeName", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "_class", "Specifier", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "cast", "struct {TypeName typeName; Expression exp; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "cond", "struct {Expression cond; ecere::sys::OldList * exp; Expression elseExp; }", 3*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "_new", "struct {TypeName typeName; Expression size; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "_renew", "struct {TypeName typeName; Expression size; Expression exp; }", 3*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "db", "struct {char * table; Identifier id; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dbopen", "struct {Expression ds; Expression name; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "initializer", "struct {TypeName typeName; Initializer initializer; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "vaArg", "struct {Expression exp; TypeName typeName; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "cast", "struct { TypeName typeName; Expression exp; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "cond", "struct { Expression cond; ecere::sys::OldList * exp; Expression elseExp; }", 3*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "_new", "struct { TypeName typeName; Expression size; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "_renew", "struct { TypeName typeName; Expression size; Expression exp; }", 3*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "db", "struct { char * table; Identifier id; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dbopen", "struct { Expression ds; Expression name; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "initializer", "struct { TypeName typeName; Initializer initializer; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "vaArg", "struct { Expression exp; TypeName typeName; }", 2*arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
 }
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "debugValue", "bool", 4, 4, 1);
@@ -2194,6 +2507,7 @@ __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isConstant", "bool",
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "addedThis", "bool", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "needCast", "bool", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "thisPtr", "bool", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "opDestType", "bool", 4, 4, 1);
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "Enumerator", 0, sizeof(struct Enumerator), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_Enumerator = class;
@@ -2229,11 +2543,11 @@ __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "declarator", "Declara
 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
 
 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "identifier", "Identifier", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "structDecl", "struct {Expression exp; Expression posExp; Attrib attrib; }", 3*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "array", "struct {Expression exp; Specifier enumClass; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "function", "struct {ecere::sys::OldList * parameters; }", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "pointer", "struct {Pointer pointer; }", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "extended", "struct {ExtDecl extended; }", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "structDecl", "struct { Expression exp; Expression posExp; Attrib attrib; }", 3*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "array", "struct { Expression exp; Specifier enumClass; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "function", "struct { ecere::sys::OldList * parameters; }", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "pointer", "struct { Pointer pointer; }", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "extended", "struct { ExtDecl extended; }", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
 }
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "InitializerType", 0, 0, 0, 0, 0, module, 1, 1);
@@ -2256,6 +2570,7 @@ __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "list", "ecere:
 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
 }
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isConstant", "bool", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "Identifier", arch_PointerSize, arch_PointerSize, 1);
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "InitDeclarator", 0, sizeof(struct InitDeclarator), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_InitDeclarator = class;
@@ -2317,18 +2632,18 @@ __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "StmtType", 4,
 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
 
 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "expressions", "ecere::sys::OldList *", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "labeled", "struct {Identifier id; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "caseStmt", "struct {Expression exp; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "compound", "struct {ecere::sys::OldList * declarations; ecere::sys::OldList * statements; Context context; bool isSwitch; }", 4*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ifStmt", "struct {ecere::sys::OldList * exp; Statement stmt; Statement elseStmt; }", 3*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "switchStmt", "struct {ecere::sys::OldList * exp; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "whileStmt", "struct {ecere::sys::OldList * exp; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "doWhile", "struct {ecere::sys::OldList * exp; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "forStmt", "struct {Statement init; Statement check; ecere::sys::OldList * increment; Statement stmt; }", 4*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "gotoStmt", "struct {Identifier id; }", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "asmStmt", "struct {Specifier spec; char * statements; ecere::sys::OldList * inputFields; ecere::sys::OldList * outputFields; ecere::sys::OldList * clobberedFields; }", 5*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "_watch", "struct {Expression watcher; Expression object; ecere::sys::OldList * watches; }", 3*arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "forEachStmt", "struct {Identifier id; ecere::sys::OldList * exp; ecere::sys::OldList * filter; Statement stmt; }", 4*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "labeled", "struct { Identifier id; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "caseStmt", "struct { Expression exp; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "compound", "struct { ecere::sys::OldList * declarations; ecere::sys::OldList * statements; Context context; bool isSwitch; }", 4*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ifStmt", "struct { ecere::sys::OldList * exp; Statement stmt; Statement elseStmt; }", 3*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "switchStmt", "struct { ecere::sys::OldList * exp; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "whileStmt", "struct { ecere::sys::OldList * exp; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "doWhile", "struct { ecere::sys::OldList * exp; Statement stmt; }", 2*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "forStmt", "struct { Statement init; Statement check; ecere::sys::OldList * increment; Statement stmt; }", 4*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "gotoStmt", "struct { Identifier id; }", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "asmStmt", "struct { Specifier spec; char * statements; ecere::sys::OldList * inputFields; ecere::sys::OldList * outputFields; ecere::sys::OldList * clobberedFields; }", 5*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "_watch", "struct { Expression watcher; Expression object; ecere::sys::OldList * watches; }", 3*arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "forEachStmt", "struct { Identifier id; ecere::sys::OldList * exp; ecere::sys::OldList * filter; Statement stmt; }", 4*arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "decl", "Declaration", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
 }
@@ -2508,9 +2823,15 @@ __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "getStmt", "Statement"
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "setStmt", "Statement", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "issetStmt", "Statement", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "Symbol", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversion", "bool", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isWatchable", "bool", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "category", "Expression", arch_PointerSize, arch_PointerSize, 1);
+{
+struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
+
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "conversion", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "isWatchable", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "isDBProp", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
+}
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ClassDef", 0, sizeof(struct ClassDef), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_ClassDef = class;
@@ -2664,7 +2985,7 @@ __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "methods", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "properties", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "itself", "bool", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "bool", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "int", 4, 4, 1);
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "FunctionImport", 0, sizeof(struct FunctionImport), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_FunctionImport = class;
@@ -2724,6 +3045,7 @@ __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "templateType", 20);
 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "thisClassType", 21);
 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "intPtrType", 22);
 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "intSizeType", 23);
+__ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "_BoolType", 24);
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "Type", 0, sizeof(struct Type), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_Type = class;
@@ -2775,25 +3097,32 @@ __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "type", "Type",
 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "templateParameter", "TemplateParameter", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
 }
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isSigned", "bool", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "kind", "TypeKind", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "uint", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typeName", "char *", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "bool", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "truth", "bool", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classObjectType", "ClassObjectType", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "byReference", "bool", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "extraParam", "bool", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "alignment", "int", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "directClassAccess", "bool", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computing", "bool", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dllExport", "bool", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "uint", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "keepCast", "bool", 4, 4, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "passAsTemplate", "bool", 4, 4, 1);
 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "bitFieldCount", "int", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isSigned", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "truth", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "byReference", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "extraParam", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "directClassAccess", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computing", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "keepCast", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "passAsTemplate", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dllExport", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "attrStdcall", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "declaredWithStruct", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typedByReference", "bool:1", 4, 4, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "casted", "bool:1", 4, 4, 1);
+__ecerePropM_Type_specConst = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "specConst", "bool", 0, __ecereProp_Type_Get_specConst, 1);
+if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
+__ecereProp_Type_specConst = __ecerePropM_Type_specConst, __ecerePropM_Type_specConst = (void *)0;
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "Operand", 0, sizeof(struct Operand), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_Operand = class;
@@ -2819,46 +3148,46 @@ __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "ops", "OpTable", stru
 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "OpTable", 0, sizeof(struct OpTable), 0, 0, 0, module, 1, 1);
 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
 __ecereClass_OpTable = class;
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Add", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Sub", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Mul", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Div", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Mod", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Neg", "bool*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Inc", "bool*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Dec", "bool*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Asign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "AddAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "SubAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "MulAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "DivAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "ModAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "BitAnd", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "BitOr", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "BitXor", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "LShift", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "RShift", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "BitNot", "bool*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "AndAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "OrAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "XorAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "LShiftAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "RShiftAsign", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Not", "bool*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Equ", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Nqu", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "And", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Or", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Grt", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Sma", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "GrtEqu", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "SmaEqu", "bool*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
-__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Cond", "bool*)(Expression, Operand, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Add", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Sub", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Mul", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Div", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Mod", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Neg", "bool (*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Inc", "bool (*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Dec", "bool (*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Asign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "AddAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "SubAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "MulAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "DivAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "ModAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "BitAnd", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "BitOr", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "BitXor", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "LShift", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "RShift", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "BitNot", "bool (*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "AndAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "OrAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "XorAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "LShiftAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "RShiftAsign", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Not", "bool (*)(Expression, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Equ", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Nqu", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "And", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Or", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Grt", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Sma", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "GrtEqu", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "SmaEqu", "bool (*)(Expression, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
+__ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Cond", "bool (*)(Expression, Operand, Operand, Operand)", arch_PointerSize, arch_PointerSize, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("MAX_INCLUDE_DEPTH", "30", module, 2);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("Compiler_Error", "void Compiler_Error(char * format, ...)", Compiler_Error, module, 2);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("Compiler_Error", "void Compiler_Error(const char * format, ...)", Compiler_Error, module, 2);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetNumWarnings", "int GetNumWarnings(void)", GetNumWarnings, module, 1);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("Compiler_Warning", "void Compiler_Warning(char * format, ...)", Compiler_Warning, module, 2);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("yyerror", "int yyerror(char * s)", yyerror, module, 2);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("Compiler_Warning", "void Compiler_Warning(const char * format, ...)", Compiler_Warning, module, 2);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("yyerror", "int yyerror(void)", yyerror, module, 2);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetHostBits", "int GetHostBits(void)", GetHostBits, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetTargetPlatform", "void SetTargetPlatform(ecere::com::Platform platform)", SetTargetPlatform, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetTargetBits", "void SetTargetBits(int bits)", SetTargetBits, module, 1);
@@ -2868,5 +3197,6 @@ __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetTargetBits", "int Get
 void __ecereUnregisterModule_ecdefs(struct __ecereNameSpace__ecere__com__Instance * module)
 {
 
+__ecerePropM_Type_specConst = (void *)0;
 }