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__))
42 # define ecere_stdcall __stdcall
45 # define ecere_stdcall
48 #include <sys/types.h>
49 unsigned int parsingType;
51 extern unsigned int echoOn;
53 extern unsigned int type_yydebug;
57 unsigned int parseTypeError;
61 extern int structDeclMode;
63 extern void resetScanner();
65 struct __ecereNameSpace__ecere__sys__OldList
72 } __attribute__ ((gcc_struct));
74 struct __ecereNameSpace__ecere__sys__BTNode;
78 struct __ecereNameSpace__ecere__com__DataValue
93 } __attribute__ ((gcc_struct)) __anon1;
94 } __attribute__ ((gcc_struct));
96 struct __ecereNameSpace__ecere__com__SerialBuffer
98 unsigned char * _buffer;
102 } __attribute__ ((gcc_struct));
104 extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
106 extern void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
108 extern void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
110 extern void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
112 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
120 } __attribute__ ((gcc_struct));
138 struct InitDeclarator;
140 extern char * __ecereNameSpace__ecere__sys__CopyString(const char * string);
142 extern size_t strlen(const char * );
144 extern void Compiler_Warning(const char * format, ...);
146 extern const char * __ecereNameSpace__ecere__GetTranslatedString(const char * name, const char * string, const char * stringAndContext);
148 struct __ecereNameSpace__ecere__com__GlobalFunction;
150 void SetParsingType(unsigned int b)
155 extern struct __ecereNameSpace__ecere__sys__OldList * MkList(void);
157 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void * item);
159 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
161 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
165 struct CodePosition start;
166 struct CodePosition end;
167 } __attribute__ ((gcc_struct));
169 void resetScannerPos(struct CodePosition * pos);
171 extern struct Identifier * MkIdentifier(const char * string);
173 extern struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions);
175 extern struct Expression * MkExpIdentifier(struct Identifier * id);
177 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
179 extern struct Specifier * MkSpecifierName(const char * name);
181 extern struct Specifier * MkSpecifier(int specifier);
183 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
185 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
187 char * QMkString(const char * source)
197 for(i = 0; (ch = source[i]); i++)
200 if(ch == '\"' || ch == '\\')
203 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len + 3));
205 for(i = 0; (ch = source[i]); i++)
207 if(ch == '\"' || ch == '\\')
215 string = __ecereNameSpace__ecere__sys__CopyString("0");
219 extern struct Location yylloc;
221 struct Expression * QBrackets(struct Expression * exp)
223 struct __ecereNameSpace__ecere__sys__OldList * expList = MkList();
225 ListAdd(expList, exp);
226 return MkExpBrackets(expList);
229 struct Expression * QMkExpId(const char * id)
231 return MkExpIdentifier(MkIdentifier(id));
234 struct Expression * QMkExpCond(struct Expression * cond, struct Expression * exp, struct Expression * elseExp)
236 struct __ecereNameSpace__ecere__sys__OldList * expList = MkList();
238 ListAdd(expList, exp);
239 return MkExpCondition(cond, expList, elseExp);
242 struct Declaration * QMkDeclaration(const char * name, struct InitDeclarator * initDecl)
244 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList(), * initDecls = (((void *)0));
246 ListAdd(specs, MkSpecifierName(name));
249 initDecls = MkList();
250 ListAdd(initDecls, initDecl);
252 return MkDeclaration(specs, initDecls);
255 struct Declaration * QMkDeclarationBase(int base, struct InitDeclarator * initDecl)
257 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList(), * initDecls = (((void *)0));
259 ListAdd(specs, MkSpecifier(base));
262 initDecls = MkList();
263 ListAdd(initDecls, initDecl);
265 return MkDeclaration(specs, initDecls);
270 extern struct TypeName * parsedType;
272 extern void FreeTypeName(struct TypeName * typeName);
274 struct __ecereNameSpace__ecere__com__Class;
276 struct __ecereNameSpace__ecere__com__Instance
279 struct __ecereNameSpace__ecere__com__Class * _class;
281 } __attribute__ ((gcc_struct));
283 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
285 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, long long value);
287 extern void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
289 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char * name, void * function);
291 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
293 extern struct __ecereNameSpace__ecere__com__Instance * fileInput;
295 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write;
297 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
299 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
301 struct __ecereNameSpace__ecere__com__Property;
303 struct __ecereNameSpace__ecere__com__Property
305 struct __ecereNameSpace__ecere__com__Property * prev;
306 struct __ecereNameSpace__ecere__com__Property * next;
308 unsigned int isProperty;
311 struct __ecereNameSpace__ecere__com__Class * _class;
312 const char * dataTypeString;
313 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
314 struct Type * dataType;
315 void (* Set)(void * , int);
316 int (* Get)(void * );
317 unsigned int (* IsSet)(void * );
321 unsigned int conversion;
322 unsigned int watcherOffset;
323 const char * category;
324 unsigned int compiled;
325 unsigned int selfWatchable;
326 unsigned int isWatchable;
327 } __attribute__ ((gcc_struct));
329 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
331 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);
333 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void * , void * ));
335 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
341 struct Declarator * prev;
342 struct Declarator * next;
345 struct Symbol * symbol;
346 struct Declarator * declarator;
349 struct Identifier * identifier;
352 struct Expression * exp;
353 struct Expression * posExp;
354 struct Attrib * attrib;
355 } __attribute__ ((gcc_struct)) structDecl;
358 struct Expression * exp;
359 struct Specifier * enumClass;
360 } __attribute__ ((gcc_struct)) array;
363 struct __ecereNameSpace__ecere__sys__OldList * parameters;
364 } __attribute__ ((gcc_struct)) function;
367 struct Pointer * pointer;
368 } __attribute__ ((gcc_struct)) pointer;
371 struct ExtDecl * extended;
372 } __attribute__ ((gcc_struct)) extended;
373 } __attribute__ ((gcc_struct)) __anon1;
374 } __attribute__ ((gcc_struct));
376 extern struct Declarator * CopyDeclarator(struct Declarator * declarator);
378 extern void FreeDeclarator(struct Declarator * decl);
380 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
382 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
384 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
388 struct TypeName * prev;
389 struct TypeName * next;
391 struct __ecereNameSpace__ecere__sys__OldList * qualifiers;
392 struct Declarator * declarator;
394 struct Expression * bitCount;
395 } __attribute__ ((gcc_struct));
397 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
399 struct Declarator * GetFuncDecl(struct Declarator * decl)
401 struct Declarator * funcDecl = (((void *)0));
403 while(decl && decl->type != 1)
407 decl = decl->declarator;
412 struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl)
414 if(decl && decl->type != 1)
416 struct Declarator * base;
418 decl = CopyDeclarator(decl);
422 for(; base->declarator && base->declarator->type != 1; base = base->declarator)
429 FreeDeclarator(base->declarator);
430 base->declarator = baseDecl;
432 else if(base->type == 1)
434 FreeDeclarator(decl);
435 decl = (((void *)0));
443 struct Declarator * QMkPtrDecl(const char * id)
445 struct Declarator * declarator = id ? MkDeclaratorIdentifier(MkIdentifier(id)) : (((void *)0));
447 return MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), declarator);
450 struct TypeName * QMkType(const char * spec, struct Declarator * decl)
452 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
454 ListAdd(specs, MkSpecifierName(spec));
455 return MkTypeName(specs, decl);
458 struct TypeName * QMkClass(const char * spec, struct Declarator * decl)
460 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
462 ListAdd(specs, MkSpecifierName(spec));
463 return MkTypeName(specs, decl);
466 struct __ecereNameSpace__ecere__sys__BinaryTree;
468 struct __ecereNameSpace__ecere__sys__BinaryTree
470 struct __ecereNameSpace__ecere__sys__BTNode * root;
472 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
473 void (* FreeKey)(void * key);
474 } __attribute__ ((gcc_struct));
476 struct __ecereNameSpace__ecere__com__Method;
478 struct __ecereNameSpace__ecere__com__Method
481 struct __ecereNameSpace__ecere__com__Method * parent;
482 struct __ecereNameSpace__ecere__com__Method * left;
483 struct __ecereNameSpace__ecere__com__Method * right;
488 struct __ecereNameSpace__ecere__com__Class * _class;
490 const char * dataTypeString;
491 struct Type * dataType;
493 } __attribute__ ((gcc_struct));
495 struct __ecereNameSpace__ecere__com__Module;
497 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);
499 struct __ecereNameSpace__ecere__com__NameSpace;
501 struct __ecereNameSpace__ecere__com__NameSpace
504 struct __ecereNameSpace__ecere__com__NameSpace * btParent;
505 struct __ecereNameSpace__ecere__com__NameSpace * left;
506 struct __ecereNameSpace__ecere__com__NameSpace * right;
508 struct __ecereNameSpace__ecere__com__NameSpace * parent;
509 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
510 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
511 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
512 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
513 } __attribute__ ((gcc_struct));
515 struct __ecereNameSpace__ecere__com__Application
520 unsigned int isGUIApp;
521 struct __ecereNameSpace__ecere__sys__OldList allModules;
522 char * parsedCommand;
523 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
524 } __attribute__ ((gcc_struct));
526 struct __ecereNameSpace__ecere__com__Module
528 struct __ecereNameSpace__ecere__com__Instance * application;
529 struct __ecereNameSpace__ecere__sys__OldList classes;
530 struct __ecereNameSpace__ecere__sys__OldList defines;
531 struct __ecereNameSpace__ecere__sys__OldList functions;
532 struct __ecereNameSpace__ecere__sys__OldList modules;
533 struct __ecereNameSpace__ecere__com__Instance * prev;
534 struct __ecereNameSpace__ecere__com__Instance * next;
540 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
541 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
542 } __attribute__ ((gcc_struct));
544 void __ecereUnregisterModule_shortcuts(struct __ecereNameSpace__ecere__com__Instance * module)
549 struct __ecereNameSpace__ecere__com__DataMember;
551 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
557 const char * dataTypeString;
558 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
559 } __attribute__ ((gcc_struct)) __anon1;
560 struct __ecereNameSpace__ecere__com__DataValue expression;
563 const char * memberString;
566 struct __ecereNameSpace__ecere__com__DataMember * member;
567 struct __ecereNameSpace__ecere__com__Property * prop;
568 struct __ecereNameSpace__ecere__com__Method * method;
569 } __attribute__ ((gcc_struct)) __anon1;
570 } __attribute__ ((gcc_struct)) __anon2;
571 } __attribute__ ((gcc_struct)) __anon1;
572 } __attribute__ ((gcc_struct));
574 struct __ecereNameSpace__ecere__com__DataMember
576 struct __ecereNameSpace__ecere__com__DataMember * prev;
577 struct __ecereNameSpace__ecere__com__DataMember * next;
579 unsigned int isProperty;
582 struct __ecereNameSpace__ecere__com__Class * _class;
583 const char * dataTypeString;
584 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
585 struct Type * dataType;
589 struct __ecereNameSpace__ecere__sys__OldList members;
590 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
592 short structAlignment;
593 short pointerAlignment;
594 } __attribute__ ((gcc_struct));
596 struct __ecereNameSpace__ecere__com__Class
598 struct __ecereNameSpace__ecere__com__Class * prev;
599 struct __ecereNameSpace__ecere__com__Class * next;
605 unsigned int (* Constructor)(void * );
606 void (* Destructor)(void * );
609 struct __ecereNameSpace__ecere__com__Class * base;
610 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
611 struct __ecereNameSpace__ecere__sys__BinaryTree members;
612 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
613 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
614 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
615 struct __ecereNameSpace__ecere__sys__OldList derivatives;
619 struct __ecereNameSpace__ecere__com__Instance * module;
620 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
621 const char * dataTypeString;
622 struct Type * dataType;
624 int defaultAlignment;
625 void (* Initialize)();
627 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
628 const char * designerClass;
629 unsigned int noExpansion;
630 const char * defaultProperty;
631 unsigned int comRedefinition;
634 unsigned int internalDecl;
636 unsigned int computeSize;
637 short structAlignment;
638 short pointerAlignment;
639 int destructionWatchOffset;
641 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
642 int inheritanceAccess;
643 const char * fullName;
645 struct __ecereNameSpace__ecere__sys__OldList conversions;
646 struct __ecereNameSpace__ecere__sys__OldList templateParams;
647 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
648 struct __ecereNameSpace__ecere__com__Class * templateClass;
649 struct __ecereNameSpace__ecere__sys__OldList templatized;
651 unsigned int isInstanceClass;
652 unsigned int byValueSystemClass;
653 } __attribute__ ((gcc_struct));
655 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
657 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__File;
659 struct Declarator * SpecDeclFromString(const char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl)
661 struct Location oldLocation = yylloc;
662 struct Declarator * decl = (((void *)0));
663 struct __ecereNameSpace__ecere__com__Instance * backFileInput = fileInput;
667 fileInput = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
668 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void * buffer, unsigned int size, unsigned int count))__extension__ ({
669 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
671 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
672 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(fileInput, string, 1, strlen(string));
673 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))__extension__ ({
674 struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = fileInput;
676 __internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__sys__File->_vTbl;
677 })[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, 0, 0);
680 parsedType = (((void *)0));
681 declMode = structDeclMode = 0;
684 unsigned int oldParsingType = parsingType;
688 parsingType = oldParsingType;
690 declMode = structDeclMode = 2;
692 (__ecereNameSpace__ecere__com__eInstance_DecRef(fileInput), fileInput = 0);
695 if(parsedType->qualifiers)
697 struct Specifier * spec;
699 for(; (spec = (*parsedType->qualifiers).first); )
701 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*parsedType->qualifiers), spec);
702 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*specs), spec);
705 if(parsedType->bitCount)
707 parsedType->declarator = MkStructDeclarator(parsedType->declarator, parsedType->bitCount);
708 parsedType->bitCount = (((void *)0));
710 decl = PlugDeclarator(parsedType->declarator, baseDecl);
711 FreeTypeName(parsedType);
712 parsedType = (((void *)0));
715 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "parsing type %s\n", (((void *)0))), string);
720 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString("ec", "parsing type %s\n", (((void *)0))), string);
723 yylloc = oldLocation;
724 fileInput = backFileInput;
728 void __ecereRegisterModule_shortcuts(struct __ecereNameSpace__ecere__com__Instance * module)
730 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
732 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetParsingType", "void SetParsingType(bool b)", SetParsingType, module, 1);
733 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("PlugDeclarator", "Declarator PlugDeclarator(Declarator decl, Declarator baseDecl)", PlugDeclarator, module, 2);
734 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkPtrDecl", "Declarator QMkPtrDecl(const char * id)", QMkPtrDecl, module, 2);
735 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkType", "TypeName QMkType(const char * spec, Declarator decl)", QMkType, module, 2);
736 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkClass", "TypeName QMkClass(const char * spec, Declarator decl)", QMkClass, module, 2);
737 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QBrackets", "Expression QBrackets(Expression exp)", QBrackets, module, 2);
738 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkExpId", "Expression QMkExpId(const char * id)", QMkExpId, module, 2);
739 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkExpCond", "Expression QMkExpCond(Expression cond, Expression exp, Expression elseExp)", QMkExpCond, module, 2);
740 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkDeclaration", "Declaration QMkDeclaration(const char * name, InitDeclarator initDecl)", QMkDeclaration, module, 2);
741 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkDeclarationBase", "Declaration QMkDeclarationBase(int base, InitDeclarator initDecl)", QMkDeclarationBase, module, 2);
742 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkString", "char * QMkString(const char * source)", QMkString, module, 2);
743 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetFuncDecl", "Declarator GetFuncDecl(Declarator decl)", GetFuncDecl, module, 1);
744 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SpecDeclFromString", "Declarator SpecDeclFromString(const char * string, ecere::sys::OldList * specs, Declarator baseDecl)", SpecDeclFromString, module, 1);