Implement a Target::GetTypeSystemForLanguage API, as well as provide helpers on the TypeSystem to get numeric types of specific sizes and signedness

llvm-svn: 247082
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp
index d58df59..c3d342e 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -1906,6 +1906,27 @@
     return m_scratch_ast_context_ap.get();
 }
 
+TypeSystem*
+Target::GetTypeSystemForLanguage (lldb::LanguageType language)
+{
+    switch (language)
+    {
+        case lldb::eLanguageTypeC:
+        case lldb::eLanguageTypeC11:
+        case lldb::eLanguageTypeC89:
+        case lldb::eLanguageTypeC99:
+        case lldb::eLanguageTypeC_plus_plus:
+        case lldb::eLanguageTypeC_plus_plus_03:
+        case lldb::eLanguageTypeC_plus_plus_11:
+        case lldb::eLanguageTypeC_plus_plus_14:
+        case lldb::eLanguageTypeObjC:
+        case lldb::eLanguageTypeObjC_plus_plus:
+            return GetScratchClangASTContext(true);
+        default:
+            return nullptr;
+    }
+}
+
 ClangASTImporter *
 Target::GetClangASTImporter()
 {