//===-- Language.cpp --------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "lldb/lldb-private.h" #include "lldb/Core/Language.h" #include "lldb/Core/Stream.h" using namespace lldb; using namespace lldb_private; #define ENUM_TO_DCSTREAM(x) case x: s->PutCString(#x); return typedef struct LanguageStrings { const char * names[3]; }; static LanguageStrings g_languages[] = { { "unknown" , NULL , NULL }, { "c89" , NULL , "ISO C:1989" }, { NULL , NULL , "K&R C" }, { "ada83" , "Ada83" , "ISO Ada:1983" }, { "c++" , "cxx" , "ISO C++:1998" }, { "cobol74" , "Cobol74" , "ISO Cobol:1974" }, { "cobol" , "Cobol85" , "ISO Cobol:1985." }, { "f77" , "Fortran77" , "ISO Fortran 77." }, { "f90" , "Fortran90" , "ISO Fortran 90" }, { "pascal" , "Pascal83" , "ISO Pascal:1983" }, { "modula2" , "Modula2" , "ISO Modula-2:1996" }, { "java" , NULL , "Java" }, { "c" , "C99" , "ISO C:1999" }, { "ada" , "Ada95" , "ISO Ada:1995" }, { "f95" , "Fortran95" , "ISO Fortran 95" }, { "PLI" , NULL , "ANSI PL/I:1976" }, { "objc" , NULL , "Objective-C" }, { "objc++" , NULL , "Objective-C++" }, { "upc" , NULL , "Unified Parallel C" }, { "d" , NULL , "D" }, { "python" , NULL , "Python" } }; static const uint32_t g_num_languages = sizeof(g_languages)/sizeof(LanguageStrings); Language::Language(Language::Type language) : m_language (language) { } Language::~Language() { } Language::Type Language::GetLanguage() const { return m_language; } void Language::Clear () { m_language = Unknown; } void Language::SetLanguage(Language::Type language) { m_language = language; } bool Language::SetLanguageFromCString(const char *language_cstr) { size_t i, desc_idx; const char *name; // First check the most common name for the languages for (desc_idx=lldb::eDescriptionLevelBrief; desc_idxPutCString(lang_cstr); else s->Printf("Language(language = 0x%4.4x)", m_language); } Stream& lldb_private::operator << (Stream& s, const Language& language) { language.Dump(&s); return s; }