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 # if defined(__GNUC__) || defined(__TINYC__)
40 # define ecere_stdcall __attribute__((__stdcall__))
41 # define ecere_gcc_struct __attribute__((gcc_struct))
43 # define ecere_stdcall __stdcall
44 # define ecere_gcc_struct
47 # define ecere_stdcall
48 # define ecere_gcc_struct
51 #include <sys/types.h>
52 unsigned int parsingType;
54 extern unsigned int echoOn;
56 extern unsigned int type_yydebug;
60 unsigned int parseTypeError;
64 extern int structDeclMode;
66 extern void resetScanner();
68 struct __ecereNameSpace__ecere__sys__OldList
77 struct __ecereNameSpace__ecere__sys__BTNode;
81 struct __ecereNameSpace__ecere__com__DataValue
96 } ecere_gcc_struct __anon1;
99 struct __ecereNameSpace__ecere__com__SerialBuffer
101 unsigned char * _buffer;
107 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
109 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
111 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
113 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
115 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
141 struct InitDeclarator;
143 extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string);
145 extern size_t strlen(const char * );
147 extern void Compiler_Warning(const char * format, ...);
149 extern const char * __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char * string, const char * stringAndContext);
151 struct __ecereNameSpace__ecere__com__GlobalFunction;
153 void SetParsingType(unsigned int b)
158 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
160 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
162 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
164 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
168 struct CodePosition start;
169 struct CodePosition end;
172 void resetScannerPos(struct CodePosition * pos);
174 extern struct Identifier * MkIdentifier(const char * string);
176 extern struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions);
178 extern struct Expression * MkExpIdentifier(struct Identifier * id);
180 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
182 extern struct Specifier * MkSpecifierName(const char * name);
184 extern struct Specifier * MkSpecifier(int specifier);
186 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
188 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
190 char * QMkString(const char * source)
200 for(i = 0; (ch = source[i]); i++)
203 if(ch == '\"' || ch == '\\')
206 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len + 3));
208 for(i = 0; (ch = source[i]); i++)
210 if(ch == '\"' || ch == '\\')
218 string = __ecereNameSpace__ecere__sys__CopyString("0");
222 extern struct Location yylloc;
224 struct Expression * QBrackets(struct Expression * exp)
226 struct __ecereNameSpace__ecere__sys__OldList * expList = MkList();
228 ListAdd(expList, exp);
229 return MkExpBrackets(expList);
232 struct Expression * QMkExpId(const char * id)
234 return MkExpIdentifier(MkIdentifier(id));
237 struct Expression * QMkExpCond(struct Expression * cond, struct Expression * exp, struct Expression * elseExp)
239 struct __ecereNameSpace__ecere__sys__OldList * expList = MkList();
241 ListAdd(expList, exp);
242 return MkExpCondition(cond, expList, elseExp);
245 struct Declaration * QMkDeclaration(const char * name, struct InitDeclarator * initDecl)
247 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList(), * initDecls = (((void *)0));
249 ListAdd(specs, MkSpecifierName(name));
252 initDecls = MkList();
253 ListAdd(initDecls, initDecl);
255 return MkDeclaration(specs, initDecls);
258 struct Declaration * QMkDeclarationBase(int base, struct InitDeclarator * initDecl)
260 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList(), * initDecls = (((void *)0));
262 ListAdd(specs, MkSpecifier(base));
265 initDecls = MkList();
266 ListAdd(initDecls, initDecl);
268 return MkDeclaration(specs, initDecls);
273 extern struct TypeName * parsedType;
275 extern void FreeTypeName(struct TypeName * typeName);
277 struct __ecereNameSpace__ecere__com__Class;
279 struct __ecereNameSpace__ecere__com__Instance
282 struct __ecereNameSpace__ecere__com__Class * _class;
286 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
288 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
290 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
292 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
294 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
296 extern struct __ecereNameSpace__ecere__com__Instance * fileInput;
298 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write;
300 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
302 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
304 struct __ecereNameSpace__ecere__com__Property;
306 struct __ecereNameSpace__ecere__com__Property
308 struct __ecereNameSpace__ecere__com__Property * prev;
309 struct __ecereNameSpace__ecere__com__Property * next;
311 unsigned int isProperty;
314 struct __ecereNameSpace__ecere__com__Class * _class;
315 const char * dataTypeString;
316 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
317 struct Type * dataType;
318 void (* Set)(void * , int);
319 int (* Get)(void * );
320 unsigned int (* IsSet)(void * );
324 unsigned int conversion;
325 unsigned int watcherOffset;
326 const char * category;
327 unsigned int compiled;
328 unsigned int selfWatchable;
329 unsigned int isWatchable;
332 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
334 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);
336 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
338 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
344 struct Declarator * prev;
345 struct Declarator * next;
348 struct Symbol * symbol;
349 struct Declarator * declarator;
352 struct Identifier * identifier;
355 struct Expression * exp;
356 struct Expression * posExp;
357 struct Attrib * attrib;
358 } ecere_gcc_struct structDecl;
361 struct Expression * exp;
362 struct Specifier * enumClass;
363 } ecere_gcc_struct array;
366 struct __ecereNameSpace__ecere__sys__OldList * parameters;
367 } ecere_gcc_struct function;
370 struct Pointer * pointer;
371 } ecere_gcc_struct pointer;
374 struct ExtDecl * extended;
375 } ecere_gcc_struct extended;
376 } ecere_gcc_struct __anon1;
379 extern struct Declarator * CopyDeclarator(struct Declarator * declarator);
381 extern void FreeDeclarator(struct Declarator * decl);
383 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
385 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
387 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
391 struct TypeName * prev;
392 struct TypeName * next;
394 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
395 struct Declarator * declarator;
397 struct Expression * bitCount;
400 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
402 struct Declarator * GetFuncDecl(struct Declarator * decl)
404 struct Declarator * funcDecl = (((void *)0));
406 while(decl && decl->type != 1)
410 decl = decl->declarator;
415 struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl)
417 if(decl && decl->type != 1)
419 struct Declarator * base;
421 decl = CopyDeclarator(decl);
425 for(; base->declarator && base->declarator->type != 1; base = base->declarator)
432 FreeDeclarator(base->declarator);
433 base->declarator = baseDecl;
435 else if(base->type == 1)
437 FreeDeclarator(decl);
438 decl = (((void *)0));
446 struct Declarator * QMkPtrDecl(const char * id)
448 struct Declarator * declarator = id ? MkDeclaratorIdentifier(MkIdentifier(id)) : (((void *)0));
450 return MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), declarator);
453 struct TypeName * QMkType(const char * spec, struct Declarator * decl)
455 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
457 ListAdd(specs, MkSpecifierName(spec));
458 return MkTypeName(specs, decl);
461 struct TypeName * QMkClass(const char * spec, struct Declarator * decl)
463 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
465 ListAdd(specs, MkSpecifierName(spec));
466 return MkTypeName(specs, decl);
469 struct __ecereNameSpace__ecere__sys__BinaryTree;
471 struct __ecereNameSpace__ecere__sys__BinaryTree
473 struct __ecereNameSpace__ecere__sys__BTNode * root;
475 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
476 void (* FreeKey)(void * key);
479 struct __ecereNameSpace__ecere__com__Method;
481 struct __ecereNameSpace__ecere__com__Method
484 struct __ecereNameSpace__ecere__com__Method * parent;
485 struct __ecereNameSpace__ecere__com__Method * left;
486 struct __ecereNameSpace__ecere__com__Method * right;
491 struct __ecereNameSpace__ecere__com__Class * _class;
493 const char * dataTypeString;
494 struct Type * dataType;
498 struct __ecereNameSpace__ecere__com__Module;
500 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);
502 struct __ecereNameSpace__ecere__com__NameSpace;
504 struct __ecereNameSpace__ecere__com__NameSpace
507 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
508 struct __ecereNameSpace__ecere__com__NameSpace * left;
509 struct __ecereNameSpace__ecere__com__NameSpace * right;
511 struct __ecereNameSpace__ecere__com__NameSpace * parent;
512 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
513 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
514 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
515 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
518 struct __ecereNameSpace__ecere__com__Application
523 unsigned int isGUIApp;
524 struct __ecereNameSpace__ecere__sys__OldList allModules;
525 char * parsedCommand;
526 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
529 struct __ecereNameSpace__ecere__com__Module
531 struct __ecereNameSpace__ecere__com__Instance * application;
532 struct __ecereNameSpace__ecere__sys__OldList classes;
533 struct __ecereNameSpace__ecere__sys__OldList defines;
534 struct __ecereNameSpace__ecere__sys__OldList functions;
535 struct __ecereNameSpace__ecere__sys__OldList modules;
536 struct __ecereNameSpace__ecere__com__Instance * prev;
537 struct __ecereNameSpace__ecere__com__Instance * next;
543 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
544 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
547 void __ecereUnregisterModule_shortcuts(struct __ecereNameSpace__ecere__com__Instance * module)
552 struct __ecereNameSpace__ecere__com__DataMember;
554 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
560 const char * dataTypeString;
561 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
562 } ecere_gcc_struct __anon1;
563 struct __ecereNameSpace__ecere__com__DataValue expression;
566 const char * memberString;
569 struct __ecereNameSpace__ecere__com__DataMember * member;
570 struct __ecereNameSpace__ecere__com__Property * prop;
571 struct __ecereNameSpace__ecere__com__Method * method;
572 } ecere_gcc_struct __anon1;
573 } ecere_gcc_struct __anon2;
574 } ecere_gcc_struct __anon1;
577 struct __ecereNameSpace__ecere__com__DataMember
579 struct __ecereNameSpace__ecere__com__DataMember * prev;
580 struct __ecereNameSpace__ecere__com__DataMember * next;
582 unsigned int isProperty;
585 struct __ecereNameSpace__ecere__com__Class * _class;
586 const char * dataTypeString;
587 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
588 struct Type * dataType;
592 struct __ecereNameSpace__ecere__sys__OldList members;
593 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
595 short structAlignment;
596 short pointerAlignment;
599 struct __ecereNameSpace__ecere__com__Class
601 struct __ecereNameSpace__ecere__com__Class * prev;
602 struct __ecereNameSpace__ecere__com__Class * next;
608 unsigned int (* Constructor)(void * );
609 void (* Destructor)(void * );
612 struct __ecereNameSpace__ecere__com__Class * base;
613 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
614 struct __ecereNameSpace__ecere__sys__BinaryTree members;
615 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
616 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
617 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
618 struct __ecereNameSpace__ecere__sys__OldList derivatives;
622 struct __ecereNameSpace__ecere__com__Instance * module;
623 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
624 const char * dataTypeString;
625 struct Type * dataType;
627 int defaultAlignment;
628 void (* Initialize)();
630 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
631 const char * designerClass;
632 unsigned int noExpansion;
633 const char * defaultProperty;
634 unsigned int comRedefinition;
637 unsigned int internalDecl;
639 unsigned int computeSize;
640 short structAlignment;
641 short pointerAlignment;
642 int destructionWatchOffset;
644 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
645 int inheritanceAccess;
646 const char * fullName;
648 struct __ecereNameSpace__ecere__sys__OldList conversions;
649 struct __ecereNameSpace__ecere__sys__OldList templateParams;
650 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
651 struct __ecereNameSpace__ecere__com__Class * templateClass;
652 struct __ecereNameSpace__ecere__sys__OldList templatized;
654 unsigned int isInstanceClass;
655 unsigned int byValueSystemClass;
658 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
660 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
662 struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl)
664 struct Location oldLocation = yylloc;
665 struct Declarator * decl = (((void *)0));
666 struct __ecereNameSpace__ecere__com__Instance * backFileInput = fileInput;
670 fileInput = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
671 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void * buffer, unsigned int size, unsigned int count))__extension__ ({
672 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
674 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
675 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(fileInput, string, 1, strlen(string));
676 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
677 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
679 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
680 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, 0, 0);
683 parsedType = (((void *)0));
684 declMode = structDeclMode = 0;
687 unsigned int oldParsingType = parsingType;
691 parsingType = oldParsingType;
693 declMode = structDeclMode = 2;
695 (__ecereNameSpace__ecere__com__eInstance_DecRef(fileInput), fileInput = 0);
698 if(parsedType->qualifiers)
700 struct Specifier * spec;
702 for(; (spec = (*parsedType->qualifiers).first); )
704 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*parsedType->qualifiers), spec);
705 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*specs), spec);
708 if(parsedType->bitCount)
710 parsedType->declarator = MkStructDeclarator(parsedType->declarator, parsedType->bitCount);
711 parsedType->bitCount = (((void *)0));
713 decl = PlugDeclarator(parsedType->declarator, baseDecl);
714 FreeTypeName(parsedType);
715 parsedType = (((void *)0));
718 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "parsing type %s\n", (((void *)0))), string);
723 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "parsing type %s\n", (((void *)0))), string);
726 yylloc = oldLocation;
727 fileInput = backFileInput;
731 void __ecereRegisterModule_shortcuts(struct __ecereNameSpace__ecere__com__Instance * module)
733 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
735 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetParsingType", "void SetParsingType(bool b)", SetParsingType, module, 1);
736 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("PlugDeclarator", "Declarator PlugDeclarator(Declarator decl, Declarator baseDecl)", PlugDeclarator, module, 2);
737 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkPtrDecl", "Declarator QMkPtrDecl(const char * id)", QMkPtrDecl, module, 2);
738 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkType", "TypeName QMkType(const char * spec, Declarator decl)", QMkType, module, 2);
739 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkClass", "TypeName QMkClass(const char * spec, Declarator decl)", QMkClass, module, 2);
740 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QBrackets", "Expression QBrackets(Expression exp)", QBrackets, module, 2);
741 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkExpId", "Expression QMkExpId(const char * id)", QMkExpId, module, 2);
742 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkExpCond", "Expression QMkExpCond(Expression cond, Expression exp, Expression elseExp)", QMkExpCond, module, 2);
743 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkDeclaration", "Declaration QMkDeclaration(const char * name, InitDeclarator initDecl)", QMkDeclaration, module, 2);
744 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkDeclarationBase", "Declaration QMkDeclarationBase(int base, InitDeclarator initDecl)", QMkDeclarationBase, module, 2);
745 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkString", "char * QMkString(const char * source)", QMkString, module, 2);
746 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetFuncDecl", "Declarator GetFuncDecl(Declarator decl)", GetFuncDecl, module, 1);
747 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SpecDeclFromString", "Declarator SpecDeclFromString(const char * string, ecere::sys::OldList * specs, Declarator baseDecl)", SpecDeclFromString, module, 1);