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