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