1 /* Code generated from eC source file: shortcuts.ec */
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
7 #define __runtimePlatform 2
10 typedef long long int64;
11 typedef unsigned long long uint64;
15 #elif defined(__TINYC__)
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
27 typedef long long int64;
28 typedef unsigned long long uint64;
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
34 #define __ENDIAN_PAD(x) (8 - (x))
36 #define __ENDIAN_PAD(x) 0
39 #include <sys/types.h>
40 unsigned int parsingType;
42 extern unsigned int echoOn;
44 extern unsigned int type_yydebug;
48 unsigned int parseTypeError;
52 extern int structDeclMode;
54 extern void resetScanner();
56 struct __ecereNameSpace__ecere__sys__OldList
63 } __attribute__ ((gcc_struct));
65 struct __ecereNameSpace__ecere__sys__BTNode;
69 struct __ecereNameSpace__ecere__com__DataValue
84 } __attribute__ ((gcc_struct)) __anon1;
85 } __attribute__ ((gcc_struct));
87 struct __ecereNameSpace__ecere__com__SerialBuffer
89 unsigned char * _buffer;
93 } __attribute__ ((gcc_struct));
95 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
97 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
99 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
101 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
103 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
111 } __attribute__ ((gcc_struct));
129 struct InitDeclarator;
131 extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string);
133 extern size_t strlen(const char * );
135 extern void Compiler_Warning(const char * format, ...);
137 extern const char * __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char * string, const char * stringAndContext);
139 struct __ecereNameSpace__ecere__com__GlobalFunction;
141 void SetParsingType(unsigned int b)
146 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
148 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
150 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
152 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
156 struct CodePosition start;
157 struct CodePosition end;
158 } __attribute__ ((gcc_struct));
160 void resetScannerPos(struct CodePosition * pos);
162 extern struct Identifier * MkIdentifier(const char * string);
164 extern struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions);
166 extern struct Expression * MkExpIdentifier(struct Identifier * id);
168 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
170 extern struct Specifier * MkSpecifierName(const char * name);
172 extern struct Specifier * MkSpecifier(int specifier);
174 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
176 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
178 char * QMkString(const char * source)
188 for(i = 0; (ch = source[i]); i++)
191 if(ch == '\"' || ch == '\\')
194 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len + 3));
196 for(i = 0; (ch = source[i]); i++)
198 if(ch == '\"' || ch == '\\')
206 string = __ecereNameSpace__ecere__sys__CopyString("0");
210 extern struct Location yylloc;
212 struct Expression * QBrackets(struct Expression * exp)
214 struct __ecereNameSpace__ecere__sys__OldList * expList = MkList();
216 ListAdd(expList, exp);
217 return MkExpBrackets(expList);
220 struct Expression * QMkExpId(const char * id)
222 return MkExpIdentifier(MkIdentifier(id));
225 struct Expression * QMkExpCond(struct Expression * cond, struct Expression * exp, struct Expression * elseExp)
227 struct __ecereNameSpace__ecere__sys__OldList * expList = MkList();
229 ListAdd(expList, exp);
230 return MkExpCondition(cond, expList, elseExp);
233 struct Declaration * QMkDeclaration(const char * name, struct InitDeclarator * initDecl)
235 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList(), * initDecls = (((void *)0));
237 ListAdd(specs, MkSpecifierName(name));
240 initDecls = MkList();
241 ListAdd(initDecls, initDecl);
243 return MkDeclaration(specs, initDecls);
246 struct Declaration * QMkDeclarationBase(int base, struct InitDeclarator * initDecl)
248 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList(), * initDecls = (((void *)0));
250 ListAdd(specs, MkSpecifier(base));
253 initDecls = MkList();
254 ListAdd(initDecls, initDecl);
256 return MkDeclaration(specs, initDecls);
261 extern struct TypeName * parsedType;
263 extern void FreeTypeName(struct TypeName * typeName);
265 struct __ecereNameSpace__ecere__com__Class;
267 struct __ecereNameSpace__ecere__com__Instance
270 struct __ecereNameSpace__ecere__com__Class * _class;
272 } __attribute__ ((gcc_struct));
274 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
276 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
278 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
280 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
282 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
284 extern struct __ecereNameSpace__ecere__com__Instance * fileInput;
286 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write;
288 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
290 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
292 struct __ecereNameSpace__ecere__com__Property;
294 struct __ecereNameSpace__ecere__com__Property
296 struct __ecereNameSpace__ecere__com__Property * prev;
297 struct __ecereNameSpace__ecere__com__Property * next;
299 unsigned int isProperty;
302 struct __ecereNameSpace__ecere__com__Class * _class;
303 const char * dataTypeString;
304 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
305 struct Type * dataType;
306 void (* Set)(void * , int);
307 int (* Get)(void * );
308 unsigned int (* IsSet)(void * );
312 unsigned int conversion;
313 unsigned int watcherOffset;
314 const char * category;
315 unsigned int compiled;
316 unsigned int selfWatchable;
317 unsigned int isWatchable;
318 } __attribute__ ((gcc_struct));
320 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
322 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);
324 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
326 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
332 struct Declarator * prev;
333 struct Declarator * next;
336 struct Symbol * symbol;
337 struct Declarator * declarator;
340 struct Identifier * identifier;
343 struct Expression * exp;
344 struct Expression * posExp;
345 struct Attrib * attrib;
346 } __attribute__ ((gcc_struct)) structDecl;
349 struct Expression * exp;
350 struct Specifier * enumClass;
351 } __attribute__ ((gcc_struct)) array;
354 struct __ecereNameSpace__ecere__sys__OldList * parameters;
355 } __attribute__ ((gcc_struct)) function;
358 struct Pointer * pointer;
359 } __attribute__ ((gcc_struct)) pointer;
362 struct ExtDecl * extended;
363 } __attribute__ ((gcc_struct)) extended;
364 } __attribute__ ((gcc_struct)) __anon1;
365 } __attribute__ ((gcc_struct));
367 extern struct Declarator * CopyDeclarator(struct Declarator * declarator);
369 extern void FreeDeclarator(struct Declarator * decl);
371 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
373 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
375 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
379 struct TypeName * prev;
380 struct TypeName * next;
382 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
383 struct Declarator * declarator;
385 struct Expression * bitCount;
386 } __attribute__ ((gcc_struct));
388 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
390 struct Declarator * GetFuncDecl(struct Declarator * decl)
392 struct Declarator * funcDecl = (((void *)0));
394 while(decl && decl->type != 1)
398 decl = decl->declarator;
403 struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl)
405 if(decl && decl->type != 1)
407 struct Declarator * base;
409 decl = CopyDeclarator(decl);
413 for(; base->declarator && base->declarator->type != 1; base = base->declarator)
420 FreeDeclarator(base->declarator);
421 base->declarator = baseDecl;
423 else if(base->type == 1)
425 FreeDeclarator(decl);
426 decl = (((void *)0));
434 struct Declarator * QMkPtrDecl(const char * id)
436 struct Declarator * declarator = id ? MkDeclaratorIdentifier(MkIdentifier(id)) : (((void *)0));
438 return MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), declarator);
441 struct TypeName * QMkType(const char * spec, struct Declarator * decl)
443 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
445 ListAdd(specs, MkSpecifierName(spec));
446 return MkTypeName(specs, decl);
449 struct TypeName * QMkClass(const char * spec, struct Declarator * decl)
451 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
453 ListAdd(specs, MkSpecifierName(spec));
454 return MkTypeName(specs, decl);
457 struct __ecereNameSpace__ecere__sys__BinaryTree;
459 struct __ecereNameSpace__ecere__sys__BinaryTree
461 struct __ecereNameSpace__ecere__sys__BTNode * root;
463 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
464 void (* FreeKey)(void * key);
465 } __attribute__ ((gcc_struct));
467 struct __ecereNameSpace__ecere__com__Method;
469 struct __ecereNameSpace__ecere__com__Method
472 struct __ecereNameSpace__ecere__com__Method * parent;
473 struct __ecereNameSpace__ecere__com__Method * left;
474 struct __ecereNameSpace__ecere__com__Method * right;
479 struct __ecereNameSpace__ecere__com__Class * _class;
481 const char * dataTypeString;
482 struct Type * dataType;
484 } __attribute__ ((gcc_struct));
486 struct __ecereNameSpace__ecere__com__Module;
488 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);
490 struct __ecereNameSpace__ecere__com__NameSpace;
492 struct __ecereNameSpace__ecere__com__NameSpace
495 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
496 struct __ecereNameSpace__ecere__com__NameSpace * left;
497 struct __ecereNameSpace__ecere__com__NameSpace * right;
499 struct __ecereNameSpace__ecere__com__NameSpace * parent;
500 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
501 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
502 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
503 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
504 } __attribute__ ((gcc_struct));
506 struct __ecereNameSpace__ecere__com__Application
511 unsigned int isGUIApp;
512 struct __ecereNameSpace__ecere__sys__OldList allModules;
513 char * parsedCommand;
514 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
515 } __attribute__ ((gcc_struct));
517 struct __ecereNameSpace__ecere__com__Module
519 struct __ecereNameSpace__ecere__com__Instance * application;
520 struct __ecereNameSpace__ecere__sys__OldList classes;
521 struct __ecereNameSpace__ecere__sys__OldList defines;
522 struct __ecereNameSpace__ecere__sys__OldList functions;
523 struct __ecereNameSpace__ecere__sys__OldList modules;
524 struct __ecereNameSpace__ecere__com__Instance * prev;
525 struct __ecereNameSpace__ecere__com__Instance * next;
531 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
532 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
533 } __attribute__ ((gcc_struct));
535 void __ecereUnregisterModule_shortcuts(struct __ecereNameSpace__ecere__com__Instance * module)
540 struct __ecereNameSpace__ecere__com__DataMember;
542 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
548 const char * dataTypeString;
549 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
550 } __attribute__ ((gcc_struct)) __anon1;
551 struct __ecereNameSpace__ecere__com__DataValue expression;
554 const char * memberString;
557 struct __ecereNameSpace__ecere__com__DataMember * member;
558 struct __ecereNameSpace__ecere__com__Property * prop;
559 struct __ecereNameSpace__ecere__com__Method * method;
560 } __attribute__ ((gcc_struct)) __anon1;
561 } __attribute__ ((gcc_struct)) __anon2;
562 } __attribute__ ((gcc_struct)) __anon1;
563 } __attribute__ ((gcc_struct));
565 struct __ecereNameSpace__ecere__com__DataMember
567 struct __ecereNameSpace__ecere__com__DataMember * prev;
568 struct __ecereNameSpace__ecere__com__DataMember * next;
570 unsigned int isProperty;
573 struct __ecereNameSpace__ecere__com__Class * _class;
574 const char * dataTypeString;
575 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
576 struct Type * dataType;
580 struct __ecereNameSpace__ecere__sys__OldList members;
581 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
583 short structAlignment;
584 short pointerAlignment;
585 } __attribute__ ((gcc_struct));
587 struct __ecereNameSpace__ecere__com__Class
589 struct __ecereNameSpace__ecere__com__Class * prev;
590 struct __ecereNameSpace__ecere__com__Class * next;
596 unsigned int (* Constructor)(void * );
597 void (* Destructor)(void * );
600 struct __ecereNameSpace__ecere__com__Class * base;
601 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
602 struct __ecereNameSpace__ecere__sys__BinaryTree members;
603 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
604 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
605 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
606 struct __ecereNameSpace__ecere__sys__OldList derivatives;
610 struct __ecereNameSpace__ecere__com__Instance * module;
611 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
612 const char * dataTypeString;
613 struct Type * dataType;
615 int defaultAlignment;
616 void (* Initialize)();
618 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
619 const char * designerClass;
620 unsigned int noExpansion;
621 const char * defaultProperty;
622 unsigned int comRedefinition;
625 unsigned int internalDecl;
627 unsigned int computeSize;
628 short structAlignment;
629 short pointerAlignment;
630 int destructionWatchOffset;
632 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
633 int inheritanceAccess;
634 const char * fullName;
636 struct __ecereNameSpace__ecere__sys__OldList conversions;
637 struct __ecereNameSpace__ecere__sys__OldList templateParams;
638 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
639 struct __ecereNameSpace__ecere__com__Class * templateClass;
640 struct __ecereNameSpace__ecere__sys__OldList templatized;
642 unsigned int isInstanceClass;
643 unsigned int byValueSystemClass;
644 } __attribute__ ((gcc_struct));
646 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
648 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
650 struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl)
652 struct Location oldLocation = yylloc;
653 struct Declarator * decl = (((void *)0));
654 struct __ecereNameSpace__ecere__com__Instance * backFileInput = fileInput;
658 fileInput = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
659 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void * buffer, unsigned int size, unsigned int count))__extension__ ({
660 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
662 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
663 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(fileInput, string, 1, strlen(string));
664 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
665 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
667 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
668 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, 0, 0);
671 parsedType = (((void *)0));
672 declMode = structDeclMode = 0;
675 unsigned int oldParsingType = parsingType;
679 parsingType = oldParsingType;
681 declMode = structDeclMode = 2;
683 (__ecereNameSpace__ecere__com__eInstance_DecRef(fileInput), fileInput = 0);
686 if(parsedType->qualifiers)
688 struct Specifier * spec;
690 for(; (spec = (*parsedType->qualifiers).first); )
692 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*parsedType->qualifiers), spec);
693 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*specs), spec);
696 if(parsedType->bitCount)
698 parsedType->declarator = MkStructDeclarator(parsedType->declarator, parsedType->bitCount);
699 parsedType->bitCount = (((void *)0));
701 decl = PlugDeclarator(parsedType->declarator, baseDecl);
702 FreeTypeName(parsedType);
703 parsedType = (((void *)0));
706 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "parsing type %s\n", (((void *)0))), string);
711 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "parsing type %s\n", (((void *)0))), string);
714 yylloc = oldLocation;
715 fileInput = backFileInput;
719 void __ecereRegisterModule_shortcuts(struct __ecereNameSpace__ecere__com__Instance * module)
721 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
723 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetParsingType", "void SetParsingType(bool b)", SetParsingType, module, 1);
724 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("PlugDeclarator", "Declarator PlugDeclarator(Declarator decl, Declarator baseDecl)", PlugDeclarator, module, 2);
725 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkPtrDecl", "Declarator QMkPtrDecl(const char * id)", QMkPtrDecl, module, 2);
726 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkType", "TypeName QMkType(const char * spec, Declarator decl)", QMkType, module, 2);
727 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkClass", "TypeName QMkClass(const char * spec, Declarator decl)", QMkClass, module, 2);
728 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QBrackets", "Expression QBrackets(Expression exp)", QBrackets, module, 2);
729 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkExpId", "Expression QMkExpId(const char * id)", QMkExpId, module, 2);
730 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkExpCond", "Expression QMkExpCond(Expression cond, Expression exp, Expression elseExp)", QMkExpCond, module, 2);
731 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkDeclaration", "Declaration QMkDeclaration(const char * name, InitDeclarator initDecl)", QMkDeclaration, module, 2);
732 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkDeclarationBase", "Declaration QMkDeclarationBase(int base, InitDeclarator initDecl)", QMkDeclarationBase, module, 2);
733 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkString", "char * QMkString(const char * source)", QMkString, module, 2);
734 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetFuncDecl", "Declarator GetFuncDecl(Declarator decl)", GetFuncDecl, module, 1);
735 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SpecDeclFromString", "Declarator SpecDeclFromString(const char * string, ecere::sys::OldList * specs, Declarator baseDecl)", SpecDeclFromString, module, 1);