//===-- SourceLanguage.cpp - Implement the SourceLanguage class -----------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file implements the SourceLanguage class. // //===----------------------------------------------------------------------===// #include "llvm/Debugger/SourceLanguage.h" #include "llvm/Debugger/ProgramInfo.h" using namespace llvm; const SourceLanguage &SourceLanguage::get(unsigned ID) { switch (ID) { case 1: // DW_LANG_C89 case 2: // DW_LANG_C case 12: // DW_LANG_C99 return getCFamilyInstance(); case 4: // DW_LANG_C_plus_plus return getCPlusPlusInstance(); case 3: // DW_LANG_Ada83 case 5: // DW_LANG_Cobol74 case 6: // DW_LANG_Cobol85 case 7: // DW_LANG_Fortran77 case 8: // DW_LANG_Fortran90 case 9: // DW_LANG_Pascal83 case 10: // DW_LANG_Modula2 case 11: // DW_LANG_Java case 13: // DW_LANG_Ada95 case 14: // DW_LANG_Fortran95 default: return getUnknownLanguageInstance(); } } SourceFileInfo * SourceLanguage::createSourceFileInfo(const GlobalVariable *Desc, ProgramInfo &PI) const { return new SourceFileInfo(Desc, *this); } SourceFunctionInfo * SourceLanguage::createSourceFunctionInfo(const GlobalVariable *Desc, ProgramInfo &PI) const { return new SourceFunctionInfo(PI, Desc); }