opnsense-src/include/lldb/Expression/ExpressionSourceCode.h
Ed Maste f034231a6a Import lldb as of SVN r188801
(A number of files not required for the FreeBSD build have been removed.)

Sponsored by:	DARPA, AFRL
2013-08-23 17:46:38 +00:00

78 lines
2 KiB
C++

//===-- ExpressionSourceCode.h ----------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef liblldb_ExpressionSourceCode_h
#define liblldb_ExpressionSourceCode_h
#include "lldb/lldb-enumerations.h"
#include <string>
namespace lldb_private
{
class ExpressionSourceCode
{
public:
static const char * g_expression_prefix;
static ExpressionSourceCode *CreateWrapped (const char *prefix,
const char *body)
{
return new ExpressionSourceCode ("$__lldb_expr",
prefix,
body,
true);
}
static ExpressionSourceCode *CreateUnwrapped (const char *name,
const char *body)
{
return new ExpressionSourceCode (name,
"",
body,
false);
}
bool NeedsWrapping () const
{
return m_wrap;
}
const char *GetName () const
{
return m_name.c_str();
}
bool GetText (std::string &text,
lldb::LanguageType wrapping_language,
bool const_object,
bool static_method) const;
private:
ExpressionSourceCode (const char *name,
const char *prefix,
const char *body,
bool wrap) :
m_name(name),
m_prefix(prefix),
m_body(body),
m_wrap(wrap)
{
}
std::string m_name;
std::string m_prefix;
std::string m_body;
bool m_wrap;
};
} // namespace lldb_private
#endif