CPPLanguageRuntime.h revision 8b7b2276132c7353cabd22000287b42badc26613
1//===-- CPPLanguageRuntime.h ---------------------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef liblldb_CPPLanguageRuntime_h_ 11#define liblldb_CPPLanguageRuntime_h_ 12 13// C Includes 14// C++ Includes 15// Other libraries and framework includes 16// Project includes 17#include "lldb/Core/PluginInterface.h" 18#include "lldb/lldb-private.h" 19#include "lldb/Target/LanguageRuntime.h" 20 21namespace lldb_private { 22 23class CPPLanguageRuntime : 24 public LanguageRuntime 25{ 26public: 27 virtual 28 ~CPPLanguageRuntime(); 29 30 virtual lldb::LanguageType 31 GetLanguageType () const 32 { 33 return lldb::eLanguageTypeC_plus_plus; 34 } 35 36 virtual bool 37 IsVTableName (const char *name) = 0; 38 39 virtual bool 40 GetObjectDescription (Stream &str, ValueObject &object); 41 42 virtual bool 43 GetObjectDescription (Stream &str, Value &value, ExecutionContextScope *exe_scope); 44 45 static bool 46 IsCPPMangledName(const char *name); 47 48 static bool 49 IsPossibleCPPCall (const char *name, const char *&base_name_start, const char *&base_name_end); 50 51 static bool 52 StripNamespacesFromVariableName (const char *name, const char *&base_name_start, const char *&base_name_end); 53 54protected: 55 //------------------------------------------------------------------ 56 // Classes that inherit from CPPLanguageRuntime can see and modify these 57 //------------------------------------------------------------------ 58 CPPLanguageRuntime(Process *process); 59private: 60 DISALLOW_COPY_AND_ASSIGN (CPPLanguageRuntime); 61}; 62 63} // namespace lldb_private 64 65#endif // liblldb_CPPLanguageRuntime_h_ 66