from .base_types import LanguageAlias

LANGUAGE_TO_LANGUAGE_ID = {
    "1.13.1": {
        LanguageAlias.ASSEMBLY: 45,
        LanguageAlias.BASH: 46,
        LanguageAlias.BASIC: 47,
        LanguageAlias.C: 50,
        LanguageAlias.CLOJURE: 86,
        LanguageAlias.COBOL: 77,
        LanguageAlias.COMMON_LISP: 55,
        LanguageAlias.CPP: 52,
        LanguageAlias.CPP_CLANG: 76,
        LanguageAlias.CPP_GCC: 52,
        LanguageAlias.CSHARP: 51,
        LanguageAlias.CSHARP_MONO: 51,
        LanguageAlias.C_CLANG: 75,
        LanguageAlias.C_GCC: 50,
        LanguageAlias.D: 56,
        LanguageAlias.ELIXIR: 57,
        LanguageAlias.ERLANG: 58,
        LanguageAlias.EXECUTABLE: 44,
        LanguageAlias.FORTRAN: 59,
        LanguageAlias.FSHARP: 87,
        LanguageAlias.GO: 60,
        LanguageAlias.GROOVY: 88,
        LanguageAlias.HASKELL: 61,
        LanguageAlias.JAVA: 62,
        LanguageAlias.JAVASCRIPT: 63,
        LanguageAlias.JAVA_OPENJDK: 62,
        LanguageAlias.KOTLIN: 78,
        LanguageAlias.LUA: 64,
        LanguageAlias.MULTI_FILE: 89,
        LanguageAlias.OBJECTIVE_C: 79,
        LanguageAlias.OCAML: 65,
        LanguageAlias.OCTAVE: 66,
        LanguageAlias.PASCAL: 67,
        LanguageAlias.PERL: 85,
        LanguageAlias.PHP: 68,
        LanguageAlias.PLAIN_TEXT: 43,
        LanguageAlias.PROLOG: 69,
        LanguageAlias.PYTHON: 71,
        LanguageAlias.PYTHON2: 70,
        LanguageAlias.PYTHON3: 71,
        LanguageAlias.R: 80,
        LanguageAlias.RUBY: 72,
        LanguageAlias.RUST: 73,
        LanguageAlias.SCALA: 81,
        LanguageAlias.SQLITE: 82,
        LanguageAlias.SWIFT: 83,
        LanguageAlias.TYPESCRIPT: 74,
        LanguageAlias.VISUAL_BASIC: 84,
    },
    "1.13.1-extra": {
        LanguageAlias.BOSQUE: 11,
        LanguageAlias.C: 1,
        LanguageAlias.C3: 3,
        LanguageAlias.CPP: 2,
        LanguageAlias.CPP_CLANG: 2,
        LanguageAlias.CPP_TEST: 12,
        LanguageAlias.CPP_TEST_CLANG: 15,
        LanguageAlias.CPP_TEST_GCC: 12,
        LanguageAlias.CSHARP: 22,
        LanguageAlias.CSHARP_MONO: 22,
        LanguageAlias.CSHARP_DOTNET: 21,
        LanguageAlias.CSHARP_TEST: 23,
        LanguageAlias.C_CLANG: 1,
        LanguageAlias.FSHARP: 24,
        LanguageAlias.JAVA: 4,
        LanguageAlias.JAVA_OPENJDK: 4,
        LanguageAlias.JAVA_TEST: 5,
        LanguageAlias.MPI_C: 6,
        LanguageAlias.MPI_CPP: 7,
        LanguageAlias.MPI_PYTHON: 8,
        LanguageAlias.MULTI_FILE: 89,
        LanguageAlias.NIM: 9,
        LanguageAlias.PYTHON: 10,
        LanguageAlias.PYTHON3: 10,
        LanguageAlias.PYTHON_FOR_ML: 10,
        LanguageAlias.VISUAL_BASIC: 20,
    },
    "1.14.0": {
        LanguageAlias.ASSEMBLY: 45,
        LanguageAlias.BASH: 46,
        LanguageAlias.BASIC: 47,
        LanguageAlias.C: 103,
        LanguageAlias.CLOJURE: 86,
        LanguageAlias.COBOL: 77,
        LanguageAlias.COMMON_LISP: 55,
        LanguageAlias.CPP: 105,
        LanguageAlias.CPP_CLANG: 76,
        LanguageAlias.CPP_GCC: 105,
        LanguageAlias.CSHARP: 51,
        LanguageAlias.CSHARP_MONO: 51,
        LanguageAlias.C_CLANG: 110,
        LanguageAlias.C_GCC: 103,
        LanguageAlias.D: 56,
        LanguageAlias.DART: 90,
        LanguageAlias.ELIXIR: 57,
        LanguageAlias.ERLANG: 58,
        LanguageAlias.EXECUTABLE: 44,
        LanguageAlias.FORTRAN: 59,
        LanguageAlias.FSHARP: 87,
        LanguageAlias.GO: 107,
        LanguageAlias.GROOVY: 88,
        LanguageAlias.HASKELL: 61,
        LanguageAlias.JAVA: 62,
        LanguageAlias.JAVAFX: 96,
        LanguageAlias.JAVASCRIPT: 102,
        LanguageAlias.JAVA_JDK: 91,
        LanguageAlias.JAVA_OPENJDK: 62,
        LanguageAlias.KOTLIN: 111,
        LanguageAlias.LUA: 64,
        LanguageAlias.MULTI_FILE: 89,
        LanguageAlias.OBJECTIVE_C: 79,
        LanguageAlias.OCAML: 65,
        LanguageAlias.OCTAVE: 66,
        LanguageAlias.PASCAL: 67,
        LanguageAlias.PERL: 85,
        LanguageAlias.PHP: 98,
        LanguageAlias.PLAIN_TEXT: 43,
        LanguageAlias.PROLOG: 69,
        LanguageAlias.PYTHON: 109,
        LanguageAlias.PYTHON2: 70,
        LanguageAlias.PYTHON3: 109,
        LanguageAlias.R: 99,
        LanguageAlias.RUBY: 72,
        LanguageAlias.RUST: 108,
        LanguageAlias.SCALA: 112,
        LanguageAlias.SQLITE: 82,
        LanguageAlias.SWIFT: 83,
        LanguageAlias.TYPESCRIPT: 101,
        LanguageAlias.VISUAL_BASIC: 84,
    },
    "1.14.0-extra": {
        LanguageAlias.BOSQUE: 11,
        LanguageAlias.C: 1,
        LanguageAlias.C3: 3,
        LanguageAlias.CPP: 2,
        LanguageAlias.CPP_CLANG: 2,
        LanguageAlias.CPP_TEST: 12,
        LanguageAlias.CPP_TEST_CLANG: 15,
        LanguageAlias.CPP_TEST_GCC: 12,
        LanguageAlias.CSHARP: 30,
        LanguageAlias.CSHARP_MONO: 22,
        LanguageAlias.CSHARP_DOTNET: 30,
        LanguageAlias.CSHARP_TEST: 23,
        LanguageAlias.C_CLANG: 1,
        LanguageAlias.FSHARP: 24,
        LanguageAlias.JAVA: 4,
        LanguageAlias.JAVA_OPENJDK: 4,
        LanguageAlias.JAVA_TEST: 5,
        LanguageAlias.MPI_C: 6,
        LanguageAlias.MPI_CPP: 7,
        LanguageAlias.MPI_PYTHON: 8,
        LanguageAlias.MULTI_FILE: 89,
        LanguageAlias.NIM: 9,
        LanguageAlias.PYTHON: 32,
        LanguageAlias.PYTHON2: 26,
        LanguageAlias.PYTHON2_PYPY: 26,
        LanguageAlias.PYTHON3: 32,
        LanguageAlias.PYTHON3_PYPY: 28,
        LanguageAlias.PYTHON_FOR_ML: 32,
        LanguageAlias.VISUAL_BASIC: 20,
    },
}
