1 /* Code generated from eC source file: dbpass.ec */
3 typedef long long int64;
4 typedef unsigned long long uint64;
8 #elif defined(__TINYC__)
10 #define __builtin_va_list va_list
11 #define __builtin_va_start va_start
12 #define __builtin_va_end va_end
14 #define strcasecmp stricmp
15 #define strncasecmp strnicmp
16 #define __declspec(x) __attribute__((x))
20 typedef long long int64;
21 typedef unsigned long long uint64;
23 typedef __int64 int64;
24 typedef unsigned __int64 uint64;
27 #define __ENDIAN_PAD(x) (8 - (x))
29 #define __ENDIAN_PAD(x) 0
32 #include <sys/types.h>
33 struct __ecereNameSpace__ecere__com__Instance;
35 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
37 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
39 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
41 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
43 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
45 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
47 struct __ecereNameSpace__ecere__sys__BTNode;
49 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
51 struct __ecereNameSpace__ecere__sys__BinaryTree
53 struct __ecereNameSpace__ecere__sys__BTNode * root;
55 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
56 void (* FreeKey)(void * key);
57 } __attribute__ ((gcc_struct));
59 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
61 struct __ecereNameSpace__ecere__sys__OldList
68 } __attribute__ ((gcc_struct));
70 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
72 struct __ecereNameSpace__ecere__com__Method
75 struct __ecereNameSpace__ecere__com__Method * parent;
76 struct __ecereNameSpace__ecere__com__Method * left;
77 struct __ecereNameSpace__ecere__com__Method * right;
82 struct __ecereNameSpace__ecere__com__Class * _class;
84 const char * dataTypeString;
85 struct Type * dataType;
87 } __attribute__ ((gcc_struct));
89 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
91 struct __ecereNameSpace__ecere__com__Property
93 struct __ecereNameSpace__ecere__com__Property * prev;
94 struct __ecereNameSpace__ecere__com__Property * next;
96 unsigned int isProperty;
99 struct __ecereNameSpace__ecere__com__Class * _class;
100 const char * dataTypeString;
101 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
102 struct Type * dataType;
103 void (* Set)(void * , int);
104 int (* Get)(void * );
105 unsigned int (* IsSet)(void * );
109 unsigned int conversion;
110 unsigned int watcherOffset;
111 const char * category;
112 unsigned int compiled;
113 unsigned int selfWatchable;
114 unsigned int isWatchable;
115 } __attribute__ ((gcc_struct));
117 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
125 } __attribute__ ((gcc_struct));
127 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
131 struct CodePosition start;
132 struct CodePosition end;
133 } __attribute__ ((gcc_struct));
135 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
139 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
143 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
145 struct ClassDefinition
147 struct ClassDefinition * prev;
148 struct ClassDefinition * next;
150 struct Specifier * _class;
151 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
152 struct __ecereNameSpace__ecere__sys__OldList * definitions;
153 struct Symbol * symbol;
154 struct Location blockStart;
155 struct Location nameLoc;
158 unsigned int deleteWatchable;
159 } __attribute__ ((gcc_struct));
161 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
165 struct Context * parent;
166 struct __ecereNameSpace__ecere__sys__BinaryTree types;
167 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
168 struct __ecereNameSpace__ecere__sys__BinaryTree symbols;
169 struct __ecereNameSpace__ecere__sys__BinaryTree structSymbols;
172 struct __ecereNameSpace__ecere__sys__BinaryTree templateTypes;
173 struct ClassDefinition * classDef;
174 unsigned int templateTypesOnly;
175 unsigned int hasNameSpace;
176 } __attribute__ ((gcc_struct));
178 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
182 struct Instantiation * prev;
183 struct Instantiation * next;
185 struct Specifier * _class;
186 struct Expression * exp;
187 struct __ecereNameSpace__ecere__sys__OldList * members;
188 struct Symbol * symbol;
189 unsigned int fullSet;
190 unsigned int isConstant;
191 unsigned char * data;
192 struct Location nameLoc;
193 struct Location insideLoc;
195 } __attribute__ ((gcc_struct));
197 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
201 struct Declaration * prev;
202 struct Declaration * next;
209 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
210 struct __ecereNameSpace__ecere__sys__OldList * declarators;
211 } __attribute__ ((gcc_struct)) __anon1;
212 struct Instantiation * inst;
215 struct Identifier * id;
216 struct Expression * exp;
217 } __attribute__ ((gcc_struct)) __anon2;
218 } __attribute__ ((gcc_struct)) __anon1;
219 struct Specifier * extStorage;
220 struct Symbol * symbol;
222 } __attribute__ ((gcc_struct));
224 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
228 struct Statement * prev;
229 struct Statement * next;
234 struct __ecereNameSpace__ecere__sys__OldList * expressions;
237 struct Identifier * id;
238 struct Statement * stmt;
239 } __attribute__ ((gcc_struct)) labeled;
242 struct Expression * exp;
243 struct Statement * stmt;
244 } __attribute__ ((gcc_struct)) caseStmt;
247 struct __ecereNameSpace__ecere__sys__OldList * declarations;
248 struct __ecereNameSpace__ecere__sys__OldList * statements;
249 struct Context * context;
250 unsigned int isSwitch;
251 } __attribute__ ((gcc_struct)) compound;
254 struct __ecereNameSpace__ecere__sys__OldList * exp;
255 struct Statement * stmt;
256 struct Statement * elseStmt;
257 } __attribute__ ((gcc_struct)) ifStmt;
260 struct __ecereNameSpace__ecere__sys__OldList * exp;
261 struct Statement * stmt;
262 } __attribute__ ((gcc_struct)) switchStmt;
265 struct __ecereNameSpace__ecere__sys__OldList * exp;
266 struct Statement * stmt;
267 } __attribute__ ((gcc_struct)) whileStmt;
270 struct __ecereNameSpace__ecere__sys__OldList * exp;
271 struct Statement * stmt;
272 } __attribute__ ((gcc_struct)) doWhile;
275 struct Statement * init;
276 struct Statement * check;
277 struct __ecereNameSpace__ecere__sys__OldList * increment;
278 struct Statement * stmt;
279 } __attribute__ ((gcc_struct)) forStmt;
282 struct Identifier * id;
283 } __attribute__ ((gcc_struct)) gotoStmt;
286 struct Specifier * spec;
288 struct __ecereNameSpace__ecere__sys__OldList * inputFields;
289 struct __ecereNameSpace__ecere__sys__OldList * outputFields;
290 struct __ecereNameSpace__ecere__sys__OldList * clobberedFields;
291 } __attribute__ ((gcc_struct)) asmStmt;
294 struct Expression * watcher;
295 struct Expression * object;
296 struct __ecereNameSpace__ecere__sys__OldList * watches;
297 } __attribute__ ((gcc_struct)) _watch;
300 struct Identifier * id;
301 struct __ecereNameSpace__ecere__sys__OldList * exp;
302 struct __ecereNameSpace__ecere__sys__OldList * filter;
303 struct Statement * stmt;
304 } __attribute__ ((gcc_struct)) forEachStmt;
305 struct Declaration * decl;
306 } __attribute__ ((gcc_struct)) __anon1;
307 } __attribute__ ((gcc_struct));
309 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
313 struct TypeName * prev;
314 struct TypeName * next;
316 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
317 struct Declarator * declarator;
319 struct Expression * bitCount;
320 } __attribute__ ((gcc_struct));
322 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
326 struct Initializer * prev;
327 struct Initializer * next;
332 struct Expression * exp;
333 struct __ecereNameSpace__ecere__sys__OldList * list;
334 } __attribute__ ((gcc_struct)) __anon1;
335 unsigned int isConstant;
336 struct Identifier * id;
337 } __attribute__ ((gcc_struct));
339 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
341 struct __ecereNameSpace__ecere__com__DataValue
356 } __attribute__ ((gcc_struct)) __anon1;
357 } __attribute__ ((gcc_struct));
359 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
363 struct Expression * prev;
364 struct Expression * next;
372 struct Identifier * identifier;
373 } __attribute__ ((gcc_struct)) __anon1;
374 struct Statement * compound;
375 struct Instantiation * instance;
379 unsigned int intlString;
380 } __attribute__ ((gcc_struct)) __anon2;
381 struct __ecereNameSpace__ecere__sys__OldList * list;
384 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
385 struct Declarator * decl;
386 } __attribute__ ((gcc_struct)) _classExp;
389 struct Identifier * id;
390 } __attribute__ ((gcc_struct)) classData;
393 struct Expression * exp;
394 struct __ecereNameSpace__ecere__sys__OldList * arguments;
395 struct Location argLoc;
396 } __attribute__ ((gcc_struct)) call;
399 struct Expression * exp;
400 struct __ecereNameSpace__ecere__sys__OldList * index;
401 } __attribute__ ((gcc_struct)) index;
404 struct Expression * exp;
405 struct Identifier * member;
407 unsigned int thisPtr;
408 } __attribute__ ((gcc_struct)) member;
412 struct Expression * exp1;
413 struct Expression * exp2;
414 } __attribute__ ((gcc_struct)) op;
415 struct TypeName * typeName;
416 struct Specifier * _class;
419 struct TypeName * typeName;
420 struct Expression * exp;
421 } __attribute__ ((gcc_struct)) cast;
424 struct Expression * cond;
425 struct __ecereNameSpace__ecere__sys__OldList * exp;
426 struct Expression * elseExp;
427 } __attribute__ ((gcc_struct)) cond;
430 struct TypeName * typeName;
431 struct Expression * size;
432 } __attribute__ ((gcc_struct)) _new;
435 struct TypeName * typeName;
436 struct Expression * size;
437 struct Expression * exp;
438 } __attribute__ ((gcc_struct)) _renew;
442 struct Identifier * id;
443 } __attribute__ ((gcc_struct)) db;
446 struct Expression * ds;
447 struct Expression * name;
448 } __attribute__ ((gcc_struct)) dbopen;
451 struct TypeName * typeName;
452 struct Initializer * initializer;
453 } __attribute__ ((gcc_struct)) initializer;
456 struct Expression * exp;
457 struct TypeName * typeName;
458 } __attribute__ ((gcc_struct)) vaArg;
459 } __attribute__ ((gcc_struct)) __anon1;
460 unsigned int debugValue;
461 struct __ecereNameSpace__ecere__com__DataValue val;
463 unsigned int hasAddress;
464 struct Type * expType;
465 struct Type * destType;
468 unsigned int byReference;
469 unsigned int isConstant;
470 unsigned int addedThis;
471 unsigned int needCast;
472 unsigned int thisPtr;
473 unsigned int opDestType;
474 unsigned int needTemplateCast;
475 } __attribute__ ((gcc_struct));
477 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
479 struct TemplateDatatype;
481 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
483 struct TemplateArgument;
485 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
487 struct TemplateParameter;
489 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
493 struct Specifier * prev;
494 struct Specifier * next;
502 struct ExtDecl * extDecl;
504 struct Symbol * symbol;
505 struct __ecereNameSpace__ecere__sys__OldList * templateArgs;
506 } __attribute__ ((gcc_struct)) __anon1;
509 struct Identifier * id;
510 struct __ecereNameSpace__ecere__sys__OldList * list;
511 struct __ecereNameSpace__ecere__sys__OldList * baseSpecs;
512 struct __ecereNameSpace__ecere__sys__OldList * definitions;
513 unsigned int addNameSpace;
514 struct Context * ctx;
515 struct ExtDecl * extDeclStruct;
516 } __attribute__ ((gcc_struct)) __anon2;
517 struct Expression * expression;
518 struct Specifier * _class;
519 struct TemplateParameter * templateParameter;
520 } __attribute__ ((gcc_struct)) __anon1;
521 } __attribute__ ((gcc_struct));
523 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
527 struct Identifier * prev;
528 struct Identifier * next;
530 struct Symbol * classSym;
531 struct Specifier * _class;
533 struct Identifier * badID;
534 } __attribute__ ((gcc_struct));
536 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
540 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
544 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
546 struct FunctionDefinition
548 struct FunctionDefinition * prev;
549 struct FunctionDefinition * next;
551 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
552 struct Declarator * declarator;
553 struct __ecereNameSpace__ecere__sys__OldList * declarations;
554 struct Statement * body;
555 struct __ecereNameSpace__ecere__com__Class * _class;
556 struct __ecereNameSpace__ecere__sys__OldList attached;
559 struct Symbol * propSet;
561 unsigned int propertyNoThis;
562 } __attribute__ ((gcc_struct));
564 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
569 struct Symbol * symbol;
570 struct __ecereNameSpace__ecere__sys__OldList * definitions;
572 } __attribute__ ((gcc_struct));
574 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
578 struct External * prev;
579 struct External * next;
582 struct Symbol * symbol;
585 struct FunctionDefinition * function;
586 struct ClassDefinition * _class;
587 struct Declaration * declaration;
589 struct Identifier * id;
590 struct DBTableDef * table;
591 } __attribute__ ((gcc_struct)) __anon1;
593 } __attribute__ ((gcc_struct));
595 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
599 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
603 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
608 struct Symbol * parent;
609 struct Symbol * left;
610 struct Symbol * right;
615 struct __ecereNameSpace__ecere__com__Method * method;
616 struct __ecereNameSpace__ecere__com__Property * _property;
617 struct __ecereNameSpace__ecere__com__Class * registered;
618 } __attribute__ ((gcc_struct)) __anon1;
625 struct External * pointerExternal;
626 struct External * structExternal;
627 } __attribute__ ((gcc_struct)) __anon1;
630 struct External * externalGet;
631 struct External * externalSet;
632 struct External * externalPtr;
633 struct External * externalIsSet;
634 } __attribute__ ((gcc_struct)) __anon2;
637 struct External * methodExternal;
638 struct External * methodCodeExternal;
639 } __attribute__ ((gcc_struct)) __anon3;
640 } __attribute__ ((gcc_struct)) __anon2;
641 unsigned int imported;
642 unsigned int declaredStructSym;
643 struct __ecereNameSpace__ecere__com__Class * _class;
644 unsigned int declaredStruct;
645 unsigned int needConstructor;
646 unsigned int needDestructor;
647 char * constructorName;
650 char * destructorName;
651 struct ModuleImport * module;
652 struct ClassImport * _import;
653 struct Location nameLoc;
654 unsigned int isParam;
655 unsigned int isRemote;
656 unsigned int isStruct;
657 unsigned int fireWatchersDone;
659 unsigned int classData;
660 unsigned int isStatic;
662 struct __ecereNameSpace__ecere__sys__OldList * templateParams;
663 struct __ecereNameSpace__ecere__sys__OldList templatedClasses;
664 struct Context * ctx;
666 struct Expression * propCategory;
667 } __attribute__ ((gcc_struct));
669 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
678 struct Symbol * _class;
681 struct __ecereNameSpace__ecere__sys__OldList members;
683 } __attribute__ ((gcc_struct)) __anon1;
686 struct Type * returnType;
687 struct __ecereNameSpace__ecere__sys__OldList params;
688 struct Symbol * thisClass;
689 unsigned int staticMethod;
690 struct TemplateParameter * thisClassTemplate;
691 } __attribute__ ((gcc_struct)) __anon2;
694 struct __ecereNameSpace__ecere__com__Method * method;
695 struct __ecereNameSpace__ecere__com__Class * methodClass;
696 struct __ecereNameSpace__ecere__com__Class * usedClass;
697 } __attribute__ ((gcc_struct)) __anon3;
700 struct Type * arrayType;
702 struct Expression * arraySizeExp;
703 unsigned int freeExp;
704 struct Symbol * enumClass;
705 } __attribute__ ((gcc_struct)) __anon4;
707 struct TemplateParameter * templateParameter;
708 } __attribute__ ((gcc_struct)) __anon1;
718 unsigned int isSigned : 1;
719 unsigned int constant : 1;
720 unsigned int truth : 1;
721 unsigned int byReference : 1;
722 unsigned int extraParam : 1;
723 unsigned int directClassAccess : 1;
724 unsigned int computing : 1;
725 unsigned int keepCast : 1;
726 unsigned int passAsTemplate : 1;
727 unsigned int dllExport : 1;
728 unsigned int attrStdcall : 1;
729 unsigned int declaredWithStruct : 1;
730 unsigned int typedByReference : 1;
731 unsigned int casted : 1;
732 } __attribute__ ((gcc_struct));
734 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
736 struct __ecereNameSpace__ecere__com__Class
738 struct __ecereNameSpace__ecere__com__Class * prev;
739 struct __ecereNameSpace__ecere__com__Class * next;
745 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
746 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
749 struct __ecereNameSpace__ecere__com__Class * base;
750 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
751 struct __ecereNameSpace__ecere__sys__BinaryTree members;
752 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
753 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
754 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
755 struct __ecereNameSpace__ecere__sys__OldList derivatives;
759 struct __ecereNameSpace__ecere__com__Instance * module;
760 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
761 const char * dataTypeString;
762 struct Type * dataType;
764 int defaultAlignment;
765 void (* Initialize)();
767 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
768 const char * designerClass;
769 unsigned int noExpansion;
770 const char * defaultProperty;
771 unsigned int comRedefinition;
774 unsigned int internalDecl;
776 unsigned int computeSize;
778 int destructionWatchOffset;
780 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
781 int inheritanceAccess;
782 const char * fullName;
784 struct __ecereNameSpace__ecere__sys__OldList conversions;
785 struct __ecereNameSpace__ecere__sys__OldList templateParams;
786 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
787 struct __ecereNameSpace__ecere__com__Class * templateClass;
788 struct __ecereNameSpace__ecere__sys__OldList templatized;
790 unsigned int isInstanceClass;
791 unsigned int byValueSystemClass;
792 } __attribute__ ((gcc_struct));
794 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
796 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
798 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
800 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
802 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
804 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);
806 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
808 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
810 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
812 struct __ecereNameSpace__ecere__com__Instance
815 struct __ecereNameSpace__ecere__com__Class * _class;
817 } __attribute__ ((gcc_struct));
819 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
821 struct __ecereNameSpace__ecere__com__DataMember
823 struct __ecereNameSpace__ecere__com__DataMember * prev;
824 struct __ecereNameSpace__ecere__com__DataMember * next;
826 unsigned int isProperty;
829 struct __ecereNameSpace__ecere__com__Class * _class;
830 const char * dataTypeString;
831 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
832 struct Type * dataType;
836 struct __ecereNameSpace__ecere__sys__OldList members;
837 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
840 } __attribute__ ((gcc_struct));
842 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
844 struct __ecereNameSpace__ecere__com__SerialBuffer
846 unsigned char * _buffer;
850 } __attribute__ ((gcc_struct));
852 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
854 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
860 const char * dataTypeString;
861 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
862 } __attribute__ ((gcc_struct)) __anon1;
863 struct __ecereNameSpace__ecere__com__DataValue expression;
866 const char * memberString;
869 struct __ecereNameSpace__ecere__com__DataMember * member;
870 struct __ecereNameSpace__ecere__com__Property * prop;
871 struct __ecereNameSpace__ecere__com__Method * method;
872 } __attribute__ ((gcc_struct)) __anon1;
873 } __attribute__ ((gcc_struct)) __anon2;
874 } __attribute__ ((gcc_struct)) __anon1;
875 } __attribute__ ((gcc_struct));
879 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
882 typedef union YYSTYPE
887 struct Identifier * id;
888 struct Expression * exp;
889 struct Specifier * specifier;
890 struct __ecereNameSpace__ecere__sys__OldList * list;
891 struct Enumerator * enumerator;
892 struct Declarator * declarator;
893 struct Pointer * pointer;
894 struct Initializer * initializer;
895 struct InitDeclarator * initDeclarator;
896 struct TypeName * typeName;
897 struct Declaration * declaration;
898 struct Statement * stmt;
899 struct FunctionDefinition * function;
900 struct External * external;
901 struct Context * context;
902 struct AsmField * asmField;
903 struct Attrib * attrib;
904 struct ExtDecl * extDecl;
905 struct Attribute * attribute;
906 struct Instantiation * instance;
907 struct MembersInit * membersInit;
908 struct MemberInit * memberInit;
909 struct ClassFunction * classFunction;
910 struct ClassDefinition * _class;
911 struct ClassDef * classDef;
912 struct PropertyDef * prop;
914 struct Symbol * symbol;
915 struct PropertyWatch * propertyWatch;
916 struct TemplateParameter * templateParameter;
917 struct TemplateArgument * templateArgument;
918 struct TemplateDatatype * templateDatatype;
919 struct DBTableEntry * dbtableEntry;
920 struct DBIndexItem * dbindexItem;
921 struct DBTableDef * dbtableDef;
922 } __attribute__ ((gcc_struct)) YYSTYPE;
924 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Enumerator;
928 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_InitDeclarator;
930 struct InitDeclarator
932 struct InitDeclarator * prev;
933 struct InitDeclarator * next;
935 struct Declarator * declarator;
936 struct Initializer * initializer;
937 } __attribute__ ((gcc_struct));
939 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_AsmField;
943 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attribute;
947 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassFunction;
951 struct ClassFunction * prev;
952 struct ClassFunction * next;
954 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
955 struct Declarator * declarator;
956 struct __ecereNameSpace__ecere__sys__OldList * declarations;
957 struct Statement * body;
958 struct __ecereNameSpace__ecere__com__Class * _class;
959 struct __ecereNameSpace__ecere__sys__OldList attached;
962 struct Symbol * propSet;
963 unsigned int isVirtual;
964 unsigned int isConstructor;
965 unsigned int isDestructor;
966 unsigned int dontMangle;
969 } __attribute__ ((gcc_struct));
971 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MembersInit;
975 struct MembersInit * prev;
976 struct MembersInit * next;
981 struct __ecereNameSpace__ecere__sys__OldList * dataMembers;
982 struct ClassFunction * function;
983 } __attribute__ ((gcc_struct)) __anon1;
984 } __attribute__ ((gcc_struct));
986 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_MemberInit;
990 struct MemberInit * prev;
991 struct MemberInit * next;
993 struct Location realLoc;
994 struct __ecereNameSpace__ecere__sys__OldList * identifiers;
995 struct Initializer * initializer;
997 unsigned int variable;
998 unsigned int takeOutExp;
999 } __attribute__ ((gcc_struct));
1001 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyDef;
1005 struct PropertyDef * prev;
1006 struct PropertyDef * next;
1007 struct Location loc;
1008 struct __ecereNameSpace__ecere__sys__OldList * specifiers;
1009 struct Declarator * declarator;
1010 struct Identifier * id;
1011 struct Statement * getStmt;
1012 struct Statement * setStmt;
1013 struct Statement * issetStmt;
1014 struct Symbol * symbol;
1015 struct Expression * category;
1018 unsigned int conversion : 1;
1019 unsigned int isWatchable : 1;
1020 unsigned int isDBProp : 1;
1021 } __attribute__ ((gcc_struct)) __anon1;
1022 } __attribute__ ((gcc_struct));
1024 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_PropertyWatch;
1026 struct PropertyWatch
1028 struct PropertyWatch * prev;
1029 struct PropertyWatch * next;
1030 struct Location loc;
1031 struct Statement * compound;
1032 struct __ecereNameSpace__ecere__sys__OldList * properties;
1033 unsigned int deleteWatch;
1034 } __attribute__ ((gcc_struct));
1036 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDef;
1040 struct ClassDef * prev;
1041 struct ClassDef * next;
1042 struct Location loc;
1046 struct Declaration * decl;
1047 struct ClassFunction * function;
1048 struct __ecereNameSpace__ecere__sys__OldList * defProperties;
1049 struct PropertyDef * propertyDef;
1050 struct PropertyWatch * propertyWatch;
1052 struct Identifier * defaultProperty;
1055 struct Identifier * id;
1056 struct Initializer * initializer;
1057 } __attribute__ ((gcc_struct)) __anon1;
1058 } __attribute__ ((gcc_struct)) __anon1;
1061 } __attribute__ ((gcc_struct));
1063 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableEntry;
1067 struct DBTableEntry * prev;
1068 struct DBTableEntry * next;
1070 struct Identifier * id;
1075 struct TypeName * dataType;
1077 } __attribute__ ((gcc_struct)) __anon1;
1078 struct __ecereNameSpace__ecere__sys__OldList * items;
1079 } __attribute__ ((gcc_struct)) __anon1;
1080 } __attribute__ ((gcc_struct));
1082 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBIndexItem;
1086 struct DBIndexItem * prev;
1087 struct DBIndexItem * next;
1088 struct Identifier * id;
1090 } __attribute__ ((gcc_struct));
1092 extern YYSTYPE yylval;
1094 extern struct Location yylloc;
1096 static struct __ecereNameSpace__ecere__sys__OldList * tableStatements, * indexStatements, * addFieldStatements;
1098 static int numIndexes;
1100 static struct External * addAfter;
1102 static void ProcessDeclaration(struct Declaration * decl);
1104 static void ProcessMemberInit(struct MemberInit * init);
1106 static void ProcessClassFunction(struct ClassFunction * func);
1108 static void ProcessProperty(struct PropertyDef * def);
1110 static void ProcessStatement(struct Statement * stmt);
1112 static void ProcessInitializer(struct Initializer * initializer);
1114 static void ProcessSpecifier(struct Specifier * spec)
1122 if(spec->__anon1.__anon2.definitions)
1124 struct ClassDef * def;
1126 for(def = (*spec->__anon1.__anon2.definitions).first; def; def = def->next)
1131 ProcessDeclaration(def->__anon1.decl);
1135 struct MemberInit * init;
1137 for(init = (*def->__anon1.defProperties).first; init; init = init->next)
1139 ProcessMemberInit(init);
1144 ProcessClassFunction(def->__anon1.function);
1147 if(def->__anon1.propertyDef)
1149 ProcessProperty(def->__anon1.propertyDef);
1153 if(def->__anon1.propertyWatch && def->__anon1.propertyWatch->compound)
1155 ProcessStatement(def->__anon1.propertyWatch->compound);
1159 if(def->__anon1.__anon1.initializer)
1160 ProcessInitializer(def->__anon1.__anon1.initializer);
1170 static void ProcessIdentifier(struct Identifier * id)
1174 static void ProcessInstance(struct Instantiation * inst);
1176 extern size_t strlen(const char * );
1178 extern void * memcpy(void * , const void * , size_t size);
1180 extern void __ecereNameSpace__ecere__sys__ChangeCh(char * string, char ch1, char ch2);
1182 extern int sprintf(char * , const char * , ...);
1184 extern void FreeExpContents(struct Expression * exp);
1186 extern struct Identifier * MkIdentifier(const char * string);
1188 extern struct Statement * MkCompoundStmt(struct __ecereNameSpace__ecere__sys__OldList * declarations, struct __ecereNameSpace__ecere__sys__OldList * statements);
1190 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
1192 extern struct Context * curContext;
1194 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
1196 extern struct __ecereNameSpace__ecere__sys__OldList * MkListOne(void * item);
1198 extern struct Specifier * MkSpecifierName(const char * name);
1200 extern struct InitDeclarator * MkInitDeclarator(struct Declarator * declarator, struct Initializer * initializer);
1202 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
1204 extern struct Specifier * MkSpecifier(int specifier);
1206 extern struct Initializer * MkInitializerAssignment(struct Expression * exp);
1208 extern struct Expression * MkExpIdentifier(struct Identifier * id);
1210 extern struct Statement * MkIfStmt(struct __ecereNameSpace__ecere__sys__OldList * exp, struct Statement * statement, struct Statement * elseStmt);
1212 extern struct Statement * MkReturnStmt(struct __ecereNameSpace__ecere__sys__OldList * exp);
1214 extern struct Expression * MkExpConstant(const char * string);
1216 extern struct Statement * MkExpressionStmt(struct __ecereNameSpace__ecere__sys__OldList * expressions);
1218 extern struct Expression * MkExpOp(struct Expression * exp1, int op, struct Expression * exp2);
1220 extern struct Expression * CopyExpression(struct Expression * exp);
1222 extern struct Expression * MkExpCall(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * arguments);
1224 extern struct Expression * MkExpMember(struct Expression * expression, struct Identifier * member);
1226 extern struct Declarator * MkDeclaratorArray(struct Declarator * declarator, struct Expression * exp);
1228 extern struct Initializer * MkInitializerList(struct __ecereNameSpace__ecere__sys__OldList * list);
1230 extern void Compiler_Error(const char * format, ...);
1232 extern const char * __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char * string, const char * stringAndContext);
1234 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
1236 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1238 static void ProcessExpression(struct Expression * exp)
1243 ProcessExpression(exp->__anon1._new.size);
1246 ProcessExpression(exp->__anon1._renew.exp);
1247 ProcessExpression(exp->__anon1._renew.size);
1252 ProcessIdentifier(exp->__anon1.__anon1.identifier);
1255 ProcessInstance(exp->__anon1.instance);
1260 if(exp->__anon1.op.exp1)
1262 ProcessExpression(exp->__anon1.op.exp1);
1264 if(exp->__anon1.op.exp2)
1266 ProcessExpression(exp->__anon1.op.exp2);
1271 struct Expression * expression;
1273 for(expression = (*exp->__anon1.list).first; expression; expression = expression->next)
1275 ProcessExpression(expression);
1281 struct Expression * expression;
1283 ProcessExpression(exp->__anon1.index.exp);
1284 for(expression = (*exp->__anon1.index.index).first; expression; expression = expression->next)
1286 ProcessExpression(expression);
1292 ProcessExpression(exp->__anon1.call.exp);
1293 if(exp->__anon1.call.arguments)
1295 struct Expression * expression;
1297 for(expression = (*exp->__anon1.call.arguments).first; expression; expression = expression->next)
1299 ProcessExpression(expression);
1305 ProcessExpression(exp->__anon1.member.exp);
1308 ProcessExpression(exp->__anon1.member.exp);
1313 ProcessExpression(exp->__anon1.cast.exp);
1316 ProcessExpression(exp->__anon1.cond.cond);
1318 struct Expression * expression;
1320 for(expression = (*exp->__anon1.cond.exp).first; expression; expression = expression->next)
1322 ProcessExpression(expression);
1325 ProcessExpression(exp->__anon1.cond.elseExp);
1331 char tableName[1024];
1333 int len = strlen(exp->__anon1.db.table);
1335 memcpy(tableName, exp->__anon1.db.table + 1, len - 2);
1336 tableName[len - 2] = (char)0;
1337 __ecereNameSpace__ecere__sys__ChangeCh(tableName, ' ', '_');
1338 sprintf(name, "__ecereDBField_%s_%s", tableName, exp->__anon1.db.id->string);
1339 FreeExpContents(exp);
1341 exp->__anon1.__anon1.identifier = MkIdentifier(name);
1346 char tableName[1024];
1348 int len = strlen(exp->__anon1.db.table);
1350 memcpy(tableName, exp->__anon1.db.table + 1, len - 2);
1351 tableName[len - 2] = (char)0;
1352 __ecereNameSpace__ecere__sys__ChangeCh(tableName, ' ', '_');
1353 sprintf(name, "__ecereDBTable_%s", tableName);
1354 FreeExpContents(exp);
1356 exp->__anon1.__anon1.identifier = MkIdentifier(name);
1361 char tableName[1024];
1363 int len = strlen(exp->__anon1.db.table);
1365 memcpy(tableName, exp->__anon1.db.table + 1, len - 2);
1366 tableName[len - 2] = (char)0;
1367 __ecereNameSpace__ecere__sys__ChangeCh(tableName, ' ', '_');
1368 sprintf(name, "__ecereDBIndex_%s_%s", tableName, exp->__anon1.db.id->string);
1369 FreeExpContents(exp);
1371 exp->__anon1.__anon1.identifier = MkIdentifier(name);
1378 struct Statement * databaseOpenStmt = MkCompoundStmt(MkList(), MkList());
1379 struct Statement * compound;
1380 struct Statement * ifDBStmt;
1381 struct __ecereNameSpace__ecere__sys__OldList * args;
1382 char numIndexesString[16];
1384 databaseOpenStmt->__anon1.compound.context = __extension__ ({
1385 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1387 __ecereInstance1->parent = curContext, __ecereInstance1;
1389 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->__anon1.compound.declarations), MkDeclaration(MkListOne(MkSpecifierName("Database")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("db")), (((void *)0))))));
1391 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkSpecifier(STATIC));
1392 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkSpecifierName("bool"));
1393 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->__anon1.compound.declarations), MkDeclaration(args, MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("initialized")), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("false")))))));
1394 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->__anon1.compound.statements), MkIfStmt(MkListOne(MkExpIdentifier(MkIdentifier("initialized"))), MkReturnStmt(MkListOne(MkExpConstant("0"))), (((void *)0))));
1395 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("initialized")), '=', MkExpIdentifier(MkIdentifier("true"))))));
1397 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), CopyExpression(exp->__anon1.dbopen.name));
1398 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("no")));
1399 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("db")), '=', MkExpCall(MkExpMember(CopyExpression(exp->__anon1.dbopen.ds), MkIdentifier("OpenDatabase")), args)))));
1400 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->__anon1.compound.statements), MkIfStmt(MkListOne(MkExpOp((((void *)0)), '!', MkExpIdentifier(MkIdentifier("db")))), compound = MkCompoundStmt((((void *)0)), MkList()), (((void *)0))));
1401 compound->__anon1.compound.context = __extension__ ({
1402 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1404 __ecereInstance1->parent = databaseOpenStmt->__anon1.compound.context, __ecereInstance1;
1407 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), exp->__anon1.dbopen.name);
1408 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("create")));
1409 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*compound->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("db")), '=', MkExpCall(MkExpMember(exp->__anon1.dbopen.ds, MkIdentifier("OpenDatabase")), args)))));
1410 exp->__anon1.dbopen.name = (((void *)0));
1411 exp->__anon1.dbopen.ds = (((void *)0));
1412 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->__anon1.compound.statements), MkIfStmt(MkListOne(MkExpIdentifier(MkIdentifier("db"))), ifDBStmt = MkCompoundStmt(MkList(), MkList()), (((void *)0))));
1413 ifDBStmt->__anon1.compound.context = __extension__ ({
1414 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1416 __ecereInstance1->parent = databaseOpenStmt->__anon1.compound.context, __ecereInstance1;
1418 sprintf(numIndexesString, "%d", numIndexes);
1419 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->__anon1.compound.declarations), MkDeclaration(MkListOne(MkSpecifierName("FieldIndex")), MkListOne(MkInitDeclarator(MkDeclaratorArray(MkDeclaratorIdentifier(MkIdentifier("indexes")), MkExpConstant(numIndexesString)), MkInitializerList(MkListOne(MkInitializerList(MkListOne(MkInitializerAssignment(MkExpIdentifier(MkIdentifier("null")))))))))));
1420 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("db")), MkIdentifier("Begin")), MkList()))));
1421 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->__anon1.compound.statements), compound = MkCompoundStmt((((void *)0)), tableStatements));
1422 compound->__anon1.compound.context = __extension__ ({
1423 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1425 __ecereInstance1->parent = ifDBStmt->__anon1.compound.context, __ecereInstance1;
1427 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->__anon1.compound.statements), (compound = MkCompoundStmt((((void *)0)), addFieldStatements), compound->__anon1.compound.context = __extension__ ({
1428 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1430 __ecereInstance1->parent = ifDBStmt->__anon1.compound.context, __ecereInstance1;
1432 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->__anon1.compound.statements), compound = MkCompoundStmt((((void *)0)), indexStatements));
1433 compound->__anon1.compound.context = __extension__ ({
1434 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
1436 __ecereInstance1->parent = ifDBStmt->__anon1.compound.context, __ecereInstance1;
1438 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ifDBStmt->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("db")), MkIdentifier("Commit")), MkList()))));
1440 exp->__anon1.compound = databaseOpenStmt;
1441 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*databaseOpenStmt->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpIdentifier(MkIdentifier("db")))));
1442 tableStatements = (((void *)0));
1446 FreeExpContents(exp);
1447 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "No database table defined in this module or database_open already used.\n", (((void *)0))));
1455 static void ProcessStatement(struct Statement * stmt)
1460 ProcessStatement(stmt->__anon1.labeled.stmt);
1463 if(stmt->__anon1.caseStmt.exp)
1465 ProcessExpression(stmt->__anon1.caseStmt.exp);
1467 if(stmt->__anon1.caseStmt.stmt)
1469 ProcessStatement(stmt->__anon1.caseStmt.stmt);
1474 ProcessDeclaration(stmt->__anon1.decl);
1479 struct Context * oldContext = curContext;
1481 curContext = stmt->__anon1.compound.context;
1482 if(stmt->__anon1.compound.declarations)
1484 struct Declaration * decl;
1486 for(decl = (*stmt->__anon1.compound.declarations).first; decl; decl = decl->next)
1488 ProcessDeclaration(decl);
1491 if(stmt->__anon1.compound.statements)
1493 struct Statement * statement;
1495 for(statement = (*stmt->__anon1.compound.statements).first; statement; statement = statement->next)
1497 ProcessStatement(statement);
1500 curContext = oldContext;
1505 if(stmt->__anon1.expressions)
1507 struct Expression * exp;
1509 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
1511 ProcessExpression(exp);
1518 struct Expression * exp;
1520 for(exp = (*stmt->__anon1.ifStmt.exp).first; exp; exp = exp->next)
1522 ProcessExpression(exp);
1524 if(stmt->__anon1.ifStmt.stmt)
1526 ProcessStatement(stmt->__anon1.ifStmt.stmt);
1528 if(stmt->__anon1.ifStmt.elseStmt)
1530 ProcessStatement(stmt->__anon1.ifStmt.elseStmt);
1536 struct Expression * exp;
1538 for(exp = (*stmt->__anon1.switchStmt.exp).first; exp; exp = exp->next)
1540 ProcessExpression(exp);
1542 ProcessStatement(stmt->__anon1.switchStmt.stmt);
1547 struct Expression * exp;
1549 if(stmt->__anon1.whileStmt.exp)
1551 for(exp = (*stmt->__anon1.whileStmt.exp).first; exp; exp = exp->next)
1553 ProcessExpression(exp);
1556 if(stmt->__anon1.whileStmt.stmt)
1557 ProcessStatement(stmt->__anon1.whileStmt.stmt);
1562 ProcessStatement(stmt->__anon1.doWhile.stmt);
1563 if(stmt->__anon1.doWhile.exp)
1565 struct Expression * exp;
1567 for(exp = (*stmt->__anon1.doWhile.exp).first; exp; exp = exp->next)
1569 ProcessExpression(exp);
1576 struct Expression * exp;
1578 if(stmt->__anon1.forStmt.init)
1580 ProcessStatement(stmt->__anon1.forStmt.init);
1582 if(stmt->__anon1.forStmt.check)
1584 ProcessStatement(stmt->__anon1.forStmt.check);
1586 if(stmt->__anon1.forStmt.increment)
1588 for(exp = (*stmt->__anon1.forStmt.increment).first; exp; exp = exp->next)
1590 ProcessExpression(exp);
1593 if(stmt->__anon1.forStmt.stmt)
1594 ProcessStatement(stmt->__anon1.forStmt.stmt);
1604 if(stmt->__anon1.expressions)
1606 struct Expression * exp;
1608 for(exp = (*stmt->__anon1.expressions).first; exp; exp = exp->next)
1610 ProcessExpression(exp);
1617 struct Identifier * _watch;
1619 if(stmt->__anon1._watch.watcher)
1621 ProcessExpression(stmt->__anon1._watch.watcher);
1623 if(stmt->__anon1._watch.object)
1625 ProcessExpression(stmt->__anon1._watch.object);
1627 if(stmt->__anon1._watch.watches)
1629 for(_watch = (*stmt->__anon1._watch.watches).first; _watch; _watch = _watch->next)
1631 ProcessIdentifier(_watch);
1638 struct PropertyWatch * _watch;
1640 if(stmt->__anon1._watch.watcher)
1642 ProcessExpression(stmt->__anon1._watch.watcher);
1644 if(stmt->__anon1._watch.object)
1646 ProcessExpression(stmt->__anon1._watch.object);
1648 if(stmt->__anon1._watch.watches)
1650 for(_watch = (*stmt->__anon1._watch.watches).first; _watch; _watch = _watch->next)
1652 if(_watch->compound)
1654 ProcessStatement(_watch->compound);
1663 static void ProcessInitializer(struct Initializer * initializer)
1665 switch(initializer->type)
1669 struct Initializer * init;
1671 for(init = (*initializer->__anon1.list).first; init; init = init->next)
1673 ProcessInitializer(init);
1678 ProcessExpression(initializer->__anon1.exp);
1683 static void ProcessInitDeclarator(struct InitDeclarator * decl)
1685 if(decl->initializer)
1686 ProcessInitializer(decl->initializer);
1689 static void ProcessDeclaration(struct Declaration * decl)
1695 struct Specifier * spec;
1697 if(decl->__anon1.__anon1.specifiers)
1699 for(spec = (*decl->__anon1.__anon1.specifiers).first; spec; spec = spec->next)
1701 ProcessSpecifier(spec);
1708 if(decl->__anon1.__anon1.specifiers)
1710 struct Specifier * s;
1712 for(s = (*decl->__anon1.__anon1.specifiers).first; s; s = s->next)
1714 ProcessSpecifier(s);
1717 if(decl->__anon1.__anon1.declarators && (*decl->__anon1.__anon1.declarators).first)
1719 struct InitDeclarator * d;
1721 for(d = (*decl->__anon1.__anon1.declarators).first; d; d = d->next)
1723 ProcessInitDeclarator(d);
1729 ProcessInstance(decl->__anon1.inst);
1734 static void ProcessFunction(struct FunctionDefinition * func)
1738 ProcessStatement(func->body);
1742 static void ProcessMemberInit(struct MemberInit * init)
1744 if(init->initializer)
1746 ProcessInitializer(init->initializer);
1750 static void ProcessInstance(struct Instantiation * inst)
1754 struct MembersInit * init;
1755 struct MemberInit * memberInit;
1757 for(init = (*inst->members).first; init; init = init->next)
1759 if(init->type == 0 && init->__anon1.dataMembers)
1761 for(memberInit = (*init->__anon1.dataMembers).first; memberInit; memberInit = memberInit->next)
1763 ProcessMemberInit(memberInit);
1768 ProcessClassFunction(init->__anon1.function);
1774 static void ProcessClassFunction(struct ClassFunction * func)
1778 ProcessStatement(func->body);
1782 static void ProcessProperty(struct PropertyDef * def)
1786 ProcessStatement(def->getStmt);
1790 ProcessStatement(def->setStmt);
1794 static void ProcessClassDef(struct ClassDef * def)
1799 ProcessDeclaration(def->__anon1.decl);
1803 struct MemberInit * init;
1805 for(init = (*def->__anon1.defProperties).first; init; init = init->next)
1807 ProcessMemberInit(init);
1812 if(def->__anon1.__anon1.initializer)
1813 ProcessInitializer(def->__anon1.__anon1.initializer);
1816 ProcessClassFunction(def->__anon1.function);
1819 if(def->__anon1.propertyDef)
1821 ProcessProperty(def->__anon1.propertyDef);
1825 if(def->__anon1.propertyWatch && def->__anon1.propertyWatch->compound)
1827 ProcessStatement(def->__anon1.propertyWatch->compound);
1833 static void ProcessClass(struct ClassDefinition * _class)
1835 if(_class->definitions)
1837 struct ClassDef * def;
1839 for(def = (*_class->definitions).first; def; def = def->next)
1841 ProcessClassDef(def);
1846 static int curSymbolID = 0;
1848 extern struct External * MkExternalDeclaration(struct Declaration * declaration);
1850 extern struct __ecereNameSpace__ecere__sys__OldList * ast;
1852 extern struct Expression * MkExpString(const char * string);
1854 extern struct Expression * MkExpInstance(struct Instantiation * inst);
1856 extern struct Instantiation * MkInstantiation(struct Specifier * _class, struct Expression * exp, struct __ecereNameSpace__ecere__sys__OldList * members);
1858 extern struct MembersInit * MkMembersInitList(struct __ecereNameSpace__ecere__sys__OldList * dataMembers);
1860 extern struct MemberInit * MkMemberInit(struct __ecereNameSpace__ecere__sys__OldList * ids, struct Initializer * initializer);
1862 extern struct Context * PushContext(void);
1864 extern struct ClassDefinition * MkClass(struct Symbol * symbol, struct __ecereNameSpace__ecere__sys__OldList * baseSpecs, struct __ecereNameSpace__ecere__sys__OldList * definitions);
1866 extern struct Symbol * DeclClass(int symbolID, const char * name);
1868 extern struct Context * globalContext;
1870 extern void PopContext(struct Context * ctx);
1872 extern struct ClassDef * MkClassDefDefaultProperty(struct __ecereNameSpace__ecere__sys__OldList * defProperties);
1874 extern struct MemberInit * MkMemberInitExp(struct Expression * idExp, struct Initializer * initializer);
1876 extern struct External * MkExternalClass(struct ClassDefinition * _class);
1878 extern int strcmp(const char * , const char * );
1880 extern char * strcpy(char * , const char * );
1882 extern struct ClassDef * MkClassDefProperty(struct PropertyDef * propertyDef);
1884 extern struct PropertyDef * MkProperty(struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * decl, struct Identifier * id, struct Statement * setStmt, struct Statement * getStmt);
1886 extern struct __ecereNameSpace__ecere__sys__OldList * CopyList(struct __ecereNameSpace__ecere__sys__OldList * source, void * (* CopyFunction)(void * ));
1888 extern struct Specifier * CopySpecifier(struct Specifier * spec);
1890 extern struct Declarator * CopyDeclarator(struct Declarator * declarator);
1892 extern struct Declaration * MkDeclarationInst(struct Instantiation * inst);
1894 extern struct Identifier * CopyIdentifier(struct Identifier * id);
1896 extern struct Expression * MkExpClass(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct Declarator * decl);
1898 extern struct Expression * MkExpIndex(struct Expression * expression, struct __ecereNameSpace__ecere__sys__OldList * index);
1900 extern struct ClassDef * MkClassDefClassPropertyValue(struct Identifier * id, struct Initializer * initializer);
1902 extern struct Expression * MkExpDBTable(char * table);
1904 extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string);
1906 extern struct Expression * MkExpDBField(char * table, struct Identifier * id);
1908 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item);
1910 static void ProcessDBTable(struct DBTableDef * table)
1912 struct __ecereNameSpace__ecere__sys__OldList * rowClassDefs = MkList(), * idClassDefs = (((void *)0));
1913 char tableName[1024];
1914 char rowClassName[1024];
1915 int len = strlen(table->name);
1916 unsigned int indexed = 0;
1918 char nameField[1024];
1919 struct __ecereNameSpace__ecere__sys__OldList * args;
1920 struct __ecereNameSpace__ecere__sys__OldList * members;
1921 int symbolID = curSymbolID;
1924 idClassDefs = MkList();
1925 nameField[0] = (char)0;
1926 memcpy(tableName, table->name + 1, len - 2);
1927 tableName[len - 2] = (char)0;
1928 __ecereNameSpace__ecere__sys__ChangeCh(tableName, ' ', '_');
1929 sprintf(tableID, "__ecereDBTable_%s", tableName);
1930 sprintf(rowClassName, "Row%s", tableName);
1931 __ecereNameSpace__ecere__sys__ChangeCh(rowClassName, ' ', '_');
1932 if(!tableStatements)
1934 tableStatements = MkList();
1935 indexStatements = MkList();
1936 addFieldStatements = MkList();
1939 struct External * external;
1941 external = MkExternalDeclaration(MkDeclaration(MkListOne(MkSpecifierName("Table")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(tableID)), (((void *)0))))));
1942 external->__anon1.declaration->declMode = table->declMode;
1943 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*ast), addAfter, external);
1945 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*tableStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(tableID)), '=', MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("db")), MkIdentifier("OpenTable")), args)))));
1946 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpString(table->name));
1948 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpInstance(MkInstantiation((((void *)0)), (((void *)0)), MkListOne(MkMembersInitList(members)))));
1949 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*members), MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("tableRows")))));
1950 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*members), MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("create")))));
1953 struct ClassDefinition * _class;
1954 struct ClassDef * def;
1955 struct External * external;
1956 struct __ecereNameSpace__ecere__sys__OldList * inheritanceSpecs = MkList();
1958 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*inheritanceSpecs), MkSpecifier(PRIVATE));
1959 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*inheritanceSpecs), MkSpecifierName("Row"));
1961 _class = MkClass(DeclClass(globalContext->nextID++, rowClassName), inheritanceSpecs, rowClassDefs);
1962 PopContext(curContext);
1963 def = MkClassDefDefaultProperty(MkListOne(MkMemberInitExp(MkExpIdentifier(MkIdentifier("tbl")), MkInitializerAssignment(MkExpIdentifier(MkIdentifier(tableID))))));
1964 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowClassDefs), def);
1965 _class->symbol->idCode = symbolID;
1966 _class->declMode = table->declMode;
1967 external = MkExternalClass(_class);
1968 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*ast), addAfter, external);
1969 addAfter = external;
1971 if(table->definitions)
1973 struct DBTableEntry * entry;
1975 for(entry = (*table->definitions).first; entry; entry = entry->next)
1981 unsigned int isIndex = 0;
1983 struct __ecereNameSpace__ecere__sys__OldList * args;
1984 struct Specifier * spec = entry->__anon1.__anon1.dataType->qualifiers ? (struct Specifier *)(*entry->__anon1.__anon1.dataType->qualifiers).first : (((void *)0));
1986 sprintf(fieldID, "__ecereDBField_%s_%s", tableName, entry->id->string);
1989 if(!nameField[0] && spec->type == 1 && (!strcmp(spec->__anon1.__anon1.name, "String") || !strcmp(spec->__anon1.__anon1.name, "eda::CIString")))
1991 strcpy(nameField, entry->id->string);
1993 if(!indexed && spec->type == 1 && !strcmp(spec->__anon1.__anon1.name, table->symbol->string))
1995 struct Statement * rowSet = MkCompoundStmt(MkList(), MkList());
1997 struct ClassDef * def;
1999 numIndexes = ((numIndexes > 1) ? numIndexes : 1);
2002 sprintf(name, "_%s", entry->id->string);
2003 curContext = rowSet->__anon1.compound.context = __extension__ ({
2004 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
2006 __ecereInstance1->parent = globalContext, __ecereInstance1;
2008 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowSet->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("Find")), args = MkList()))));
2009 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
2010 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("middle")));
2011 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("nil")));
2012 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("value")));
2013 curContext = globalContext;
2014 def = MkClassDefProperty(MkProperty(CopyList(entry->__anon1.__anon1.dataType->qualifiers, CopySpecifier), CopyDeclarator(entry->__anon1.__anon1.dataType->declarator), MkIdentifier(name), rowSet, (((void *)0))));
2015 def->__anon1.propertyDef->symbol->id = def->__anon1.propertyDef->symbol->idCode = symbolID;
2016 def->__anon1.propertyDef->__anon1.isDBProp = 1;
2017 def->memberAccess = 1;
2018 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowClassDefs), def);
2023 struct Statement * rowSet = MkCompoundStmt(MkList(), MkList()), * rowGet = MkCompoundStmt(MkList(), MkList());
2024 struct ClassDef * def;
2026 curContext = rowGet->__anon1.compound.context = __extension__ ({
2027 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
2029 __ecereInstance1->parent = globalContext, __ecereInstance1;
2031 if(spec->type == 1 && spec->__anon1.__anon1.symbol && spec->__anon1.__anon1.symbol->__anon1.registered && spec->__anon1.__anon1.symbol->__anon1.registered->type == 1)
2033 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->__anon1.compound.declarations), MkDeclarationInst(MkInstantiation(MkSpecifierName(spec->__anon1.__anon1.name), MkExpIdentifier(MkIdentifier("d")), (((void *)0)))));
2037 struct Expression * exp;
2039 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->__anon1.compound.declarations), MkDeclaration(CopyList(entry->__anon1.__anon1.dataType->qualifiers, CopySpecifier), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("d")), MkInitializerAssignment(exp = MkExpConstant("0"))))));
2040 exp->destType = __extension__ ({
2041 struct Type * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
2043 __ecereInstance1->kind = 3, __ecereInstance1->refCount = 1, __ecereInstance1;
2046 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("GetData")), args = MkList()))));
2047 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
2048 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("d")));
2049 if(spec->type == 1 && spec->__anon1.__anon1.symbol && spec->__anon1.__anon1.symbol->__anon1.registered && spec->__anon1.__anon1.symbol->__anon1.registered->type == 1)
2051 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("value")), '=', MkExpIdentifier(MkIdentifier("d"))))));
2054 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowGet->__anon1.compound.statements), MkReturnStmt(MkListOne(MkExpIdentifier(MkIdentifier("d")))));
2055 curContext = rowSet->__anon1.compound.context = __extension__ ({
2056 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
2058 __ecereInstance1->parent = globalContext, __ecereInstance1;
2060 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowSet->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpIdentifier(MkIdentifier("SetData")), args = MkList()))));
2061 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
2062 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("value")));
2063 curContext = globalContext;
2064 def = MkClassDefProperty(MkProperty(CopyList(entry->__anon1.__anon1.dataType->qualifiers, CopySpecifier), entry->__anon1.__anon1.dataType->declarator, CopyIdentifier(entry->id), rowSet, rowGet));
2065 def->__anon1.propertyDef->symbol->id = def->__anon1.propertyDef->symbol->idCode = symbolID;
2066 def->__anon1.propertyDef->__anon1.isDBProp = 1;
2067 def->memberAccess = 1;
2068 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*rowClassDefs), def);
2071 struct External * external;
2073 external = MkExternalDeclaration(MkDeclaration(MkListOne(MkSpecifierName("Field")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(fieldID)), (((void *)0))))));
2074 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ast), external);
2075 external->__anon1.declaration->declMode = table->declMode;
2077 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*addFieldStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(fieldID)), '=', MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier(tableID)), MkIdentifier("FindField")), args)))));
2078 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpString(entry->__anon1.__anon1.name));
2080 __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))));
2081 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpString(entry->__anon1.__anon1.name));
2082 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpClass(CopyList(entry->__anon1.__anon1.dataType->qualifiers, CopySpecifier), CopyDeclarator(entry->__anon1.__anon1.dataType->declarator)));
2083 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpConstant("0"));
2087 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIndex(MkExpIdentifier(MkIdentifier("indexes")), MkListOne(MkExpConstant("0"))), MkIdentifier("field")), '=', MkExpIdentifier(MkIdentifier(fieldID))))));
2088 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIndex(MkExpIdentifier(MkIdentifier("indexes")), MkListOne(MkExpConstant("0"))), MkIdentifier("order")), '=', MkExpIdentifier(MkIdentifier("ascending"))))));
2090 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier(tableID)), MkIdentifier("Index")), args))));
2091 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpConstant("1"));
2092 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("indexes")));
2101 struct ClassDefinition * _class;
2102 struct External * external;
2103 struct ClassDef * def;
2104 struct Expression * exp;
2107 _class = MkClass(table->symbol, MkListOne(MkSpecifierName("Id")), idClassDefs);
2108 PopContext(curContext);
2109 _class->declMode = table->declMode;
2110 external = MkExternalClass(_class);
2111 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert((&*ast), addAfter, external);
2112 addAfter = external;
2113 def = MkClassDefClassPropertyValue(MkIdentifier("table"), MkInitializerAssignment(exp = MkExpOp((((void *)0)), '&', MkExpDBTable(__ecereNameSpace__ecere__sys__CopyString(table->name)))));
2114 ProcessExpression(exp);
2115 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idClassDefs), def);
2118 def = MkClassDefClassPropertyValue(MkIdentifier("nameField"), MkInitializerAssignment(exp = MkExpOp((((void *)0)), '&', MkExpDBField(__ecereNameSpace__ecere__sys__CopyString(table->name), MkIdentifier(nameField)))));
2119 ProcessExpression(exp);
2120 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idClassDefs), def);
2123 if(table->definitions)
2125 struct DBTableEntry * entry;
2127 for(entry = (*table->definitions).first; entry; entry = entry->next)
2134 struct __ecereNameSpace__ecere__sys__OldList * args;
2135 struct Specifier * spec = entry->__anon1.__anon1.dataType->qualifiers ? (struct Specifier *)(*entry->__anon1.__anon1.dataType->qualifiers).first : (((void *)0));
2137 sprintf(fieldID, "__ecereDBField_%s_%s", tableName, entry->id->string);
2138 if(idClassDefs && spec)
2140 struct Statement * idSet = MkCompoundStmt(MkList(), MkList()), * idGet = MkCompoundStmt(MkList(), MkList());
2141 struct ClassDef * def;
2143 curContext = idGet->__anon1.compound.context = __extension__ ({
2144 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
2146 __ecereInstance1->parent = globalContext, __ecereInstance1;
2148 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->__anon1.compound.declarations), MkDeclarationInst(MkInstantiation(MkSpecifierName(rowClassName), MkExpIdentifier(MkIdentifier("r")), MkListOne(MkMembersInitList(MkListOne(MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("this"))))))))));
2149 if(spec->type == 1 && spec->__anon1.__anon1.symbol && spec->__anon1.__anon1.symbol->__anon1.registered && spec->__anon1.__anon1.symbol->__anon1.registered->type == 1)
2151 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->__anon1.compound.declarations), MkDeclarationInst(MkInstantiation(MkSpecifierName(spec->__anon1.__anon1.name), MkExpIdentifier(MkIdentifier("d")), (((void *)0)))));
2155 struct Expression * exp;
2157 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->__anon1.compound.declarations), MkDeclaration(CopyList(entry->__anon1.__anon1.dataType->qualifiers, CopySpecifier), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("d")), MkInitializerAssignment(exp = MkExpConstant("0"))))));
2158 exp->destType = __extension__ ({
2159 struct Type * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Type);
2161 __ecereInstance1->kind = 3, __ecereInstance1->refCount = 1, __ecereInstance1;
2164 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("r")), MkIdentifier("GetData")), args = MkList()))));
2165 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
2166 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("d")));
2167 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpOp((((void *)0)), DELETE, MkExpIdentifier(MkIdentifier("r"))))));
2168 if(spec->type == 1 && spec->__anon1.__anon1.symbol && spec->__anon1.__anon1.symbol->__anon1.registered && spec->__anon1.__anon1.symbol->__anon1.registered->type == 1)
2170 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("value")), '=', MkExpIdentifier(MkIdentifier("d"))))));
2173 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idGet->__anon1.compound.statements), MkReturnStmt(MkListOne(MkExpIdentifier(MkIdentifier("d")))));
2174 curContext = idSet->__anon1.compound.context = __extension__ ({
2175 struct Context * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_Context);
2177 __ecereInstance1->parent = globalContext, __ecereInstance1;
2179 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idSet->__anon1.compound.declarations), MkDeclarationInst(MkInstantiation(MkSpecifierName(rowClassName), MkExpIdentifier(MkIdentifier("r")), MkListOne(MkMembersInitList(MkListOne(MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("this"))))))))));
2180 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idSet->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("r")), MkIdentifier("SetData")), args = MkList()))));
2181 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier(fieldID)));
2182 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("value")));
2183 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idSet->__anon1.compound.statements), MkExpressionStmt(MkListOne(MkExpOp((((void *)0)), DELETE, MkExpIdentifier(MkIdentifier("r"))))));
2184 curContext = globalContext;
2185 def = MkClassDefProperty(MkProperty(CopyList(entry->__anon1.__anon1.dataType->qualifiers, CopySpecifier), CopyDeclarator(entry->__anon1.__anon1.dataType->declarator), CopyIdentifier(entry->id), idSet, idGet));
2186 def->__anon1.propertyDef->symbol->id = def->__anon1.propertyDef->symbol->idCode = symbolID;
2187 def->__anon1.propertyDef->__anon1.isDBProp = 1;
2188 def->memberAccess = 1;
2189 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*idClassDefs), def);
2195 if(entry->__anon1.items && (*entry->__anon1.items).count)
2198 struct DBIndexItem * item;
2200 unsigned int needTable = 0;
2203 if(entry->id || indexed)
2205 if(entry->id || (*entry->__anon1.items).count == 1)
2207 struct External * external;
2208 struct Identifier * id = entry->id ? entry->id : ((struct DBIndexItem *)(*entry->__anon1.items).first)->id;
2210 sprintf(indexID, "__ecereDBIndex_%s_%s", tableName, id->string);
2211 external = MkExternalDeclaration(MkDeclaration(MkListOne(MkSpecifierName("Table")), MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier(indexID)), (((void *)0))))));
2212 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*ast), external);
2213 external->__anon1.declaration->declMode = table->declMode;
2217 Compiler_Error(__ecereNameSpace__ecere__GetTranslatedString("ec", "Multiple field index requires a name\n", (((void *)0))));
2222 strcpy(indexID, tableID);
2224 for(c = 0, item = (*entry->__anon1.items).first; item; item = item->next, c++)
2228 sprintf(num, "%d", c);
2229 sprintf(fieldID, "__ecereDBField_%s_%s", tableName, item->id->string);
2230 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpMember(MkExpIndex(MkExpIdentifier(MkIdentifier("indexes")), MkListOne(MkExpConstant(num))), MkIdentifier("field")), '=', MkExpIdentifier(MkIdentifier(fieldID))))));
2231 __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"))))));
2233 sprintf(num, "%d", c);
2234 numIndexes = ((numIndexes > c) ? numIndexes : c);
2238 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier(indexID)), '=', MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier("db")), MkIdentifier("OpenTable")), args)))));
2239 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpString(table->name));
2241 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpInstance(MkInstantiation((((void *)0)), (((void *)0)), MkListOne(MkMembersInitList(members)))));
2242 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*members), MkMemberInit((((void *)0)), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("tableRows")))));
2245 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*indexStatements), MkExpressionStmt(MkListOne(MkExpCall(MkExpMember(MkExpIdentifier(MkIdentifier(indexID)), MkIdentifier("Index")), args))));
2246 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpConstant(num));
2247 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*args), MkExpIdentifier(MkIdentifier("indexes")));
2256 extern unsigned int inCompiler;
2258 extern void PrePreProcessClassDefinitions(void);
2260 extern struct External * curExternal;
2262 void ProcessDBTableDefinitions()
2264 struct External * external;
2266 addAfter = (((void *)0));
2267 curContext = globalContext;
2269 PrePreProcessClassDefinitions();
2270 DeclClass(0, "Field");
2271 DeclClass(0, "Table");
2272 DeclClass(0, "Row");
2275 if(ast != (((void *)0)))
2277 for(external = (*ast).first; external; external = external->next)
2279 curExternal = external;
2280 if(external->symbol)
2281 curSymbolID = external->symbol->idCode;
2282 addAfter = external->prev;
2283 switch(external->type)
2286 ProcessDBTable(external->__anon1.table);
2290 for(external = (*ast).first; external; external = external->next)
2292 curExternal = external;
2293 if(external->symbol)
2294 curSymbolID = external->symbol->idCode;
2295 addAfter = external->prev;
2296 switch(external->type)
2299 ProcessFunction(external->__anon1.function);
2302 ProcessDeclaration(external->__anon1.declaration);
2305 ProcessClass(external->__anon1._class);
2310 curContext = globalContext;
2313 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
2315 struct __ecereNameSpace__ecere__com__GlobalFunction;
2317 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);
2319 void __ecereRegisterModule_dbpass(struct __ecereNameSpace__ecere__com__Instance * module)
2321 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
2323 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ProcessDBTableDefinitions", "void ProcessDBTableDefinitions(void)", ProcessDBTableDefinitions, module, 1);
2326 void __ecereUnregisterModule_dbpass(struct __ecereNameSpace__ecere__com__Instance * module)