2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #elif defined(__TINYC__)
6 #define __builtin_va_list va_list
7 #define __builtin_va_start va_start
8 #define __builtin_va_end va_end
10 #define strcasecmp stricmp
11 #define strncasecmp strnicmp
12 #define __declspec(x) __attribute__((x))
14 typedef long long int64;
15 typedef unsigned long long uint64;
17 typedef __int64 int64;
18 typedef unsigned __int64 uint64;
21 #define __ENDIAN_PAD(x) (8 - (x))
23 #define __ENDIAN_PAD(x) 0
25 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
27 struct __ecereNameSpace__ecere__sys__BTNode;
29 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
31 struct __ecereNameSpace__ecere__sys__BinaryTree
33 struct __ecereNameSpace__ecere__sys__BTNode * root;
35 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, unsigned int a, unsigned int b);
36 void (* FreeKey)(void * key);
39 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
41 struct __ecereNameSpace__ecere__sys__OldList
50 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
52 struct __ecereNameSpace__ecere__com__Method
55 struct __ecereNameSpace__ecere__com__Method * parent;
56 struct __ecereNameSpace__ecere__com__Method * left;
57 struct __ecereNameSpace__ecere__com__Method * right;
62 struct __ecereNameSpace__ecere__com__Class * _class;
64 char * dataTypeString;
65 struct Type * dataType;
69 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
71 struct __ecereNameSpace__ecere__com__Property
73 struct __ecereNameSpace__ecere__com__Property * prev;
74 struct __ecereNameSpace__ecere__com__Property * next;
76 unsigned int isProperty;
79 struct __ecereNameSpace__ecere__com__Class * _class;
80 char * dataTypeString;
81 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
82 struct Type * dataType;
85 unsigned int (* IsSet)();
89 unsigned int conversion;
90 unsigned int watcherOffset;
92 unsigned int compiled;
93 unsigned int selfWatchable;
94 unsigned int isWatchable;
97 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
104 unsigned int included;
107 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
111 struct CodePosition start;
112 struct CodePosition end;
115 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
117 struct ClassDefinition
119 struct ClassDefinition * prev;
120 struct ClassDefinition * next;
122 struct Specifier * _class;
123 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
124 struct __ecereNameSpace__ecere__sys__OldList * definitions;
125 struct Symbol * symbol;
126 struct Location blockStart;
127 struct Location nameLoc;
130 unsigned int deleteWatchable;
133 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
137 struct Context * parent;
138 struct __ecereNameSpace__ecere__sys__BinaryTree types;
139 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
140 struct __ecereNameSpace__ecere__sys__BinaryTree symbols;
141 struct __ecereNameSpace__ecere__sys__BinaryTree structSymbols;
144 struct __ecereNameSpace__ecere__sys__BinaryTree templateTypes;
145 struct ClassDefinition * classDef;
146 unsigned int templateTypesOnly;
147 unsigned int hasNameSpace;
150 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
154 struct Instantiation * prev;
155 struct Instantiation * next;
157 struct Specifier * _class;
158 struct Expression * exp;
159 struct __ecereNameSpace__ecere__sys__OldList * members;
160 struct Symbol * symbol;
161 unsigned int fullSet;
162 unsigned int isConstant;
163 unsigned char * data;
164 struct Location nameLoc;
165 struct Location insideLoc;
169 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
173 struct Declaration * prev;
174 struct Declaration * next;
181 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
182 struct __ecereNameSpace__ecere__sys__OldList * declarators;
184 struct Instantiation * inst;
187 struct Identifier * id;
188 struct Expression * exp;
191 struct Specifier * extStorage;
192 struct Symbol * symbol;
196 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
200 struct Statement * prev;
201 struct Statement * next;
206 struct __ecereNameSpace__ecere__sys__OldList * expressions;
209 struct Identifier * id;
210 struct Statement * stmt;
214 struct Expression * exp;
215 struct Statement * stmt;
219 struct __ecereNameSpace__ecere__sys__OldList * declarations;
220 struct __ecereNameSpace__ecere__sys__OldList * statements;
221 struct Context * context;
222 unsigned int isSwitch;
226 struct __ecereNameSpace__ecere__sys__OldList * exp;
227 struct Statement * stmt;
228 struct Statement * elseStmt;
232 struct __ecereNameSpace__ecere__sys__OldList * exp;
233 struct Statement * stmt;
237 struct __ecereNameSpace__ecere__sys__OldList * exp;
238 struct Statement * stmt;
242 struct __ecereNameSpace__ecere__sys__OldList * exp;
243 struct Statement * stmt;
247 struct Statement * init;
248 struct Statement * check;
249 struct __ecereNameSpace__ecere__sys__OldList * increment;
250 struct Statement * stmt;
254 struct Identifier * id;
258 struct Specifier * spec;
260 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
261 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
262 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
266 struct Expression * watcher;
267 struct Expression * object;
268 struct __ecereNameSpace__ecere__sys__OldList * watches;
272 struct Identifier * id;
273 struct __ecereNameSpace__ecere__sys__OldList * exp;
274 struct __ecereNameSpace__ecere__sys__OldList * filter;
275 struct Statement * stmt;
277 struct Declaration * decl;
281 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
285 struct TypeName * prev;
286 struct TypeName * next;
288 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
289 struct Declarator * declarator;
291 struct Expression * bitCount;
294 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
298 struct Initializer * prev;
299 struct Initializer * next;
304 struct Expression * exp;
305 struct __ecereNameSpace__ecere__sys__OldList * list;
307 unsigned int isConstant;
310 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
312 struct __ecereNameSpace__ecere__com__DataValue
330 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
334 struct Expression * prev;
335 struct Expression * next;
343 struct Identifier * identifier;
345 struct Statement * compound;
346 struct Instantiation * instance;
348 struct __ecereNameSpace__ecere__sys__OldList * list;
351 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
352 struct Declarator * decl;
356 struct Identifier * id;
360 struct Expression * exp;
361 struct __ecereNameSpace__ecere__sys__OldList * arguments;
362 struct Location argLoc;
366 struct Expression * exp;
367 struct __ecereNameSpace__ecere__sys__OldList * index;
371 struct Expression * exp;
372 struct Identifier * member;
374 unsigned int thisPtr;
379 struct Expression * exp1;
380 struct Expression * exp2;
382 struct TypeName * typeName;
383 struct Specifier * _class;
386 struct TypeName * typeName;
387 struct Expression * exp;
391 struct Expression * cond;
392 struct __ecereNameSpace__ecere__sys__OldList * exp;
393 struct Expression * elseExp;
397 struct TypeName * typeName;
398 struct Expression * size;
402 struct TypeName * typeName;
403 struct Expression * size;
404 struct Expression * exp;
409 struct Identifier * id;
413 struct Expression * ds;
414 struct Expression * name;
418 struct TypeName * typeName;
419 struct Initializer * initializer;
423 struct Expression * exp;
424 struct TypeName * typeName;
427 unsigned int debugValue;
428 struct __ecereNameSpace__ecere__com__DataValue val;
429 unsigned int address;
430 unsigned int hasAddress;
431 struct Type * expType;
432 struct Type * destType;
435 unsigned int byReference;
436 unsigned int isConstant;
437 unsigned int addedThis;
438 unsigned int needCast;
439 unsigned int thisPtr;
442 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
444 struct TemplateDatatype;
446 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
448 struct TemplateArgument;
450 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
452 struct TemplateParameter;
454 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
458 struct Specifier * prev;
459 struct Specifier * next;
468 struct Symbol * symbol;
469 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
473 struct Identifier * id;
474 struct __ecereNameSpace__ecere__sys__OldList * list;
475 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
476 struct __ecereNameSpace__ecere__sys__OldList * definitions;
477 unsigned int addNameSpace;
478 struct Context * ctx;
480 struct Expression * expression;
481 struct Specifier * _class;
482 struct TemplateParameter * templateParameter;
486 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
490 struct Identifier * prev;
491 struct Identifier * next;
493 struct Symbol * classSym;
494 struct Specifier * _class;
496 struct Identifier * badID;
499 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
503 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
507 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
509 struct FunctionDefinition
511 struct FunctionDefinition * prev;
512 struct FunctionDefinition * next;
514 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
515 struct Declarator * declarator;
516 struct __ecereNameSpace__ecere__sys__OldList * declarations;
517 struct Statement * body;
518 struct __ecereNameSpace__ecere__com__Class * _class;
519 struct __ecereNameSpace__ecere__sys__OldList attached;
522 struct Symbol * propSet;
524 unsigned int propertyNoThis;
527 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
532 struct Symbol * symbol;
533 struct __ecereNameSpace__ecere__sys__OldList * definitions;
537 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
541 struct External * prev;
542 struct External * next;
545 struct Symbol * symbol;
548 struct FunctionDefinition * function;
549 struct ClassDefinition * _class;
550 struct Declaration * declaration;
552 struct Identifier * id;
553 struct DBTableDef * table;
558 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
562 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
566 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
571 struct Symbol * parent;
572 struct Symbol * left;
573 struct Symbol * right;
578 struct __ecereNameSpace__ecere__com__Method * method;
579 struct __ecereNameSpace__ecere__com__Property * _property;
580 struct __ecereNameSpace__ecere__com__Class * registered;
588 struct External * pointerExternal;
589 struct External * structExternal;
593 struct External * externalGet;
594 struct External * externalSet;
595 struct External * externalPtr;
596 struct External * externalIsSet;
600 struct External * methodExternal;
601 struct External * methodCodeExternal;
604 unsigned int imported;
605 unsigned int declaredStructSym;
606 struct __ecereNameSpace__ecere__com__Class * _class;
607 unsigned int declaredStruct;
608 unsigned int needConstructor;
609 unsigned int needDestructor;
610 char * constructorName;
613 char * destructorName;
614 struct ModuleImport * module;
615 struct ClassImport * _import;
616 struct Location nameLoc;
617 unsigned int isParam;
618 unsigned int isRemote;
619 unsigned int isStruct;
620 unsigned int fireWatchersDone;
622 unsigned int classData;
623 unsigned int isStatic;
625 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
626 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
627 struct Context * ctx;
629 struct Expression * propCategory;
632 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
641 struct Symbol * _class;
644 struct __ecereNameSpace__ecere__sys__OldList members;
649 struct Type * returnType;
650 struct __ecereNameSpace__ecere__sys__OldList params;
651 struct Symbol * thisClass;
652 unsigned int staticMethod;
653 struct TemplateParameter * thisClassTemplate;
657 struct __ecereNameSpace__ecere__com__Method * method;
658 struct __ecereNameSpace__ecere__com__Class * methodClass;
659 struct __ecereNameSpace__ecere__com__Class * usedClass;
663 struct Type * arrayType;
665 struct Expression * arraySizeExp;
666 unsigned int freeExp;
667 struct Symbol * enumClass;
670 struct TemplateParameter * templateParameter;
672 unsigned int isSigned;
674 unsigned int constant;
681 unsigned int byReference;
682 unsigned int extraParam;
684 unsigned int directClassAccess;
685 unsigned int computing;
686 unsigned int dllExport;
688 unsigned int keepCast;
689 unsigned int passAsTemplate;
693 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
695 struct __ecereNameSpace__ecere__com__Class
697 struct __ecereNameSpace__ecere__com__Class * prev;
698 struct __ecereNameSpace__ecere__com__Class * next;
704 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
705 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
708 struct __ecereNameSpace__ecere__com__Class * base;
709 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
710 struct __ecereNameSpace__ecere__sys__BinaryTree members;
711 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
712 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
713 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
714 struct __ecereNameSpace__ecere__sys__OldList derivatives;
718 struct __ecereNameSpace__ecere__com__Instance * module;
719 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
720 char * dataTypeString;
721 struct Type * dataType;
723 int defaultAlignment;
724 void (* Initialize)();
726 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
727 char * designerClass;
728 unsigned int noExpansion;
729 char * defaultProperty;
730 unsigned int comRedefinition;
732 unsigned int isRemote;
733 unsigned int internalDecl;
735 unsigned int computeSize;
737 int destructionWatchOffset;
739 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
740 int inheritanceAccess;
743 struct __ecereNameSpace__ecere__sys__OldList conversions;
744 struct __ecereNameSpace__ecere__sys__OldList templateParams;
745 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
746 struct __ecereNameSpace__ecere__com__Class * templateClass;
747 struct __ecereNameSpace__ecere__sys__OldList templatized;
751 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
753 struct __ecereNameSpace__ecere__com__Instance
756 struct __ecereNameSpace__ecere__com__Class * _class;
760 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
762 struct __ecereNameSpace__ecere__com__DataMember
764 struct __ecereNameSpace__ecere__com__DataMember * prev;
765 struct __ecereNameSpace__ecere__com__DataMember * next;
767 unsigned int isProperty;
770 struct __ecereNameSpace__ecere__com__Class * _class;
771 char * dataTypeString;
772 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
773 struct Type * dataType;
777 struct __ecereNameSpace__ecere__sys__OldList members;
778 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
783 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
785 struct __ecereNameSpace__ecere__com__SerialBuffer
787 unsigned char * _buffer;
793 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
795 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
801 char * dataTypeString;
802 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
804 struct __ecereNameSpace__ecere__com__DataValue expression;
810 struct __ecereNameSpace__ecere__com__DataMember * member;
811 struct __ecereNameSpace__ecere__com__Property * prop;
812 struct __ecereNameSpace__ecere__com__Method * method;
820 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, EXT_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
823 typedef union YYSTYPE
828 struct Identifier * id;
829 struct Expression * exp;
830 struct Specifier * specifier;
831 struct __ecereNameSpace__ecere__sys__OldList * list;
832 struct Enumerator * enumerator;
833 struct Declarator * declarator;
834 struct Pointer * pointer;
835 struct Initializer * initializer;
836 struct InitDeclarator * initDeclarator;
837 struct TypeName * typeName;
838 struct Declaration * declaration;
839 struct Statement * stmt;
840 struct FunctionDefinition * function;
841 struct External * external;
842 struct Context * context;
843 struct AsmField * asmField;
844 struct Instantiation * instance;
845 struct MembersInit * membersInit;
846 struct MemberInit * memberInit;
847 struct ClassFunction * classFunction;
848 struct ClassDefinition * _class;
849 struct ClassDef * classDef;
850 struct PropertyDef * prop;
852 struct Symbol * symbol;
853 struct PropertyWatch * propertyWatch;
854 struct TemplateParameter * templateParameter;
855 struct TemplateArgument * templateArgument;
856 struct TemplateDatatype * templateDatatype;
857 struct DBTableEntry * dbtableEntry;
858 struct DBIndexItem * dbindexItem;
859 struct DBTableDef * dbtableDef;
862 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
866 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
868 struct InitDeclarator
870 struct InitDeclarator * prev;
871 struct InitDeclarator * next;
873 struct Declarator * declarator;
874 struct Initializer * initializer;
877 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
881 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
885 struct ClassFunction * prev;
886 struct ClassFunction * next;
888 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
889 struct Declarator * declarator;
890 struct __ecereNameSpace__ecere__sys__OldList * declarations;
891 struct Statement * body;
892 struct __ecereNameSpace__ecere__com__Class * _class;
893 struct __ecereNameSpace__ecere__sys__OldList attached;
896 struct Symbol * propSet;
897 unsigned int isVirtual;
898 unsigned int isConstructor;
899 unsigned int isDestructor;
900 unsigned int dontMangle;
905 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
909 struct MembersInit * prev;
910 struct MembersInit * next;
915 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
916 struct ClassFunction * function;
920 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
924 struct MemberInit * prev;
925 struct MemberInit * next;
927 struct Location realLoc;
928 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
929 struct Initializer * initializer;
931 unsigned int variable;
932 unsigned int takeOutExp;
935 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
939 struct PropertyDef * prev;
940 struct PropertyDef * next;
942 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
943 struct Declarator * declarator;
944 struct Identifier * id;
945 struct Statement * getStmt;
946 struct Statement * setStmt;
947 struct Statement * issetStmt;
948 struct Symbol * symbol;
949 unsigned int conversion;
950 unsigned int isWatchable;
951 struct Expression * category;
954 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
958 struct PropertyWatch * prev;
959 struct PropertyWatch * next;
961 struct Statement * compound;
962 struct __ecereNameSpace__ecere__sys__OldList * properties;
963 unsigned int deleteWatch;
966 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
970 struct ClassDef * prev;
971 struct ClassDef * next;
976 struct Declaration * decl;
977 struct ClassFunction * function;
978 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
979 struct PropertyDef * propertyDef;
980 struct PropertyWatch * propertyWatch;
982 struct Identifier * defaultProperty;
985 struct Identifier * id;
986 struct Initializer * initializer;
993 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
997 struct DBTableEntry * prev;
998 struct DBTableEntry * next;
1000 struct Identifier * id;
1005 struct TypeName * dataType;
1008 struct __ecereNameSpace__ecere__sys__OldList * items;
1012 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
1016 struct DBIndexItem * prev;
1017 struct DBIndexItem * next;
1018 struct Identifier * id;
1022 extern YYSTYPE yylval;
1024 extern struct Location yylloc;
1026 static struct __ecereNameSpace__ecere__sys__OldList * tableStatements, * indexStatements, * addFieldStatements;
1028 static int numIndexes;
1030 static struct External * addAfter;
1032 static void ProcessDeclaration(struct Declaration * decl);
1034 extern struct __ecereNameSpace__ecere__com__Class * thisClass;
1036 static void ProcessMemberInit(struct MemberInit * init);
1038 static void ProcessClassFunction(struct ClassFunction * func);
1040 static void ProcessProperty(struct PropertyDef * def);
1042 static void ProcessStatement(struct Statement * stmt);
1044 static void ProcessSpecifier(struct Specifier * spec)
1052 if(spec->definitions)
1054 struct ClassDef * def;
1056 for(def = (*spec->definitions).first; def; def = def->next)
1061 ProcessDeclaration(def->decl);
1065 struct MemberInit * init;
1067 for(init = (*def->defProperties).first; init; init = init->next)
1069 struct __ecereNameSpace__ecere__com__Class * oldThisClass = thisClass;
1071 ProcessMemberInit(init);
1076 ProcessClassFunction(def->function);
1079 if(def->propertyDef)
1081 ProcessProperty(def->propertyDef);
1085 if(def->propertyWatch && def->propertyWatch->compound)
1087 ProcessStatement(def->propertyWatch->compound);
1098 static void ProcessIdentifier(struct Identifier * id)
1102 static void ProcessInstance(struct Instantiation * inst);
1104 extern int strlen(const char * );
1106 extern void * memcpy(void * , const void * , unsigned int size);
1108 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
1110 extern int sprintf(char * , char * , ...);
1112 extern void FreeExpContents(struct Expression * exp);
1114 extern struct Identifier * MkIdentifier(char * string);
1116 extern struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements);
1118 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
1120 extern struct Context * curContext;
1122 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
1124 extern struct __ecereNameSpace__ecere__sys__OldList * MkListOne(void * item);
1126 extern struct Specifier * MkSpecifierName(char * name);
1128 extern struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer);
1130 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1132 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
1134 extern struct Expression * MkExpIdentifier(struct Identifier * id);
1136 extern struct Specifier * MkSpecifier(int specifier);
1138 extern struct Statement * MkIfStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement, struct Statement * elseStmt);
1140 extern struct Statement * MkReturnStmt(struct __ecereNameSpace__ecere__sys__OldList * exp);
1142 extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions);
1144 extern struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2);
1146 extern struct Expression * CopyExpression(struct Expression * exp);
1148 extern struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments);
1150 extern struct Expression * MkExpMember(struct Expression * expression, struct Identifier * member);
1152 extern struct Declarator * MkDeclaratorArray(struct Declarator * declarator, struct Expression * exp);
1154 extern struct Expression * MkExpConstant(char * string);
1156 extern struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sys__OldList * list);
1158 extern void Compiler_Error(char * format, ...);
1160 extern char * __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char * string, char * stringAndContext);
1162 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
1164 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
1166 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1168 static void ProcessExpression(struct Expression * exp)
1170 void * __ecereTemp1;
1175 ProcessExpression(exp->_new.size);
1178 ProcessExpression(exp->_renew.exp);
1179 ProcessExpression(exp->_renew.size);
1184 ProcessIdentifier(exp->identifier);
1187 ProcessInstance(exp->instance);
1194 ProcessExpression(exp->op.exp1);
1198 ProcessExpression(exp->op.exp2);
1203 struct Expression * expression;
1205 for(expression = (*exp->list).first; expression; expression = expression->next)
1207 ProcessExpression(expression);
1213 struct Expression * expression;
1215 ProcessExpression(exp->index.exp);
1216 for(expression = (*exp->index.index).first; expression; expression = expression->next)
1218 ProcessExpression(expression);
1224 ProcessExpression(exp->call.exp);
1225 if(exp->call.arguments)
1227 struct Expression * expression;
1229 for(expression = (*exp->call.arguments).first; expression; expression = expression->next)
1231 ProcessExpression(expression);
1237 ProcessExpression(exp->member.exp);
1240 ProcessExpression(exp->member.exp);
1245 ProcessExpression(exp->cast.exp);
1248 ProcessExpression(exp->cond.cond);
1250 struct Expression * expression;
1252 for(expression = (*exp->cond.exp).first; expression; expression = expression->next)
1254 ProcessExpression(expression);
1257 ProcessExpression(exp->cond.elseExp);
1263 char tableName[1024];
1265 int len = strlen(exp->db.table);
1267 memcpy(tableName, exp->db.table + 1, len - 2);
1268 tableName[len - 2] = (char)0;
1269 __ecereNameSpace__ecere__sys__ChangeCh(tableName, ' ', '_');
1270 sprintf(name, "__ecereDBField_%s_%s", tableName, exp->db.id->string);
1271 FreeExpContents(exp);
1273 exp->identifier = MkIdentifier(name);
1278 char tableName[1024];
1280 int len = strlen(exp->db.table);
1282 memcpy(tableName, exp->db.table + 1, len - 2);
1283 tableName[len - 2] = (char)0;
1284 __ecereNameSpace__ecere__sys__ChangeCh(tableName, ' ', '_');
1285 sprintf(name, "__ecereDBTable_%s", tableName);
1286 FreeExpContents(exp);
1288 exp->identifier = MkIdentifier(name);
1293 char tableName[1024];
1295 int len = strlen(exp->db.table);
1297 memcpy(tableName, exp->db.table + 1, len - 2);
1298 tableName[len - 2] = (char)0;
1299 __ecereNameSpace__ecere__sys__ChangeCh(tableName, ' ', '_');
1300 sprintf(name, "__ecereDBIndex_%s_%s", tableName, exp->db.id->string);
1301 FreeExpContents(exp);
1303 exp->identifier = MkIdentifier(name);
1310 struct Statement * databaseOpenStmt = MkCompoundStmt(MkList(), MkList());
1311 struct Statement * compound, * compound2;
1312 struct Statement * ifDBStmt;
1313 struct __ecereNameSpace__ecere__sys__OldList * args;
1314 char numIndexesString[16];
1316 databaseOpenStmt->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = curContext, ((struct Context *)__ecereTemp1));
1317 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->compound.declarations), MkDeclaration(MkListOne(MkSpecifierName("Database")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("db")), (((void *)0))))));
1318 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->compound.declarations), MkDeclaration(MkListOne(MkSpecifierName("bool")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("createNow")), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("false")))))));
1320 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkSpecifier(STATIC));
1321 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkSpecifierName("bool"));
1322 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->compound.declarations), MkDeclaration(args, MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("initialized")), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("false")))))));
1323 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->compound.statements), MkIfStmt(MkListOne(MkExpIdentifier(MkIdentifier("initialized"))), MkReturnStmt(MkListOne(MkExpIdentifier(MkIdentifier("null")))), (((void *)0))));
1324 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("initialized")), '=', MkExpIdentifier(MkIdentifier("true"))))));
1326 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), CopyExpression(exp->dbopen.name));
1327 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("no")));
1328 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("db")), '=', MkExpCall(MkExpMember(CopyExpression(exp->dbopen.ds), MkIdentifier("OpenDatabase")), args)))));
1329 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->compound.statements), MkIfStmt(MkListOne(MkExpOp((((void *)0)), '!', MkExpIdentifier(MkIdentifier("db")))), compound = MkCompoundStmt((((void *)0)), MkList()), (((void *)0))));
1330 compound->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = databaseOpenStmt->compound.context, ((struct Context *)__ecereTemp1));
1332 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), exp->dbopen.name);
1333 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("create")));
1334 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*compound->compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("db")), '=', MkExpCall(MkExpMember(exp->dbopen.ds, MkIdentifier("OpenDatabase")), args)))));
1335 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*compound->compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("createNow")), '=', MkExpIdentifier(MkIdentifier("true"))))));
1336 exp->dbopen.name = (((void *)0));
1337 exp->dbopen.ds = (((void *)0));
1338 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->compound.statements), MkIfStmt(MkListOne(MkExpIdentifier(MkIdentifier("db"))), ifDBStmt = MkCompoundStmt(MkList(), MkList()), (((void *)0))));
1339 ifDBStmt->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = databaseOpenStmt->compound.context, ((struct Context *)__ecereTemp1));
1340 sprintf(numIndexesString, "%d", numIndexes);
1341 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->compound.declarations), MkDeclaration(MkListOne(MkSpecifierName("FieldIndex")), MkListOne(MkInitDeclarator(MkDeclaratorArray(MkDeclaratorIdentifier(MkIdentifier("indexes")), MkExpConstant(numIndexesString)), MkInitializerList(MkListOne(MkInitializerList(MkListOne(MkInitializerAssignment(MkExpIdentifier(MkIdentifier("null")))))))))));
1342 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->compound.statements), compound = MkCompoundStmt((((void *)0)), tableStatements));
1343 compound->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = ifDBStmt->compound.context, ((struct Context *)__ecereTemp1));
1344 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->compound.statements), (compound = MkCompoundStmt((((void *)0)), addFieldStatements), compound->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = ifDBStmt->compound.context, ((struct Context *)__ecereTemp1)), compound));
1345 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->compound.statements), compound = MkCompoundStmt((((void *)0)), indexStatements));
1346 compound->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = ifDBStmt->compound.context, ((struct Context *)__ecereTemp1));
1348 exp->compound = databaseOpenStmt;
1349 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->compound.statements), MkExpressionStmt(MkListOne(MkExpIdentifier(MkIdentifier("db")))));
1350 tableStatements = (((void *)0));
1354 FreeExpContents(exp);
1355 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "No database table defined in this module or database_open already used.\n", (((void *)0))));
1363 static void ProcessStatement(struct Statement * stmt)
1368 ProcessStatement(stmt->labeled.stmt);
1371 if(stmt->caseStmt.exp)
1373 ProcessExpression(stmt->caseStmt.exp);
1375 if(stmt->caseStmt.stmt)
1377 ProcessStatement(stmt->caseStmt.stmt);
1382 ProcessDeclaration(stmt->decl);
1387 struct Context * oldContext = curContext;
1389 curContext = stmt->compound.context;
1390 if(stmt->compound.declarations)
1392 struct Declaration * decl;
1394 for(decl = (*stmt->compound.declarations).first; decl; decl = decl->next)
1396 ProcessDeclaration(decl);
1399 if(stmt->compound.statements)
1401 struct Statement * statement;
1403 for(statement = (*stmt->compound.statements).first; statement; statement = statement->next)
1405 ProcessStatement(statement);
1408 curContext = oldContext;
1413 if(stmt->expressions)
1415 struct Expression * exp;
1417 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
1419 ProcessExpression(exp);
1426 struct Expression * exp;
1428 for(exp = (*stmt->ifStmt.exp).first; exp; exp = exp->next)
1430 ProcessExpression(exp);
1432 if(stmt->ifStmt.stmt)
1434 ProcessStatement(stmt->ifStmt.stmt);
1436 if(stmt->ifStmt.elseStmt)
1438 ProcessStatement(stmt->ifStmt.elseStmt);
1444 struct Expression * exp;
1446 for(exp = (*stmt->switchStmt.exp).first; exp; exp = exp->next)
1448 ProcessExpression(exp);
1450 ProcessStatement(stmt->switchStmt.stmt);
1455 struct Expression * exp;
1457 if(stmt->whileStmt.exp)
1459 for(exp = (*stmt->whileStmt.exp).first; exp; exp = exp->next)
1461 ProcessExpression(exp);
1464 if(stmt->whileStmt.stmt)
1465 ProcessStatement(stmt->whileStmt.stmt);
1470 ProcessStatement(stmt->doWhile.stmt);
1471 if(stmt->doWhile.exp)
1473 struct Expression * exp;
1475 for(exp = (*stmt->doWhile.exp).first; exp; exp = exp->next)
1477 ProcessExpression(exp);
1484 struct Expression * exp;
1486 if(stmt->forStmt.init)
1488 ProcessStatement(stmt->forStmt.init);
1490 if(stmt->forStmt.check)
1492 ProcessStatement(stmt->forStmt.check);
1494 if(stmt->forStmt.increment)
1496 for(exp = (*stmt->forStmt.increment).first; exp; exp = exp->next)
1498 ProcessExpression(exp);
1501 if(stmt->forStmt.stmt)
1502 ProcessStatement(stmt->forStmt.stmt);
1512 if(stmt->expressions)
1514 struct Expression * exp;
1516 for(exp = (*stmt->expressions).first; exp; exp = exp->next)
1518 ProcessExpression(exp);
1525 struct Identifier * _watch;
1527 if(stmt->_watch.watcher)
1529 ProcessExpression(stmt->_watch.watcher);
1531 if(stmt->_watch.object)
1533 ProcessExpression(stmt->_watch.object);
1535 if(stmt->_watch.watches)
1537 for(_watch = (*stmt->_watch.watches).first; _watch; _watch = _watch->next)
1539 ProcessIdentifier(_watch);
1546 struct PropertyWatch * _watch;
1548 if(stmt->_watch.watcher)
1550 ProcessExpression(stmt->_watch.watcher);
1552 if(stmt->_watch.object)
1554 ProcessExpression(stmt->_watch.object);
1556 if(stmt->_watch.watches)
1558 for(_watch = (*stmt->_watch.watches).first; _watch; _watch = _watch->next)
1560 if(_watch->compound)
1562 ProcessStatement(_watch->compound);
1571 static void ProcessInitializer(struct Initializer * initializer)
1573 switch(initializer->type)
1577 struct Initializer * init;
1579 for(init = (*initializer->list).first; init; init = init->next)
1581 ProcessInitializer(init);
1586 ProcessExpression(initializer->exp);
1591 static void ProcessInitDeclarator(struct InitDeclarator * decl)
1593 if(decl->initializer)
1594 ProcessInitializer(decl->initializer);
1597 static void ProcessDeclaration(struct Declaration * decl)
1603 struct Specifier * spec;
1605 if(decl->specifiers)
1607 for(spec = (*decl->specifiers).first; spec; spec = spec->next)
1609 ProcessSpecifier(spec);
1616 if(decl->specifiers)
1618 struct Specifier * s;
1620 for(s = (*decl->specifiers).first; s; s = s->next)
1622 ProcessSpecifier(s);
1625 if(decl->declarators && (*decl->declarators).first)
1627 struct InitDeclarator * d;
1629 for(d = (*decl->declarators).first; d; d = d->next)
1631 ProcessInitDeclarator(d);
1637 ProcessInstance(decl->inst);
1642 static void ProcessFunction(struct FunctionDefinition * func)
1646 ProcessStatement(func->body);
1650 static void ProcessMemberInit(struct MemberInit * init)
1652 if(init->initializer)
1654 ProcessInitializer(init->initializer);
1658 static void ProcessInstance(struct Instantiation * inst)
1662 struct MembersInit * init;
1663 struct MemberInit * memberInit;
1665 for(init = (*inst->members).first; init; init = init->next)
1667 if(init->type == 0 && init->dataMembers)
1669 for(memberInit = (*init->dataMembers).first; memberInit; memberInit = memberInit->next)
1671 ProcessMemberInit(memberInit);
1676 ProcessClassFunction(init->function);
1682 static void ProcessClassFunction(struct ClassFunction * func)
1686 ProcessStatement(func->body);
1690 static void ProcessProperty(struct PropertyDef * def)
1694 ProcessStatement(def->getStmt);
1698 ProcessStatement(def->setStmt);
1702 static void ProcessClassDef(struct ClassDef * def)
1707 ProcessDeclaration(def->decl);
1711 struct MemberInit * init;
1713 for(init = (*def->defProperties).first; init; init = init->next)
1715 ProcessMemberInit(init);
1720 ProcessClassFunction(def->function);
1723 if(def->propertyDef)
1725 ProcessProperty(def->propertyDef);
1729 if(def->propertyWatch && def->propertyWatch->compound)
1731 ProcessStatement(def->propertyWatch->compound);
1737 static void ProcessClass(struct ClassDefinition * _class)
1739 if(_class->definitions)
1741 struct ClassDef * def;
1743 for(def = (*_class->definitions).first; def; def = def->next)
1745 ProcessClassDef(def);
1750 extern struct External * MkExternalDeclaration(struct Declaration * declaration);
1752 extern struct __ecereNameSpace__ecere__sys__OldList * ast;
1754 extern struct Expression * MkExpString(char * string);
1756 extern struct Expression * MkExpInstance(struct Instantiation * inst);
1758 extern struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
1760 extern struct MembersInit * MkMembersInitList(struct __ecereNameSpace__ecere__sys__OldList * dataMembers);
1762 extern struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer);
1764 extern struct Context * PushContext(void);
1766 extern struct ClassDefinition * MkClass(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs, struct __ecereNameSpace__ecere__sys__OldList * definitions);
1768 extern struct Symbol * DeclClass(int symbolID, char * name);
1770 extern struct Context * globalContext;
1772 extern void PopContext(struct Context * ctx);
1774 extern struct ClassDef * MkClassDefDefaultProperty(struct __ecereNameSpace__ecere__sys__OldList * defProperties);
1776 extern struct MemberInit * MkMemberInitExp(struct Expression * idExp, struct Initializer * initializer);
1778 extern struct External * MkExternalClass(struct ClassDefinition * _class);
1780 extern int strcmp(const char * , const char * );
1782 extern char * strcpy(char * , const char * );
1784 extern struct ClassDef * MkClassDefProperty(struct PropertyDef * propertyDef);
1786 extern struct PropertyDef * MkProperty(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl, struct Identifier * id, struct Statement * setStmt, struct Statement * getStmt);
1788 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* )(void * ));
1790 extern struct Specifier * CopySpecifier(struct Specifier * spec);
1792 extern struct Declarator * CopyDeclarator(struct Declarator * declarator);
1794 extern struct Declaration * MkDeclarationInst(struct Instantiation * inst);
1796 extern struct Identifier * CopyIdentifier(struct Identifier * id);
1798 extern struct Expression * MkExpClass(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * decl);
1800 extern struct Expression * MkExpIndex(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * index);
1802 extern struct ClassDef * MkClassDefClassPropertyValue(struct Identifier * id, struct Initializer * initializer);
1804 extern struct Expression * MkExpDBTable(char * table);
1806 extern char * __ecereNameSpace__ecere__sys__CopyString(char * string);
1808 extern struct Expression * MkExpDBField(char * table, struct Identifier * id);
1810 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item);
1812 static void ProcessDBTable(struct DBTableDef * table)
1814 void * __ecereTemp1;
1815 struct __ecereNameSpace__ecere__sys__OldList * rowClassDefs = MkList(), * idClassDefs = (((void *)0));
1816 char tableName[1024];
1817 char rowClassName[1024];
1818 int len = strlen(table->name);
1819 unsigned int indexed = 0x0;
1821 char nameField[1024];
1822 struct __ecereNameSpace__ecere__sys__OldList * args;
1823 struct __ecereNameSpace__ecere__sys__OldList * members;
1827 idClassDefs = MkList();
1828 nameField[0] = (char)0;
1829 memcpy(tableName, table->name + 1, len - 2);
1830 tableName[len - 2] = (char)0;
1831 __ecereNameSpace__ecere__sys__ChangeCh(tableName, ' ', '_');
1832 sprintf(tableID, "__ecereDBTable_%s", tableName);
1833 sprintf(rowClassName, "Row%s", tableName);
1834 __ecereNameSpace__ecere__sys__ChangeCh(rowClassName, ' ', '_');
1835 if(!tableStatements)
1837 tableStatements = MkList();
1838 indexStatements = MkList();
1839 addFieldStatements = MkList();
1842 struct External * external;
1844 external = MkExternalDeclaration(MkDeclaration(MkListOne(MkSpecifierName("Table")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(tableID)), (((void *)0))))));
1845 external->declaration->declMode = table->declMode;
1846 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*ast), addAfter, external);
1848 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*tableStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(tableID)), '=', MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("db")), MkIdentifier("OpenTable")), args)))));
1849 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpString(table->name));
1851 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpInstance(MkInstantiation((((void *)0)), (((void *)0)), MkListOne(MkMembersInitList(members)))));
1852 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*members), MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("tableRows")))));
1853 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*members), MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("create")))));
1856 struct ClassDefinition * _class;
1857 struct ClassDef * def;
1858 struct External * external;
1859 struct __ecereNameSpace__ecere__sys__OldList * inheritanceSpecs = MkList();
1861 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*inheritanceSpecs), MkSpecifier(PRIVATE));
1862 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*inheritanceSpecs), MkSpecifierName("Row"));
1864 _class = MkClass(DeclClass(globalContext->nextID++, rowClassName), inheritanceSpecs, rowClassDefs);
1865 PopContext(curContext);
1866 def = MkClassDefDefaultProperty(MkListOne(MkMemberInitExp(MkExpIdentifier(MkIdentifier("tbl")), MkInitializerAssignment(MkExpIdentifier(MkIdentifier(tableID))))));
1867 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowClassDefs), def);
1868 _class->symbol->idCode = symbolID;
1869 _class->declMode = table->declMode;
1870 external = MkExternalClass(_class);
1871 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*ast), addAfter, external);
1872 addAfter = external;
1874 if(table->definitions)
1876 struct DBTableEntry * entry;
1878 for(entry = (*table->definitions).first; entry; entry = entry->next)
1884 unsigned int isIndex = 0x0;
1886 struct __ecereNameSpace__ecere__sys__OldList * args;
1887 struct Specifier * spec = entry->dataType->qualifiers ? (struct Specifier *)(*entry->dataType->qualifiers).first : (((void *)0));
1889 sprintf(fieldID, "__ecereDBField_%s_%s", tableName, entry->id->string);
1892 if(!nameField[0] && spec->type == 1 && (!strcmp(spec->name, "String") || !strcmp(spec->name, "eda::CIString")))
1894 strcpy(nameField, entry->id->string);
1896 if(!indexed && spec->type == 1 && !strcmp(spec->name, table->symbol->string))
1898 struct Statement * rowSet = MkCompoundStmt(MkList(), MkList());
1900 struct ClassDef * def;
1902 numIndexes = ((numIndexes > 1) ? numIndexes : 1);
1905 sprintf(name, "_%s", entry->id->string);
1906 curContext = rowSet->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = globalContext, ((struct Context *)__ecereTemp1));
1907 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowSet->compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("Find")), args = MkList()))));
1908 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
1909 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("middle")));
1910 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("nil")));
1911 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("value")));
1912 curContext = globalContext;
1913 def = MkClassDefProperty(MkProperty(CopyList(entry->dataType->qualifiers, CopySpecifier), CopyDeclarator(entry->dataType->declarator), MkIdentifier(name), rowSet, (((void *)0))));
1914 def->propertyDef->symbol->id = def->propertyDef->symbol->idCode = symbolID;
1915 def->memberAccess = 1;
1916 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowClassDefs), def);
1921 struct Statement * rowSet = MkCompoundStmt(MkList(), MkList()), * rowGet = MkCompoundStmt(MkList(), MkList());
1922 struct ClassDef * def;
1924 curContext = rowGet->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = globalContext, ((struct Context *)__ecereTemp1));
1925 if(spec->type == 1 && spec->symbol && spec->symbol->registered && spec->symbol->registered->type == 1)
1927 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->compound.declarations), MkDeclarationInst(MkInstantiation(MkSpecifierName(spec->name), MkExpIdentifier(MkIdentifier("d")), (((void *)0)))));
1931 struct Expression * exp;
1933 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->compound.declarations), MkDeclaration(CopyList(entry->dataType->qualifiers, CopySpecifier), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("d")), MkInitializerAssignment(exp = MkExpConstant("0"))))));
1934 exp->destType = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type), ((struct Type *)__ecereTemp1)->kind = 3, ((struct Type *)__ecereTemp1)->refCount = 1, ((struct Type *)__ecereTemp1));
1936 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("GetData")), args = MkList()))));
1937 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
1938 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("d")));
1939 if(spec->type == 1 && spec->symbol && spec->symbol->registered && spec->symbol->registered->type == 1)
1941 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("value")), '=', MkExpIdentifier(MkIdentifier("d"))))));
1944 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->compound.statements), MkReturnStmt(MkListOne(MkExpIdentifier(MkIdentifier("d")))));
1945 curContext = rowSet->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = globalContext, ((struct Context *)__ecereTemp1));
1946 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowSet->compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("SetData")), args = MkList()))));
1947 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
1948 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("value")));
1949 curContext = globalContext;
1950 def = MkClassDefProperty(MkProperty(CopyList(entry->dataType->qualifiers, CopySpecifier), entry->dataType->declarator, CopyIdentifier(entry->id), rowSet, rowGet));
1951 def->propertyDef->symbol->id = def->propertyDef->symbol->idCode = symbolID;
1952 def->memberAccess = 1;
1953 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowClassDefs), def);
1956 struct External * external;
1958 external = MkExternalDeclaration(MkDeclaration(MkListOne(MkSpecifierName("Field")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(fieldID)), (((void *)0))))));
1959 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ast), external);
1960 external->declaration->declMode = table->declMode;
1962 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*addFieldStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(fieldID)), '=', MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier(tableID)), MkIdentifier("FindField")), args)))));
1963 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpString(entry->name));
1965 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*addFieldStatements), MkIfStmt(MkListOne(MkExpOp((((void *)0)), '!', MkExpIdentifier(MkIdentifier(fieldID)))), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(fieldID)), '=', MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier(tableID)), MkIdentifier("AddField")), args)))), (((void *)0))));
1966 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpString(entry->name));
1967 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpClass(CopyList(entry->dataType->qualifiers, CopySpecifier), CopyDeclarator(entry->dataType->declarator)));
1968 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpConstant("0"));
1972 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIndex(MkExpIdentifier(MkIdentifier("indexes")), MkListOne(MkExpConstant("0"))), MkIdentifier("field")), '=', MkExpIdentifier(MkIdentifier(fieldID))))));
1973 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIndex(MkExpIdentifier(MkIdentifier("indexes")), MkListOne(MkExpConstant("0"))), MkIdentifier("order")), '=', MkExpIdentifier(MkIdentifier("ascending"))))));
1975 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier(tableID)), MkIdentifier("Index")), args))));
1976 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpConstant("1"));
1977 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("indexes")));
1986 struct ClassDefinition * _class;
1987 struct External * external;
1988 struct ClassDef * def;
1989 struct Expression * exp;
1992 _class = MkClass(table->symbol, MkListOne(MkSpecifierName("Id")), idClassDefs);
1993 PopContext(curContext);
1994 _class->declMode = table->declMode;
1995 external = MkExternalClass(_class);
1996 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*ast), addAfter, external);
1997 addAfter = external;
1998 def = MkClassDefClassPropertyValue(MkIdentifier("table"), MkInitializerAssignment(exp = MkExpOp((((void *)0)), '&', MkExpDBTable(__ecereNameSpace__ecere__sys__CopyString(table->name)))));
1999 ProcessExpression(exp);
2000 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idClassDefs), def);
2003 def = MkClassDefClassPropertyValue(MkIdentifier("nameField"), MkInitializerAssignment(exp = MkExpOp((((void *)0)), '&', MkExpDBField(__ecereNameSpace__ecere__sys__CopyString(table->name), MkIdentifier(nameField)))));
2004 ProcessExpression(exp);
2005 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idClassDefs), def);
2008 if(table->definitions)
2010 struct DBTableEntry * entry;
2012 for(entry = (*table->definitions).first; entry; entry = entry->next)
2019 struct __ecereNameSpace__ecere__sys__OldList * args;
2020 struct Specifier * spec = entry->dataType->qualifiers ? (struct Specifier *)(*entry->dataType->qualifiers).first : (((void *)0));
2022 sprintf(fieldID, "__ecereDBField_%s_%s", tableName, entry->id->string);
2023 if(idClassDefs && spec)
2025 struct Statement * idSet = MkCompoundStmt(MkList(), MkList()), * idGet = MkCompoundStmt(MkList(), MkList());
2026 struct ClassDef * def;
2028 curContext = idGet->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = globalContext, ((struct Context *)__ecereTemp1));
2029 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->compound.declarations), MkDeclarationInst(MkInstantiation(MkSpecifierName(rowClassName), MkExpIdentifier(MkIdentifier("r")), MkListOne(MkMembersInitList(MkListOne(MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("this"))))))))));
2030 if(spec->type == 1 && spec->symbol && spec->symbol->registered && spec->symbol->registered->type == 1)
2032 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->compound.declarations), MkDeclarationInst(MkInstantiation(MkSpecifierName(spec->name), MkExpIdentifier(MkIdentifier("d")), (((void *)0)))));
2036 struct Expression * exp;
2038 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->compound.declarations), MkDeclaration(CopyList(entry->dataType->qualifiers, CopySpecifier), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("d")), MkInitializerAssignment(exp = MkExpConstant("0"))))));
2039 exp->destType = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type), ((struct Type *)__ecereTemp1)->kind = 3, ((struct Type *)__ecereTemp1)->refCount = 1, ((struct Type *)__ecereTemp1));
2041 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("r")), MkIdentifier("GetData")), args = MkList()))));
2042 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
2043 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("d")));
2044 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->compound.statements), MkExpressionStmt(MkListOne(MkExpOp((((void *)0)), DELETE, MkExpIdentifier(MkIdentifier("r"))))));
2045 if(spec->type == 1 && spec->symbol && spec->symbol->registered && spec->symbol->registered->type == 1)
2047 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("value")), '=', MkExpIdentifier(MkIdentifier("d"))))));
2050 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->compound.statements), MkReturnStmt(MkListOne(MkExpIdentifier(MkIdentifier("d")))));
2051 curContext = idSet->compound.context = (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context), ((struct Context *)__ecereTemp1)->parent = globalContext, ((struct Context *)__ecereTemp1));
2052 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idSet->compound.declarations), MkDeclarationInst(MkInstantiation(MkSpecifierName(rowClassName), MkExpIdentifier(MkIdentifier("r")), MkListOne(MkMembersInitList(MkListOne(MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("this"))))))))));
2053 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idSet->compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("r")), MkIdentifier("SetData")), args = MkList()))));
2054 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
2055 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("value")));
2056 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idSet->compound.statements), MkExpressionStmt(MkListOne(MkExpOp((((void *)0)), DELETE, MkExpIdentifier(MkIdentifier("r"))))));
2057 curContext = globalContext;
2058 def = MkClassDefProperty(MkProperty(CopyList(entry->dataType->qualifiers, CopySpecifier), CopyDeclarator(entry->dataType->declarator), CopyIdentifier(entry->id), idSet, idGet));
2059 def->propertyDef->symbol->id = def->propertyDef->symbol->idCode = symbolID;
2060 def->memberAccess = 1;
2061 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idClassDefs), def);
2067 if(entry->items && (*entry->items).count)
2070 struct DBIndexItem * item;
2072 unsigned int needTable = 0x0;
2075 if(entry->id || indexed)
2077 if(entry->id || (*entry->items).count == 1)
2079 struct External * external;
2080 struct Identifier * id = entry->id ? entry->id : ((struct DBIndexItem *)(*entry->items).first)->id;
2082 sprintf(indexID, "__ecereDBIndex_%s_%s", tableName, id->string);
2083 external = MkExternalDeclaration(MkDeclaration(MkListOne(MkSpecifierName("Table")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(indexID)), (((void *)0))))));
2084 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ast), external);
2085 external->declaration->declMode = table->declMode;
2089 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Multiple field index requires a name\n", (((void *)0))));
2094 strcpy(indexID, tableID);
2096 for(c = 0, item = (*entry->items).first; item; item = item->next, c++)
2100 sprintf(num, "%d", c);
2101 sprintf(fieldID, "__ecereDBField_%s_%s", tableName, item->id->string);
2102 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIndex(MkExpIdentifier(MkIdentifier("indexes")), MkListOne(MkExpConstant(num))), MkIdentifier("field")), '=', MkExpIdentifier(MkIdentifier(fieldID))))));
2103 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIndex(MkExpIdentifier(MkIdentifier("indexes")), MkListOne(MkExpConstant(num))), MkIdentifier("order")), '=', MkExpIdentifier(MkIdentifier((item->order == 0) ? "ascending" : "descending"))))));
2105 sprintf(num, "%d", c);
2106 numIndexes = ((numIndexes > c) ? numIndexes : c);
2110 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(indexID)), '=', MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("db")), MkIdentifier("OpenTable")), args)))));
2111 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpString(table->name));
2113 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpInstance(MkInstantiation((((void *)0)), (((void *)0)), MkListOne(MkMembersInitList(members)))));
2114 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*members), MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("tableRows")))));
2117 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier(indexID)), MkIdentifier("Index")), args))));
2118 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpConstant(num));
2119 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("indexes")));
2128 extern unsigned int inCompiler;
2130 extern void PrePreProcessClassDefinitions(void);
2132 extern struct External * curExternal;
2134 void ProcessDBTableDefinitions()
2136 struct External * external;
2138 addAfter = (((void *)0));
2139 curContext = globalContext;
2141 PrePreProcessClassDefinitions();
2142 DeclClass(0, "Field");
2143 DeclClass(0, "Table");
2144 DeclClass(0, "Row");
2147 if(ast != (((void *)0)))
2149 for(external = (*ast).first; external; external = external->next)
2151 curExternal = external;
2152 switch(external->type)
2155 ProcessDBTable(external->table);
2159 for(external = (*ast).first; external; external = external->next)
2161 curExternal = external;
2162 switch(external->type)
2165 ProcessFunction(external->function);
2168 ProcessDeclaration(external->declaration);
2171 ProcessClass(external->_class);
2176 curContext = globalContext;
2179 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
2181 struct __ecereNameSpace__ecere__com__GlobalFunction;
2183 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);
2185 void __ecereRegisterModule_dbpass(struct __ecereNameSpace__ecere__com__Instance * module)
2187 struct __ecereNameSpace__ecere__com__Class * class;
2189 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessDBTableDefinitions", "void ProcessDBTableDefinitions(void)", ProcessDBTableDefinitions, module, 1);
2192 void __ecereUnregisterModule_dbpass(struct __ecereNameSpace__ecere__com__Instance * module)