1254721Semaste//===-- ExpressionSourceCode.h ----------------------------------*- C++ -*-===// 2254721Semaste// 3254721Semaste// The LLVM Compiler Infrastructure 4254721Semaste// 5254721Semaste// This file is distributed under the University of Illinois Open Source 6254721Semaste// License. See LICENSE.TXT for details. 7254721Semaste// 8254721Semaste//===----------------------------------------------------------------------===// 9254721Semaste 10254721Semaste#ifndef liblldb_ExpressionSourceCode_h 11254721Semaste#define liblldb_ExpressionSourceCode_h 12254721Semaste 13254721Semaste#include "lldb/lldb-enumerations.h" 14254721Semaste 15254721Semaste#include <string> 16254721Semaste 17254721Semastenamespace lldb_private 18254721Semaste{ 19254721Semaste 20254721Semasteclass ExpressionSourceCode 21254721Semaste{ 22254721Semastepublic: 23254721Semaste static const char * g_expression_prefix; 24254721Semaste 25254721Semaste static ExpressionSourceCode *CreateWrapped (const char *prefix, 26254721Semaste const char *body) 27254721Semaste { 28254721Semaste return new ExpressionSourceCode ("$__lldb_expr", 29254721Semaste prefix, 30254721Semaste body, 31254721Semaste true); 32254721Semaste } 33254721Semaste 34254721Semaste static ExpressionSourceCode *CreateUnwrapped (const char *name, 35254721Semaste const char *body) 36254721Semaste { 37254721Semaste return new ExpressionSourceCode (name, 38254721Semaste "", 39254721Semaste body, 40254721Semaste false); 41254721Semaste } 42254721Semaste 43254721Semaste bool NeedsWrapping () const 44254721Semaste { 45254721Semaste return m_wrap; 46254721Semaste } 47254721Semaste 48254721Semaste const char *GetName () const 49254721Semaste { 50254721Semaste return m_name.c_str(); 51254721Semaste } 52254721Semaste 53254721Semaste bool GetText (std::string &text, 54254721Semaste lldb::LanguageType wrapping_language, 55254721Semaste bool const_object, 56254721Semaste bool static_method) const; 57254721Semaste 58254721Semasteprivate: 59254721Semaste ExpressionSourceCode (const char *name, 60254721Semaste const char *prefix, 61254721Semaste const char *body, 62254721Semaste bool wrap) : 63254721Semaste m_name(name), 64254721Semaste m_prefix(prefix), 65254721Semaste m_body(body), 66254721Semaste m_wrap(wrap) 67254721Semaste { 68254721Semaste } 69254721Semaste 70254721Semaste std::string m_name; 71254721Semaste std::string m_prefix; 72254721Semaste std::string m_body; 73254721Semaste bool m_wrap; 74254721Semaste}; 75254721Semaste 76254721Semaste} // namespace lldb_private 77254721Semaste 78254721Semaste#endif 79