ExpressionSourceCode.h revision de3d27ef1d426713d7af044cfd5c34a9aeae926a
11468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant//===-- ExpressionSourceCode.h ----------------------------------*- C++ -*-===// 21468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant// 31468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant// The LLVM Compiler Infrastructure 41468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant// 51468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant// This file is distributed under the University of Illinois Open Source 61468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant// License. See LICENSE.TXT for details. 71468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant// 81468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant//===----------------------------------------------------------------------===// 91468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant 101468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant#ifndef liblldb_ExpressionSourceCode_h 111468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant#define liblldb_ExpressionSourceCode_h 121468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant 131468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant#include "lldb-enumerations.h" 141468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant 151468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant#include <string> 16933afa9761c1c1f916161278a99284d50a594939Marshall Clow 171468b668aa964beb1220e9b36162b092fb54952bHoward Hinnantnamespace lldb_private 181468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant{ 19933afa9761c1c1f916161278a99284d50a594939Marshall Clow 20933afa9761c1c1f916161278a99284d50a594939Marshall Clowclass ExpressionSourceCode 21933afa9761c1c1f916161278a99284d50a594939Marshall Clow{ 22933afa9761c1c1f916161278a99284d50a594939Marshall Clowpublic: 23933afa9761c1c1f916161278a99284d50a594939Marshall Clow static ExpressionSourceCode *CreateWrapped (const char *prefix, 24933afa9761c1c1f916161278a99284d50a594939Marshall Clow const char *body) 25933afa9761c1c1f916161278a99284d50a594939Marshall Clow { 26933afa9761c1c1f916161278a99284d50a594939Marshall Clow return new ExpressionSourceCode ("$__lldb_expr", 27933afa9761c1c1f916161278a99284d50a594939Marshall Clow prefix, 28933afa9761c1c1f916161278a99284d50a594939Marshall Clow body, 29933afa9761c1c1f916161278a99284d50a594939Marshall Clow true); 30933afa9761c1c1f916161278a99284d50a594939Marshall Clow } 31933afa9761c1c1f916161278a99284d50a594939Marshall Clow 321468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant static ExpressionSourceCode *CreateUnwrapped (const char *name, 331468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant const char *body) 341468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant { 351468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant return new ExpressionSourceCode (name, 361468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant "", 371468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant body, 381468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant false); 391468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant } 401468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant 411468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant bool NeedsWrapping () const 421468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant { 431468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant return m_wrap; 441468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant } 451468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant 461468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant const char *GetName () const 471468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant { 481468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant return m_name.c_str(); 491468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant } 501468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant 511468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant bool GetText (std::string &text, 521468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant lldb::LanguageType wrapping_language, 531468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant bool const_object) const; 541468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant 551468b668aa964beb1220e9b36162b092fb54952bHoward Hinnantprivate: 561468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant ExpressionSourceCode (const char *name, 571468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant const char *prefix, 581468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant const char *body, 591468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant bool wrap) : 60d1794072881115c9c4e0356c34a1f1af176cd4edHoward Hinnant m_name(name), 61d1794072881115c9c4e0356c34a1f1af176cd4edHoward Hinnant m_prefix(prefix), 621468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant m_body(body), 631468b668aa964beb1220e9b36162b092fb54952bHoward Hinnant m_wrap(wrap) 64933afa9761c1c1f916161278a99284d50a594939Marshall Clow { 65933afa9761c1c1f916161278a99284d50a594939Marshall Clow } 66933afa9761c1c1f916161278a99284d50a594939Marshall Clow 67933afa9761c1c1f916161278a99284d50a594939Marshall Clow std::string m_name; 68933afa9761c1c1f916161278a99284d50a594939Marshall Clow std::string m_prefix; 69933afa9761c1c1f916161278a99284d50a594939Marshall Clow std::string m_body; 70933afa9761c1c1f916161278a99284d50a594939Marshall Clow bool m_wrap; 71933afa9761c1c1f916161278a99284d50a594939Marshall Clow}; 72933afa9761c1c1f916161278a99284d50a594939Marshall Clow 73933afa9761c1c1f916161278a99284d50a594939Marshall Clow} // namespace lldb_private 7480e19ac90f90c5f2aef3d8a6a74b3ffd342ecd0eHoward Hinnant 75933afa9761c1c1f916161278a99284d50a594939Marshall Clow#endif 7680e19ac90f90c5f2aef3d8a6a74b3ffd342ecd0eHoward Hinnant