wip II
[sdk] / compiler / bootstrap / libec / bootstrap / lexer.c
index 60e32cb..aac891d 100644 (file)
@@ -1,3 +1,4 @@
+/* Code generated from eC source file: lexer.ec */
 #if defined(__GNUC__)
 typedef long long int64;
 typedef unsigned long long uint64;
@@ -28,8 +29,9 @@ typedef unsigned __int64 uint64;
 #define __ENDIAN_PAD(x) 0
 #endif
 #include <stdint.h>
+#include <sys/types.h>
 
-#if defined(_W64) || (defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
+#if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
 #define _64BIT 1
 #else
 #define _64BIT 0
@@ -125,7 +127,7 @@ struct CodePosition
 int line;
 int charPos;
 int pos;
-unsigned int included;
+int included;
 } __attribute__ ((gcc_struct));
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_Location;
@@ -308,6 +310,8 @@ struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
 struct __ecereNameSpace__ecere__com__Class * templateClass;
 struct __ecereNameSpace__ecere__sys__OldList templatized;
 int numParams;
+unsigned int isInstanceClass;
+unsigned int byValueSystemClass;
 } __attribute__ ((gcc_struct));
 
 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
@@ -379,8 +383,6 @@ struct __ecereNameSpace__ecere__com__Method * method;
 } __attribute__ ((gcc_struct));
 } __attribute__ ((gcc_struct));
 
-typedef uintptr_t size_t;
-
 void exit(int status);
 
 void * calloc(size_t nmemb, size_t size);
@@ -1760,8 +1762,14 @@ return ('$');
 break;
 case 168LL:
 {
+while(include_stack_ptr && !fileStack[include_stack_ptr - 1])
+{
+--include_stack_ptr;
+defaultDeclMode = declMode = declModeStack[include_stack_ptr];
+}
 if(--include_stack_ptr < 0)
 {
+include_stack_ptr = 0;
 return 0;
 }
 else
@@ -2322,13 +2330,13 @@ extern int GetIncludeFileID(char *  includeFile);
 
 extern char *  __ecereNameSpace__ecere__sys__TrimLSpaces(char *  string, char *  output);
 
-extern int strncmp(const char * , const char * , int n);
+extern int strncmp(const char * , const char * , size_t n);
 
-extern void *  memmove(void * , const void * , unsigned int size);
+extern void *  memmove(void * , const void * , size_t size);
 
-extern int strlen(const char * );
+extern size_t strlen(const char * );
 
-extern char *  strncpy(char * , const char * , int n);
+extern char *  strncpy(char * , const char * , size_t n);
 
 extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
 
@@ -2371,6 +2379,7 @@ if(lineNumber)
 char fileName[797];
 int inOut;
 
+fileName[0] = (char)0;
 __ecereNameSpace__ecere__sys__GetString(&pointer, fileName, (797));
 inOut = __ecereNameSpace__ecere__sys__GetValue(&pointer);
 if(inOut == 1)
@@ -2381,6 +2390,7 @@ defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
 __ecereNameSpace__ecere__sys__GetExtension(fileName, extension);
 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
 declMode = defaultDeclMode = 0;
+fileStack[include_stack_ptr] = (((void *)0));
 include_stack_ptr++;
 }
 else if(inOut == 2)
@@ -2390,7 +2400,10 @@ defaultDeclMode = declMode = declModeStack[include_stack_ptr];
 }
 yylloc.end.charPos = 1;
 yylloc.end.line = lineNumber;
-yylloc.end.included = (include_stack_ptr > 0) ? (unsigned int)GetIncludeFileID(fileName) : (unsigned int)0;
+if(include_stack_ptr > 0 || (lineNumber && fileName[0]))
+yylloc.end.included = GetIncludeFileID(fileName);
+else
+yylloc.end.included = 0;
 }
 break;
 }
@@ -2466,7 +2479,7 @@ include_stack[include_stack_ptr++] = yy_current_buffer;
 yylloc.start.charPos = yylloc.end.charPos = 1;
 yylloc.start.line = yylloc.end.line = 1;
 yylloc.start.pos = yylloc.end.pos = 0;
-yylloc.start.included = yylloc.end.included = (unsigned int)GetIncludeFileID(includeFile);
+yylloc.start.included = yylloc.end.included = GetIncludeFileID(includeFile);
 __ecereNameSpace__ecere__sys__GetExtension(includeFile, extension);
 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
 declMode = defaultDeclMode = 0;
@@ -2487,15 +2500,15 @@ yy_flush_buffer(yy_current_buffer);
 yylloc.start.charPos = yylloc.end.charPos = 1;
 yylloc.start.line = yylloc.end.line = 1;
 yylloc.start.pos = yylloc.end.pos = 0;
-yylloc.start.included = yylloc.end.included = 0x0;
+yylloc.start.included = yylloc.end.included = 0;
 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
 expression_yylloc.start.line = expression_yylloc.end.line = 1;
 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
-expression_yylloc.start.included = expression_yylloc.end.included = 0x0;
+expression_yylloc.start.included = expression_yylloc.end.included = 0;
 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
 type_yylloc.start.line = type_yylloc.end.line = 1;
 type_yylloc.start.pos = type_yylloc.end.pos = 0;
-type_yylloc.start.included = type_yylloc.end.included = 0x0;
+type_yylloc.start.included = type_yylloc.end.included = 0;
 include_stack_ptr = 0;
 }
 
@@ -2507,7 +2520,109 @@ type_yylloc.start = type_yylloc.end = *pos;
 expression_yylloc.start = expression_yylloc.end = *pos;
 }
 
-extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
+struct LexerBackup
+{
+struct Location yylloc;
+struct Location type_yylloc;
+struct Location expression_yylloc;
+int declMode;
+int defaultDeclMode;
+struct __ecereNameSpace__ecere__com__Instance * fileInput;
+YY_BUFFER_STATE include_stack[30];
+struct __ecereNameSpace__ecere__com__Instance * fileStack[30];
+char sourceFileStack[30][797];
+struct Location locStack[30];
+int declModeStack[30];
+int include_stack_ptr;
+YY_BUFFER_STATE buffer;
+int yy_n_chars;
+char * yytext;
+char * yy_c_buf_p;
+FILE * yyin;
+char yy_hold_char;
+int yychar;
+int yy_init;
+int yy_start;
+} __attribute__ ((gcc_struct));
+
+static struct __ecereNameSpace__ecere__com__Class * __ecereClass_LexerBackup;
+
+extern void *  memcpy(void * , const void * , size_t size);
+
+extern int yychar;
+
+extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
+
+struct __ecereNameSpace__ecere__com__Instance * pushLexer()
+{
+struct __ecereNameSpace__ecere__com__Instance * backup = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass_LexerBackup);
+
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yylloc = yylloc;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->type_yylloc = type_yylloc;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->expression_yylloc = expression_yylloc;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->fileInput = fileInput;
+memcpy(((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->include_stack, include_stack, sizeof include_stack);
+memcpy(((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->fileStack, fileStack, sizeof fileStack);
+memcpy(((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->sourceFileStack, sourceFileStack, sizeof sourceFileStack);
+memcpy(((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->locStack, locStack, sizeof locStack);
+memcpy(((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->declModeStack, declModeStack, sizeof declModeStack);
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->include_stack_ptr = include_stack_ptr;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->defaultDeclMode = defaultDeclMode;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->declMode = declMode;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->buffer = yy_current_buffer;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_n_chars = yy_n_chars;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yytext = yytext;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_c_buf_p = yy_c_buf_p;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yyin = yyin;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_hold_char = yy_hold_char;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yychar = yychar;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_init = yy_init;
+((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_start = yy_start;
+yy_init = 1;
+yy_current_buffer = 0;
+yylloc.start.charPos = yylloc.end.charPos = 1;
+yylloc.start.line = yylloc.end.line = 1;
+yylloc.start.pos = yylloc.end.pos = 0;
+yylloc.start.included = yylloc.end.included = 0;
+expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
+expression_yylloc.start.line = expression_yylloc.end.line = 1;
+expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
+expression_yylloc.start.included = expression_yylloc.end.included = 0;
+type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
+type_yylloc.start.line = type_yylloc.end.line = 1;
+type_yylloc.start.pos = type_yylloc.end.pos = 0;
+type_yylloc.start.included = type_yylloc.end.included = 0;
+include_stack_ptr = 0;
+return backup;
+}
+
+void popLexer(struct __ecereNameSpace__ecere__com__Instance * backup)
+{
+yylloc = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yylloc;
+type_yylloc = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->type_yylloc;
+expression_yylloc = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->expression_yylloc;
+fileInput = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->fileInput;
+memcpy(include_stack, ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->include_stack, sizeof include_stack);
+memcpy(fileStack, ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->fileStack, sizeof fileStack);
+memcpy(sourceFileStack, ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->sourceFileStack, sizeof sourceFileStack);
+memcpy(locStack, ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->locStack, sizeof locStack);
+memcpy(declModeStack, ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->declModeStack, sizeof declModeStack);
+include_stack_ptr = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->include_stack_ptr;
+defaultDeclMode = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->defaultDeclMode;
+declMode = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->declMode;
+yy_current_buffer = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->buffer;
+yy_n_chars = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_n_chars;
+yytext = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yytext;
+yy_c_buf_p = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_c_buf_p;
+yyin = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yyin;
+yy_hold_char = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_hold_char;
+yychar = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yychar;
+yy_init = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_init;
+yy_start = ((struct LexerBackup *)(((char *)backup + __ecereClass_LexerBackup->offset)))->yy_start;
+(__ecereNameSpace__ecere__com__eInstance_DecRef(backup), backup = 0);
+}
+
+extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (*  Constructor)(void * ), void (*  Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
 
 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
 
@@ -2573,7 +2688,17 @@ __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "yy_buffer_status", "i
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetEchoOn", "void SetEchoOn(bool b)", SetEchoOn, module, 1);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("TESTTTT", "void TESTTTT(void)", TESTTTT, module, 2);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("SetSomeSourceFileStack", "void SetSomeSourceFileStack(char * fileName, int index)", SetSomeSourceFileStack, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("yywrap", "int yywrap(void)", yywrap, module, 2);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("comment", "int comment(void)", comment, module, 2);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("commentCPP", "int commentCPP(void)", commentCPP, module, 2);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("preprocessor", "int preprocessor(void)", preprocessor, module, 2);
 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("resetScanner", "void resetScanner(void)", resetScanner, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("resetScannerPos", "void resetScannerPos(CodePosition pos)", resetScannerPos, module, 2);
+class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "LexerBackup", 0, sizeof(struct LexerBackup), 0, 0, 0, module, 2, 1);
+if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
+__ecereClass_LexerBackup = class;
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("pushLexer", "LexerBackup pushLexer(void)", pushLexer, module, 2);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("popLexer", "void popLexer(LexerBackup backup)", popLexer, module, 2);
 }
 
 void __ecereUnregisterModule_lexer(struct __ecereNameSpace__ecere__com__Instance * module)