sdk: const correctness
[sdk] / compiler / ecc / ecc.ec
index ae7dbd0..0ea90d5 100644 (file)
@@ -12,7 +12,7 @@ import "ec"
 static Context globalContext { };
 static Module privateModule;
 static ModuleImport mainModule;
-static OldList _excludedSymbols { offset = (uint)&((Symbol)0).left };
+static OldList _excludedSymbols { offset = (uint)(uintptr)&((Symbol)0).left };
 static OldList defines, imports;
 static NameSpace globalData
 {
@@ -115,7 +115,7 @@ static void OutputImports(char * fileName)
 }
 
 #ifdef _DEBUG
-static bool TestType(String string, String expected)
+/*static bool TestType(String string, String expected)
 {
    bool result = true;
    char typeString[1024] = { 0 };
@@ -228,6 +228,7 @@ static void TestTypes()
 
    PrintLn("\n", succeeded, " / ", count, " tests succeeded.");
 }
+*/
 #endif
 
 class CompilerApp : Application
@@ -278,7 +279,7 @@ class CompilerApp : Application
          argc++;
       }*/
 
-#ifdef _DEBUG
+#if 0 //def _DEBUG
       printf("\nArguments given:\n");
       for(c=1; c<argc; c++)
          printf(" %s", argv[c]);
@@ -291,7 +292,7 @@ class CompilerApp : Application
 
       for(c = 1; c<argc; c++)
       {
-         char * arg = argv[c];
+         const char * arg = argv[c];
          if(arg[0] == '-')
          {
             if(!strcmp(arg + 1, "m32") || !strcmp(arg + 1, "m64"))
@@ -303,6 +304,10 @@ class CompilerApp : Application
                cppOptionsLen = newLen;
                targetBits = !strcmp(arg + 1, "m32") ? 32 : 64;
             }
+            else if(!strcmp(arg + 1, "t32") || !strcmp(arg + 1, "t64"))
+            {
+               targetBits = !strcmp(arg + 1, "t32") ? 32 : 64;
+            }
             else if(arg[1] == 'D' || arg[1] == 'I')
             {
                char * buf;
@@ -361,7 +366,7 @@ class CompilerApp : Application
                if(c + 1 < argc)
                {
                   char * buf;
-                  char * arg1 = argv[++c];
+                  const char * arg1 = argv[++c];
                   int size = cppOptionsLen + 1 + strlen(arg) * 2 + strlen(arg1) * 2 + 1;
                   cppOptions = renew cppOptions char[size];
                   buf = cppOptions + cppOptionsLen;
@@ -374,6 +379,16 @@ class CompilerApp : Application
                else
                   valid = false;
             }
+            else if(!strcmp(arg+1, "fno-diagnostics-show-caret"))
+            {
+               char * buf;
+               int size = cppOptionsLen + 1 + strlen(arg) * 2 + 1;
+               cppOptions = renew cppOptions char[size];
+               buf = cppOptions + cppOptionsLen;
+               *buf++ = ' ';
+               PassArg(buf, arg);
+               cppOptionsLen = cppOptionsLen + 1 + strlen(buf);
+            }
             else if(!strcmp(arg+1, "symbols"))
             {
                if(c + 1 < argc)
@@ -384,6 +399,16 @@ class CompilerApp : Application
                else
                   valid = false;
             }
+            else if(!strcmp(arg+1, "module"))
+            {
+               if(c + 1 < argc)
+               {
+                  SetI18nModuleName(argv[c+1]);
+                  c++;
+               }
+               else
+                  valid = false;
+            }
             else if(!strcmp(arg+1, "memguard"))
             {
                SetMemoryGuard(true);
@@ -428,7 +453,7 @@ class CompilerApp : Application
 
       if(!valid)
       {
-         printf($"Syntax:\n   ecc [-t <target platform>] [-cpp <c preprocessor>] [-o <output>] [-symbols <outputdir>] [-I<includedir>]* [-isystem <sysincludedir>]* [-D<definition>]* -c <input>\n");
+         printf($"Syntax:\n   ecc [-t <target platform>] [-cpp <c preprocessor>] [-o <output>] [-module <module>] [-symbols <outputdir>] [-I<includedir>]* [-isystem <sysincludedir>]* [-D<definition>]* -c <input>\n");
       }
       else
       {
@@ -446,8 +471,8 @@ class CompilerApp : Application
          SetTargetPlatform(targetPlatform);
          SetTargetBits(targetBits);
          SetEchoOn(false);
-
-         privateModule = (Module)__ecere_COM_Initialize(true | (targetBits == sizeof(uintptr)*8 ? 0 : targetBits == 64 ? 2 : targetBits==32 ? 4 : 0) | 8, 1, null);
+                                                        // TOFIX: Use a bit class instead of a bool to store target bits information
+         privateModule = (Module)__ecere_COM_Initialize((bool)(true | (targetBits == sizeof(uintptr)*8 ? 0 : targetBits == 64 ? 2 : targetBits==32 ? 4 : 0) | 8), 1, null);
          SetPrivateModule(privateModule);
 
          globalContext.types.Add((BTNode)Symbol { string = CopyString("uint"), type = ProcessTypeString("unsigned int", false) });
@@ -476,7 +501,7 @@ class CompilerApp : Application
 
          snprintf(command, sizeof(command), "%s%s -x c -E %s\"%s\"", cppCommand, cppOptions ? cppOptions : "", buildingBootStrap ? "" : "-include stdint.h -include sys/types.h ", GetSourceFile());
          command[sizeof(command)-1] = 0;
-#ifdef _DEBUG
+#if 0 //def _DEBUG
          PrintLn("ECC Executing:");
          PrintLn(command);
 #endif
@@ -582,7 +607,7 @@ class CompilerApp : Application
 
             ast = GetAST();
 
-            if(/*ast /*&& !parseError*/ /*&& */!exitCode)
+            if(/*ast && !parseError*/ /*&& */!exitCode)
             {
                ProcessDBTableDefinitions();
 
@@ -724,7 +749,7 @@ class CompilerApp : Application
 
       OutputIntlStrings();
 
-#if defined(_DEBUG) && defined(__WIN32__)
+#if 0 //defined(_DEBUG) && defined(__WIN32__)
       PrintLn("Done.");
       if(exitCode || GetNumWarnings())
          getch();