compiler: Fixed __declspec compiling issue on Linux; ide: Fixed crash on null workspace
[sdk] / compiler / bootstrap / libec / bootstrap / shortcuts.c
1 #if defined(__GNUC__)
2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #elif defined(__TINYC__)
5 #include <stdarg.h>
6 #define __builtin_va_list va_list
7 #define __builtin_va_start va_start
8 #define __builtin_va_end va_end
9 #ifdef _WIN32
10 #define strcasecmp stricmp
11 #define strncasecmp strnicmp
12 #define __declspec(x) __attribute__((x))
13 #else
14 #define __declspec(x)
15 #endif
16 typedef long long int64;
17 typedef unsigned long long uint64;
18 #else
19 typedef __int64 int64;
20 typedef unsigned __int64 uint64;
21 #endif
22 #ifdef __BIG_ENDIAN__
23 #define __ENDIAN_PAD(x) (8 - (x))
24 #else
25 #define __ENDIAN_PAD(x) 0
26 #endif
27 #include <stdint.h>
28 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
29
30 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
31
32 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
33
34 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
35
36 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
37
38 struct __ecereNameSpace__ecere__sys__BTNode;
39
40 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
41
42 struct __ecereNameSpace__ecere__sys__BinaryTree
43 {
44 struct __ecereNameSpace__ecere__sys__BTNode * root;
45 int count;
46 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
47 void (*  FreeKey)(void *  key);
48 } __attribute__ ((gcc_struct));
49
50 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
51
52 struct __ecereNameSpace__ecere__sys__OldList
53 {
54 void *  first;
55 void *  last;
56 int count;
57 unsigned int offset;
58 unsigned int circ;
59 } __attribute__ ((gcc_struct));
60
61 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
62
63 struct __ecereNameSpace__ecere__com__Method
64 {
65 char *  name;
66 struct __ecereNameSpace__ecere__com__Method * parent;
67 struct __ecereNameSpace__ecere__com__Method * left;
68 struct __ecereNameSpace__ecere__com__Method * right;
69 int depth;
70 int (*  function)();
71 int vid;
72 int type;
73 struct __ecereNameSpace__ecere__com__Class * _class;
74 void *  symbol;
75 char *  dataTypeString;
76 struct Type * dataType;
77 int memberAccess;
78 } __attribute__ ((gcc_struct));
79
80 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
81
82 struct __ecereNameSpace__ecere__com__Property
83 {
84 struct __ecereNameSpace__ecere__com__Property * prev;
85 struct __ecereNameSpace__ecere__com__Property * next;
86 char *  name;
87 unsigned int isProperty;
88 int memberAccess;
89 int id;
90 struct __ecereNameSpace__ecere__com__Class * _class;
91 char *  dataTypeString;
92 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
93 struct Type * dataType;
94 void (*  Set)();
95 int (*  Get)();
96 unsigned int (*  IsSet)();
97 void *  data;
98 void *  symbol;
99 int vid;
100 unsigned int conversion;
101 unsigned int watcherOffset;
102 char *  category;
103 unsigned int compiled;
104 unsigned int selfWatchable;
105 unsigned int isWatchable;
106 } __attribute__ ((gcc_struct));
107
108 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_CodePosition;
109
110 struct CodePosition
111 {
112 int line;
113 int charPos;
114 int pos;
115 unsigned int included;
116 } __attribute__ ((gcc_struct));
117
118 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
119
120 struct Location
121 {
122 struct CodePosition start;
123 struct CodePosition end;
124 } __attribute__ ((gcc_struct));
125
126 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Attrib;
127
128 struct Attrib;
129
130 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ExtDecl;
131
132 struct ExtDecl;
133
134 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassDefinition;
135
136 struct ClassDefinition;
137
138 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Context;
139
140 struct Context;
141
142 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Instantiation;
143
144 struct Instantiation;
145
146 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declaration;
147
148 struct Declaration;
149
150 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Statement;
151
152 struct Statement;
153
154 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TypeName;
155
156 struct TypeName
157 {
158 struct TypeName * prev;
159 struct TypeName * next;
160 struct Location loc;
161 struct __ecereNameSpace__ecere__sys__OldList *  qualifiers;
162 struct Declarator * declarator;
163 int classObjectType;
164 struct Expression * bitCount;
165 } __attribute__ ((gcc_struct));
166
167 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Initializer;
168
169 struct Initializer;
170
171 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
172
173 struct __ecereNameSpace__ecere__com__DataValue
174 {
175 union
176 {
177 char c;
178 unsigned char uc;
179 short s;
180 unsigned short us;
181 int i;
182 unsigned int ui;
183 void *  p;
184 float f;
185 double d;
186 long long i64;
187 uint64 ui64;
188 } __attribute__ ((gcc_struct));
189 } __attribute__ ((gcc_struct));
190
191 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Expression;
192
193 struct Expression;
194
195 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateDatatype;
196
197 struct TemplateDatatype;
198
199 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateArgument;
200
201 struct TemplateArgument;
202
203 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_TemplateParameter;
204
205 struct TemplateParameter;
206
207 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Specifier;
208
209 struct Specifier;
210
211 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Identifier;
212
213 struct Identifier;
214
215 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Pointer;
216
217 struct Pointer;
218
219 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Declarator;
220
221 struct Declarator
222 {
223 struct Declarator * prev;
224 struct Declarator * next;
225 struct Location loc;
226 int type;
227 struct Symbol * symbol;
228 struct Declarator * declarator;
229 union
230 {
231 struct Identifier * identifier;
232 struct
233 {
234 struct Expression * exp;
235 struct Expression * posExp;
236 struct Attrib * attrib;
237 } __attribute__ ((gcc_struct)) structDecl;
238 struct
239 {
240 struct Expression * exp;
241 struct Specifier * enumClass;
242 } __attribute__ ((gcc_struct)) array;
243 struct
244 {
245 struct __ecereNameSpace__ecere__sys__OldList * parameters;
246 } __attribute__ ((gcc_struct)) function;
247 struct
248 {
249 struct Pointer * pointer;
250 } __attribute__ ((gcc_struct)) pointer;
251 struct
252 {
253 struct ExtDecl * extended;
254 } __attribute__ ((gcc_struct)) extended;
255 } __attribute__ ((gcc_struct));
256 } __attribute__ ((gcc_struct));
257
258 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_FunctionDefinition;
259
260 struct FunctionDefinition;
261
262 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_DBTableDef;
263
264 struct DBTableDef;
265
266 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_External;
267
268 struct External;
269
270 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ModuleImport;
271
272 struct ModuleImport;
273
274 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_ClassImport;
275
276 struct ClassImport;
277
278 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Symbol;
279
280 struct Symbol;
281
282 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Type;
283
284 struct Type;
285
286 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
287
288 struct __ecereNameSpace__ecere__com__Class
289 {
290 struct __ecereNameSpace__ecere__com__Class * prev;
291 struct __ecereNameSpace__ecere__com__Class * next;
292 char *  name;
293 int offset;
294 int structSize;
295 int (* *  _vTbl)();
296 int vTblSize;
297 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
298 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
299 int offsetClass;
300 int sizeClass;
301 struct __ecereNameSpace__ecere__com__Class * base;
302 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
303 struct __ecereNameSpace__ecere__sys__BinaryTree members;
304 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
305 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
306 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
307 struct __ecereNameSpace__ecere__sys__OldList derivatives;
308 int memberID;
309 int startMemberID;
310 int type;
311 struct __ecereNameSpace__ecere__com__Instance * module;
312 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
313 char *  dataTypeString;
314 struct Type * dataType;
315 int typeSize;
316 int defaultAlignment;
317 void (*  Initialize)();
318 int memberOffset;
319 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
320 char *  designerClass;
321 unsigned int noExpansion;
322 char *  defaultProperty;
323 unsigned int comRedefinition;
324 int count;
325 unsigned int isRemote;
326 unsigned int internalDecl;
327 void *  data;
328 unsigned int computeSize;
329 int structAlignment;
330 int destructionWatchOffset;
331 unsigned int fixed;
332 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
333 int inheritanceAccess;
334 char *  fullName;
335 void *  symbol;
336 struct __ecereNameSpace__ecere__sys__OldList conversions;
337 struct __ecereNameSpace__ecere__sys__OldList templateParams;
338 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
339 struct __ecereNameSpace__ecere__com__Class * templateClass;
340 struct __ecereNameSpace__ecere__sys__OldList templatized;
341 int numParams;
342 } __attribute__ ((gcc_struct));
343
344 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
345
346 struct __ecereNameSpace__ecere__com__Instance
347 {
348 int (* *  _vTbl)();
349 struct __ecereNameSpace__ecere__com__Class * _class;
350 int _refCount;
351 } __attribute__ ((gcc_struct));
352
353 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
354
355 struct __ecereNameSpace__ecere__com__DataMember
356 {
357 struct __ecereNameSpace__ecere__com__DataMember * prev;
358 struct __ecereNameSpace__ecere__com__DataMember * next;
359 char *  name;
360 unsigned int isProperty;
361 int memberAccess;
362 int id;
363 struct __ecereNameSpace__ecere__com__Class * _class;
364 char *  dataTypeString;
365 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
366 struct Type * dataType;
367 int type;
368 int offset;
369 int memberID;
370 struct __ecereNameSpace__ecere__sys__OldList members;
371 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
372 int memberOffset;
373 int structAlignment;
374 } __attribute__ ((gcc_struct));
375
376 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
377
378 struct __ecereNameSpace__ecere__com__SerialBuffer
379 {
380 unsigned char *  _buffer;
381 unsigned int count;
382 unsigned int _size;
383 unsigned int pos;
384 } __attribute__ ((gcc_struct));
385
386 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
387
388 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
389 {
390 union
391 {
392 struct
393 {
394 char *  dataTypeString;
395 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
396 } __attribute__ ((gcc_struct));
397 struct __ecereNameSpace__ecere__com__DataValue expression;
398 struct
399 {
400 char *  memberString;
401 union
402 {
403 struct __ecereNameSpace__ecere__com__DataMember * member;
404 struct __ecereNameSpace__ecere__com__Property * prop;
405 struct __ecereNameSpace__ecere__com__Method * method;
406 } __attribute__ ((gcc_struct));
407 } __attribute__ ((gcc_struct));
408 } __attribute__ ((gcc_struct));
409 } __attribute__ ((gcc_struct));
410
411 unsigned int parsingType;
412
413 void SetParsingType(unsigned int b)
414 {
415 parsingType = b;
416 }
417
418 extern struct TypeName * parsedType;
419
420 extern unsigned int echoOn;
421
422 extern unsigned int type_yydebug;
423
424 extern struct Location yylloc;
425
426 int type_yyparse();
427
428 void resetScannerPos(struct CodePosition * pos);
429
430 extern struct Declarator * CopyDeclarator(struct Declarator * declarator);
431
432 extern int printf(char * , ...);
433
434 extern void FreeDeclarator(struct Declarator * decl);
435
436 struct Declarator * PlugDeclarator(struct Declarator * decl, struct Declarator * baseDecl)
437 {
438 if(decl && decl->type != 1)
439 {
440 struct Declarator * base;
441
442 decl = CopyDeclarator(decl);
443 base = decl;
444 if(base->type != 1)
445 {
446 for(; base->declarator && base->declarator->type != 1; base = base->declarator)
447 {
448 printf("");
449 }
450 }
451 if(baseDecl)
452 {
453 if(base->declarator)
454 FreeDeclarator(base->declarator);
455 base->declarator = baseDecl;
456 }
457 else if(base->type == 1)
458 {
459 FreeDeclarator(decl);
460 decl = (((void *)0));
461 }
462 return decl;
463 }
464 else
465 return baseDecl;
466 }
467
468 extern struct Declarator * MkDeclaratorIdentifier(struct Identifier * id);
469
470 extern struct Identifier * MkIdentifier(char *  string);
471
472 extern struct Declarator * MkDeclaratorPointer(struct Pointer * pointer, struct Declarator * declarator);
473
474 extern struct Pointer * MkPointer(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Pointer * pointer);
475
476 struct Declarator * QMkPtrDecl(char * id)
477 {
478 struct Declarator * declarator = id ? MkDeclaratorIdentifier(MkIdentifier(id)) : (((void *)0));
479
480 return MkDeclaratorPointer(MkPointer((((void *)0)), (((void *)0))), declarator);
481 }
482
483 extern struct __ecereNameSpace__ecere__sys__OldList *  MkList(void);
484
485 extern void ListAdd(struct __ecereNameSpace__ecere__sys__OldList * list, void *  item);
486
487 extern struct Specifier * MkSpecifierName(char *  name);
488
489 extern struct TypeName * MkTypeName(struct __ecereNameSpace__ecere__sys__OldList * qualifiers, struct Declarator * declarator);
490
491 struct TypeName * QMkType(char * spec, struct Declarator * decl)
492 {
493 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
494
495 ListAdd(specs, MkSpecifierName(spec));
496 return MkTypeName(specs, decl);
497 }
498
499 struct TypeName * QMkClass(char * spec, struct Declarator * decl)
500 {
501 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
502
503 ListAdd(specs, MkSpecifierName(spec));
504 return MkTypeName(specs, decl);
505 }
506
507 extern struct Expression * MkExpBrackets(struct __ecereNameSpace__ecere__sys__OldList * expressions);
508
509 struct Expression * QBrackets(struct Expression * exp)
510 {
511 struct __ecereNameSpace__ecere__sys__OldList * expList = MkList();
512
513 ListAdd(expList, exp);
514 return MkExpBrackets(expList);
515 }
516
517 extern struct Expression * MkExpIdentifier(struct Identifier * id);
518
519 struct Expression * QMkExpId(char * id)
520 {
521 return MkExpIdentifier(MkIdentifier(id));
522 }
523
524 extern struct Expression * MkExpCondition(struct Expression * cond, struct __ecereNameSpace__ecere__sys__OldList * expressions, struct Expression * elseExp);
525
526 struct Expression * QMkExpCond(struct Expression * cond, struct Expression * exp, struct Expression * elseExp)
527 {
528 struct __ecereNameSpace__ecere__sys__OldList * expList = MkList();
529
530 ListAdd(expList, exp);
531 return MkExpCondition(cond, expList, elseExp);
532 }
533
534 extern struct Declaration * MkDeclaration(struct __ecereNameSpace__ecere__sys__OldList * specifiers, struct __ecereNameSpace__ecere__sys__OldList * initDeclarators);
535
536 struct Declaration * QMkDeclaration(char * name, struct InitDeclarator * initDecl)
537 {
538 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList(), * initDecls = (((void *)0));
539
540 ListAdd(specs, MkSpecifierName(name));
541 if(initDecl)
542 {
543 initDecls = MkList();
544 ListAdd(initDecls, initDecl);
545 }
546 return MkDeclaration(specs, initDecls);
547 }
548
549 extern struct Specifier * MkSpecifier(int specifier);
550
551 struct Declaration * QMkDeclarationBase(int base, struct InitDeclarator * initDecl)
552 {
553 struct __ecereNameSpace__ecere__sys__OldList * specs = MkList(), * initDecls = (((void *)0));
554
555 ListAdd(specs, MkSpecifier(base));
556 if(initDecl)
557 {
558 initDecls = MkList();
559 ListAdd(initDecls, initDecl);
560 }
561 return MkDeclaration(specs, initDecls);
562 }
563
564 extern char *  __ecereNameSpace__ecere__sys__CopyString(char *  string);
565
566 char * QMkString(char * source)
567 {
568 char * string;
569
570 if(source)
571 {
572 int len = 0;
573 int i, j = 0;
574 char ch;
575
576 for(i = 0; (ch = source[i]); i++)
577 {
578 len++;
579 if(ch == '\"' || ch == '\\')
580 len++;
581 }
582 string = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len + 3));
583 string[j++] = '\"';
584 for(i = 0; (ch = source[i]); i++)
585 {
586 if(ch == '\"' || ch == '\\')
587 string[j++] = '\\';
588 string[j++] = ch;
589 }
590 string[j++] = '\"';
591 string[j] = '\0';
592 }
593 else
594 string = __ecereNameSpace__ecere__sys__CopyString("0");
595 return string;
596 }
597
598 struct Declarator * GetFuncDecl(struct Declarator * decl)
599 {
600 while(decl && decl->type != 4 && decl->type != 1)
601 decl = decl->declarator;
602 return (decl && decl->type == 4) ? decl : (((void *)0));
603 }
604
605 unsigned int parseTypeError;
606
607 extern struct __ecereNameSpace__ecere__com__Instance * fileInput;
608
609 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__TempFile;
610
611 struct __ecereNameSpace__ecere__sys__TempFile
612 {
613 char __ecere_padding[24];
614 } __attribute__ ((gcc_struct));
615
616 extern int strlen(const char * );
617
618 extern int declMode;
619
620 extern void resetScanner();
621
622 extern struct Declarator * MkStructDeclarator(struct Declarator * declarator, struct Expression * exp);
623
624 extern void FreeTypeName(struct TypeName * typeName);
625
626 extern void Compiler_Warning(char *  format, ...);
627
628 extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
629
630 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
631
632 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
633
634 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Write;
635
636 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek;
637
638 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
639
640 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
641
642 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
643
644 struct Declarator * SpecDeclFromString(char * string, struct __ecereNameSpace__ecere__sys__OldList * specs, struct Declarator * baseDecl)
645 {
646 struct Location oldLocation = yylloc;
647 struct Declarator * decl = (((void *)0));
648 struct __ecereNameSpace__ecere__com__Instance * backFileInput = fileInput;
649
650 if(!string)
651 string = "void()";
652 fileInput = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__sys__TempFile);
653 ((int (*)(struct __ecereNameSpace__ecere__com__Instance *, void *  buffer, unsigned int size, unsigned int count))fileInput->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Write])(fileInput, string, 1, strlen(string));
654 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, int pos, int mode))fileInput->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Seek])(fileInput, 0, 0);
655 echoOn = 0x0;
656 parseTypeError = 0x0;
657 parsedType = (((void *)0));
658 declMode = (int)0;
659 resetScanner();
660 {
661 unsigned int oldParsingType = parsingType;
662
663 parsingType = 0x1;
664 type_yyparse();
665 parsingType = oldParsingType;
666 }
667 declMode = 2;
668 type_yydebug = 0x0;
669 (__ecereNameSpace__ecere__com__eInstance_DecRef(fileInput), fileInput = 0);
670 if(parsedType)
671 {
672 if(parsedType->qualifiers)
673 {
674 struct Specifier * spec;
675
676 for(; (spec = (*parsedType->qualifiers).first); )
677 {
678 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*parsedType->qualifiers), spec);
679 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*specs), spec);
680 }
681 }
682 if(parsedType->bitCount)
683 {
684 parsedType->declarator = MkStructDeclarator(parsedType->declarator, parsedType->bitCount);
685 parsedType->bitCount = (((void *)0));
686 }
687 decl = PlugDeclarator(parsedType->declarator, baseDecl);
688 FreeTypeName(parsedType);
689 parsedType = (((void *)0));
690 if(parseTypeError)
691 {
692 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "parsing type %s\n", (((void *)0))), string);
693 }
694 }
695 else
696 {
697 Compiler_Warning(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "parsing type %s\n", (((void *)0))), string);
698 decl = baseDecl;
699 }
700 yylloc = oldLocation;
701 fileInput = backFileInput;
702 return decl;
703 }
704
705 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
706
707 struct __ecereNameSpace__ecere__com__GlobalFunction;
708
709 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
710
711 void __ecereRegisterModule_shortcuts(struct __ecereNameSpace__ecere__com__Instance * module)
712 {
713 struct __ecereNameSpace__ecere__com__Class * class;
714
715 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetParsingType", "void SetParsingType(bool b)", SetParsingType, module, 1);
716 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("PlugDeclarator", "Declarator PlugDeclarator(Declarator decl, Declarator baseDecl)", PlugDeclarator, module, 2);
717 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkPtrDecl", "Declarator QMkPtrDecl(char * id)", QMkPtrDecl, module, 2);
718 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkType", "TypeName QMkType(char * spec, Declarator decl)", QMkType, module, 2);
719 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkClass", "TypeName QMkClass(char * spec, Declarator decl)", QMkClass, module, 2);
720 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QBrackets", "Expression QBrackets(Expression exp)", QBrackets, module, 2);
721 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkExpId", "Expression QMkExpId(char * id)", QMkExpId, module, 2);
722 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkExpCond", "Expression QMkExpCond(Expression cond, Expression exp, Expression elseExp)", QMkExpCond, module, 2);
723 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkDeclaration", "Declaration QMkDeclaration(char * name, InitDeclarator initDecl)", QMkDeclaration, module, 2);
724 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkDeclarationBase", "Declaration QMkDeclarationBase(int base, InitDeclarator initDecl)", QMkDeclarationBase, module, 2);
725 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("QMkString", "char * QMkString(char * source)", QMkString, module, 2);
726 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("GetFuncDecl", "Declarator GetFuncDecl(Declarator decl)", GetFuncDecl, module, 1);
727 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SpecDeclFromString", "Declarator SpecDeclFromString(char * string, ecere::sys::OldList * specs, Declarator baseDecl)", SpecDeclFromString, module, 1);
728 }
729
730 void __ecereUnregisterModule_shortcuts(struct __ecereNameSpace__ecere__com__Instance * module)
731 {
732
733 }
734