/*
    Copyright 2017-2019 Katy Coe - http://www.hearthcode.org - http://www.djkaty.com

    All rights reserved.
*/

using System;
using System.Collections.Generic;
using System.Text;

namespace Il2CppInspector.Reflection
{
    public static class Constants
    {
        // All C# reserved keywords
        // From: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/
        public static readonly string[] Keywords = {
            "abstract", "as", "base", "bool",
            "break", "byte", "case", "catch",
            "char", "checked", "class", "const",
            "continue", "decimal", "default", "delegate",
            "do", "double", "else", "enum",
            "event", "explicit", "extern", "false",
            "finally", "fixed", "float", "for",
            "foreach", "goto", "if", "implicit",
            "in", "int", "interface", "internal",
            "is", "lock", "long", "namespace",
            "new", "null", "object", "operator",
            "out", "override", "params", "private",
            "protected", "public", "readonly", "ref",
            "return", "sbyte", "sealed", "short",
            "sizeof", "stackalloc", "static", "string",
            "struct", "switch", "this", "throw",
            "true", "try", "typeof", "uint",
            "ulong", "unchecked", "unsafe", "ushort",
            "using", /* "using static", */ "virtual", "void",
            "volatile", "while"
        };

        // Default namespaces to exclude
        public static readonly List<string> DefaultExcludedNamespaces = new List<string> {
            "System",
            "Mono",
            "Microsoft.Reflection",
            "Microsoft.Win32",
            "Internal.Runtime",
            "Unity",
            "UnityEditor",
            "UnityEngine",
            "UnityEngineInternal",
            "AOT",
            "JetBrains.Annotations"
        };
    }
}
