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