Exemplo n.º 1
0
    ///////////////////////////////////////////

    static string SnakeToCamel(string name, bool active, int removePrefix)
    {
        if (NameOverrides.TryGet(name, out string result))
        {
            return(result);
        }

        string[] words = name.Substring(removePrefix).Split("_");
        for (int i = 0; i < words.Length; i++)
        {
            if ((i > 0 || active) && words[i].Length > 0)
            {
                words[i] = char.ToUpper(words[i][0]) + words[i].Substring(1);
            }
        }
        return(string.Join("", words));
    }
        public void VerifyThatTableNameOverridesWork()
        {
            var template = new NameOverrides();

            DatabaseSession.Instance.Connector.CreateTableWithColumns(template);

            Assert.IsTrue(DatabaseSession.Instance.Connector.CheckTableExists(template));
            Assert.IsTrue(DatabaseSession.Instance.Connector.CheckColumnExists(template.GetType().GetProperty("SomeString"),template));

            DatabaseSession.Instance.Connector.DeleteTable(template);
        }
Exemplo n.º 3
0
    static void Main(string[] args)
    {
        // This application needs parameters to work!
        if (args.Length == 0)
        {
            Console.WriteLine("ERROR: No parameters provided.");
            DisplayHelp();
            return;
        }

        // Parse the parameters into stuff we can work with
        List <string> files      = new List <string>();
        BindLang      lang       = BindLang.None;
        string        destFolder = "";
        int           curr       = 0;

        while (curr < args.Length)
        {
            if (args[curr].ToLower() == "-o")
            {
                if (curr + 1 < args.Length)
                {
                    if (!NameOverrides.Load(args[curr + 1]))
                    {
                        return;
                    }
                    curr += 2;
                }
                else
                {
                    Console.WriteLine("ERROR: Missing parameter for -o, need a file path for name overrides!");
                    DisplayHelp();
                    return;
                }
            }
            else if (args[curr].ToLower() == "-f")
            {
                if (curr + 1 < args.Length)
                {
                    files.Add(args[curr + 1]);
                    curr += 2;
                }
                else
                {
                    Console.WriteLine("ERROR: Missing parameter for -f, need a file path to a C++ header!");
                    DisplayHelp();
                    return;
                }
            }
            else if (args[curr].ToLower() == "-l")
            {
                if (curr + 1 < args.Length)
                {
                    if (Enum.TryParse(args[curr + 1], true, out BindLang langArg))
                    {
                        lang = langArg;
                    }
                    else
                    {
                        Console.WriteLine($"Invalid language identifier '{args[curr + 1]}'!"); return;
                    }

                    curr += 2;
                }
                else
                {
                    Console.WriteLine("ERROR: Missing parameter for -l, need a language identifier!");
                    DisplayHelp();
                    return;
                }
            }
            else if (args[curr].ToLower() == "-d")
            {
                if (curr + 1 < args.Length)
                {
                    destFolder = args[curr + 1];
                    curr      += 2;
                }
                else
                {
                    Console.WriteLine("ERROR: Missing parameter for -d, need a file path to a destination folder!");
                    DisplayHelp();
                    return;
                }
            }
            else if (args[curr].ToLower() == "-h" || args[curr].ToLower() == "--help" || args[curr].ToLower() == "/help")
            {
                DisplayHelp();
                return;
            }
            else
            {
                Console.WriteLine($"ERROR: Unrecognized parameter '{args[curr]}'!");
                DisplayHelp();
                return;
            }
        }

        // Set a default language binding
        if (lang == BindLang.None)
        {
            Console.WriteLine($"No language binding specified, defaulting to CSharp.");
            lang = BindLang.CSharp;
        }

        // Parse the files provided
        Console.WriteLine($"Parsing {files.Count} file(s)");
        CppCompilation ast = CppParser.ParseFiles(files);

        // And create bindings for it all!
        switch (lang)
        {
        case BindLang.CSharp: BindCSharp.Bind(ast, destFolder); break;
        }
    }
        public void VerifyThatTableNameOverridesReadWithEscapedWork()
        {
            var template = new NameOverrides();

            DatabaseSession.Instance.Connector.CreateTableWithColumnsAndPrimaryKey(template);

            Assert.IsTrue(DatabaseSession.Instance.Connector.CheckTableExists(template));
            Assert.IsTrue(DatabaseSession.Instance.Connector.CheckColumnExists(template.GetType().GetProperty("SomeString"), template));

            template.Id = 1;
            template.SomeString = "dfsf";
            template.Longitude = 123.0001;

            Assert.DoesNotThrow(()=>template.Save());

            Assert.DoesNotThrow(() => NameOverrides.All());

            DatabaseSession.Instance.Connector.DeleteTable(template);
        }