diff options
Diffstat (limited to 'lldb/source/Target')
-rw-r--r-- | lldb/source/Target/Language.cpp | 141 | ||||
-rw-r--r-- | lldb/source/Target/LanguageRuntime.cpp | 140 |
2 files changed, 141 insertions, 140 deletions
diff --git a/lldb/source/Target/Language.cpp b/lldb/source/Target/Language.cpp index dd80f7c9200..30a0492a39a 100644 --- a/lldb/source/Target/Language.cpp +++ b/lldb/source/Target/Language.cpp @@ -15,6 +15,7 @@ #include "lldb/Host/Mutex.h" #include "lldb/Core/PluginManager.h" +#include "lldb/Core/Stream.h" using namespace lldb; using namespace lldb_private; @@ -93,6 +94,146 @@ Language::GetFormatters () return nullptr; } +struct language_name_pair { + const char *name; + LanguageType type; +}; + +struct language_name_pair language_names[] = +{ + // To allow GetNameForLanguageType to be a simple array lookup, the first + // part of this array must follow enum LanguageType exactly. + { "unknown", eLanguageTypeUnknown }, + { "c89", eLanguageTypeC89 }, + { "c", eLanguageTypeC }, + { "ada83", eLanguageTypeAda83 }, + { "c++", eLanguageTypeC_plus_plus }, + { "cobol74", eLanguageTypeCobol74 }, + { "cobol85", eLanguageTypeCobol85 }, + { "fortran77", eLanguageTypeFortran77 }, + { "fortran90", eLanguageTypeFortran90 }, + { "pascal83", eLanguageTypePascal83 }, + { "modula2", eLanguageTypeModula2 }, + { "java", eLanguageTypeJava }, + { "c99", eLanguageTypeC99 }, + { "ada95", eLanguageTypeAda95 }, + { "fortran95", eLanguageTypeFortran95 }, + { "pli", eLanguageTypePLI }, + { "objective-c", eLanguageTypeObjC }, + { "objective-c++", eLanguageTypeObjC_plus_plus }, + { "upc", eLanguageTypeUPC }, + { "d", eLanguageTypeD }, + { "python", eLanguageTypePython }, + { "opencl", eLanguageTypeOpenCL }, + { "go", eLanguageTypeGo }, + { "modula3", eLanguageTypeModula3 }, + { "haskell", eLanguageTypeHaskell }, + { "c++03", eLanguageTypeC_plus_plus_03 }, + { "c++11", eLanguageTypeC_plus_plus_11 }, + { "ocaml", eLanguageTypeOCaml }, + { "rust", eLanguageTypeRust }, + { "c11", eLanguageTypeC11 }, + { "swift", eLanguageTypeSwift }, + { "julia", eLanguageTypeJulia }, + { "dylan", eLanguageTypeDylan }, + { "c++14", eLanguageTypeC_plus_plus_14 }, + { "fortran03", eLanguageTypeFortran03 }, + { "fortran08", eLanguageTypeFortran08 }, + // Vendor Extensions + { "mipsassem", eLanguageTypeMipsAssembler }, + { "renderscript", eLanguageTypeExtRenderScript}, + // Now synonyms, in arbitrary order + { "objc", eLanguageTypeObjC }, + { "objc++", eLanguageTypeObjC_plus_plus }, + { "pascal", eLanguageTypePascal83 } +}; + +static uint32_t num_languages = sizeof(language_names) / sizeof (struct language_name_pair); + +LanguageType +Language::GetLanguageTypeFromString (const char *string) +{ + for (uint32_t i = 0; i < num_languages; i++) + { + if (strcasecmp (language_names[i].name, string) == 0) + return (LanguageType) language_names[i].type; + } + return eLanguageTypeUnknown; +} + +const char * +Language::GetNameForLanguageType (LanguageType language) +{ + if (language < num_languages) + return language_names[language].name; + else + return language_names[eLanguageTypeUnknown].name; +} + +void +Language::PrintAllLanguages (Stream &s, const char *prefix, const char *suffix) +{ + for (uint32_t i = 1; i < num_languages; i++) + { + s.Printf("%s%s%s", prefix, language_names[i].name, suffix); + } +} + +bool +Language::LanguageIsCPlusPlus (LanguageType language) +{ + switch (language) + { + case eLanguageTypeC_plus_plus: + case eLanguageTypeC_plus_plus_03: + case eLanguageTypeC_plus_plus_11: + case eLanguageTypeC_plus_plus_14: + return true; + default: + return false; + } +} + +bool +Language::LanguageIsObjC (LanguageType language) +{ + switch (language) + { + case eLanguageTypeObjC: + case eLanguageTypeObjC_plus_plus: + return true; + default: + return false; + } +} + +bool +Language::LanguageIsC (LanguageType language) +{ + switch (language) + { + case eLanguageTypeC: + case eLanguageTypeC89: + case eLanguageTypeC99: + case eLanguageTypeC11: + return true; + default: + return false; + } +} + +bool +Language::LanguageIsPascal (LanguageType language) +{ + switch (language) + { + case eLanguageTypePascal83: + return true; + default: + return false; + } +} + //---------------------------------------------------------------------- // Constructor //---------------------------------------------------------------------- diff --git a/lldb/source/Target/LanguageRuntime.cpp b/lldb/source/Target/LanguageRuntime.cpp index c1a4712abc9..f2ad815214a 100644 --- a/lldb/source/Target/LanguageRuntime.cpp +++ b/lldb/source/Target/LanguageRuntime.cpp @@ -321,146 +321,6 @@ LanguageRuntime::CreateExceptionBreakpoint (Target &target, return exc_breakpt_sp; } -struct language_name_pair { - const char *name; - LanguageType type; -}; - -struct language_name_pair language_names[] = -{ - // To allow GetNameForLanguageType to be a simple array lookup, the first - // part of this array must follow enum LanguageType exactly. - { "unknown", eLanguageTypeUnknown }, - { "c89", eLanguageTypeC89 }, - { "c", eLanguageTypeC }, - { "ada83", eLanguageTypeAda83 }, - { "c++", eLanguageTypeC_plus_plus }, - { "cobol74", eLanguageTypeCobol74 }, - { "cobol85", eLanguageTypeCobol85 }, - { "fortran77", eLanguageTypeFortran77 }, - { "fortran90", eLanguageTypeFortran90 }, - { "pascal83", eLanguageTypePascal83 }, - { "modula2", eLanguageTypeModula2 }, - { "java", eLanguageTypeJava }, - { "c99", eLanguageTypeC99 }, - { "ada95", eLanguageTypeAda95 }, - { "fortran95", eLanguageTypeFortran95 }, - { "pli", eLanguageTypePLI }, - { "objective-c", eLanguageTypeObjC }, - { "objective-c++", eLanguageTypeObjC_plus_plus }, - { "upc", eLanguageTypeUPC }, - { "d", eLanguageTypeD }, - { "python", eLanguageTypePython }, - { "opencl", eLanguageTypeOpenCL }, - { "go", eLanguageTypeGo }, - { "modula3", eLanguageTypeModula3 }, - { "haskell", eLanguageTypeHaskell }, - { "c++03", eLanguageTypeC_plus_plus_03 }, - { "c++11", eLanguageTypeC_plus_plus_11 }, - { "ocaml", eLanguageTypeOCaml }, - { "rust", eLanguageTypeRust }, - { "c11", eLanguageTypeC11 }, - { "swift", eLanguageTypeSwift }, - { "julia", eLanguageTypeJulia }, - { "dylan", eLanguageTypeDylan }, - { "c++14", eLanguageTypeC_plus_plus_14 }, - { "fortran03", eLanguageTypeFortran03 }, - { "fortran08", eLanguageTypeFortran08 }, - // Vendor Extensions - { "mipsassem", eLanguageTypeMipsAssembler }, - { "renderscript", eLanguageTypeExtRenderScript}, - // Now synonyms, in arbitrary order - { "objc", eLanguageTypeObjC }, - { "objc++", eLanguageTypeObjC_plus_plus }, - { "pascal", eLanguageTypePascal83 } -}; - -static uint32_t num_languages = sizeof(language_names) / sizeof (struct language_name_pair); - -LanguageType -LanguageRuntime::GetLanguageTypeFromString (const char *string) -{ - for (uint32_t i = 0; i < num_languages; i++) - { - if (strcasecmp (language_names[i].name, string) == 0) - return (LanguageType) language_names[i].type; - } - return eLanguageTypeUnknown; -} - -const char * -LanguageRuntime::GetNameForLanguageType (LanguageType language) -{ - if (language < num_languages) - return language_names[language].name; - else - return language_names[eLanguageTypeUnknown].name; -} - -void -LanguageRuntime::PrintAllLanguages (Stream &s, const char *prefix, const char *suffix) -{ - for (uint32_t i = 1; i < num_languages; i++) - { - s.Printf("%s%s%s", prefix, language_names[i].name, suffix); - } -} - -bool -LanguageRuntime::LanguageIsCPlusPlus (LanguageType language) -{ - switch (language) - { - case eLanguageTypeC_plus_plus: - case eLanguageTypeC_plus_plus_03: - case eLanguageTypeC_plus_plus_11: - case eLanguageTypeC_plus_plus_14: - return true; - default: - return false; - } -} - -bool -LanguageRuntime::LanguageIsObjC (LanguageType language) -{ - switch (language) - { - case eLanguageTypeObjC: - case eLanguageTypeObjC_plus_plus: - return true; - default: - return false; - } -} - -bool -LanguageRuntime::LanguageIsC (LanguageType language) -{ - switch (language) - { - case eLanguageTypeC: - case eLanguageTypeC89: - case eLanguageTypeC99: - case eLanguageTypeC11: - return true; - default: - return false; - } -} - -bool -LanguageRuntime::LanguageIsPascal (LanguageType language) -{ - switch (language) - { - case eLanguageTypePascal83: - return true; - default: - return false; - } -} - void LanguageRuntime::InitializeCommands (CommandObject* parent) { |