diff options
| author | Enrico Granata <egranata@apple.com> | 2015-09-02 01:21:31 +0000 |
|---|---|---|
| committer | Enrico Granata <egranata@apple.com> | 2015-09-02 01:21:31 +0000 |
| commit | df7e79e64689157093dc20f3543956a78554eaa4 (patch) | |
| tree | 2b5124198ab648e15a8b92b4933ed486fdac647a /lldb/source/DataFormatters | |
| parent | 0e0984eebb0314f980ee9d2737e3b93ecab13d5a (diff) | |
| download | bcm5719-llvm-df7e79e64689157093dc20f3543956a78554eaa4.tar.gz bcm5719-llvm-df7e79e64689157093dc20f3543956a78554eaa4.zip | |
Move the functions that FormatManager uses to actually load formatters into their own file
These are useful helpers over the low-level API of the FormattersContainer, and since we're actually going to start moving formatters into plugins, it makes sense to simplify things
llvm-svn: 246612
Diffstat (limited to 'lldb/source/DataFormatters')
| -rw-r--r-- | lldb/source/DataFormatters/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | lldb/source/DataFormatters/FormatManager.cpp | 101 | ||||
| -rw-r--r-- | lldb/source/DataFormatters/FormattersHelpers.cpp | 120 |
3 files changed, 123 insertions, 99 deletions
diff --git a/lldb/source/DataFormatters/CMakeLists.txt b/lldb/source/DataFormatters/CMakeLists.txt index 691190a5768..385d4d4fb64 100644 --- a/lldb/source/DataFormatters/CMakeLists.txt +++ b/lldb/source/DataFormatters/CMakeLists.txt @@ -9,6 +9,7 @@ add_lldb_library(lldbDataFormatters FormatCache.cpp FormatClasses.cpp FormatManager.cpp + FormattersHelpers.cpp LanguageCategory.cpp LibCxx.cpp LibCxxInitializerList.cpp diff --git a/lldb/source/DataFormatters/FormatManager.cpp b/lldb/source/DataFormatters/FormatManager.cpp index 3313dcca72a..08b7f6d87c3 100644 --- a/lldb/source/DataFormatters/FormatManager.cpp +++ b/lldb/source/DataFormatters/FormatManager.cpp @@ -16,6 +16,7 @@ #include "lldb/Core/Debugger.h" #include "lldb/DataFormatters/CXXFormatterFunctions.h" +#include "lldb/DataFormatters/FormattersHelpers.h" #include "lldb/DataFormatters/LanguageCategory.h" #include "lldb/Target/ExecutionContext.h" #include "lldb/Target/Platform.h" @@ -25,7 +26,7 @@ using namespace lldb; using namespace lldb_private; - +using namespace lldb_private::formatters; struct FormatInfo { @@ -1024,104 +1025,6 @@ FormatManager::FormatManager() : EnableCategory(m_system_category_name,TypeCategoryMap::Last); } -static void -AddFormat (TypeCategoryImpl::SharedPointer category_sp, - lldb::Format format, - ConstString type_name, - TypeFormatImpl::Flags flags, - bool regex = false) -{ - lldb::TypeFormatImplSP format_sp(new TypeFormatImpl_Format(format, flags)); - - if (regex) - category_sp->GetRegexTypeFormatsContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),format_sp); - else - category_sp->GetTypeFormatsContainer()->Add(type_name, format_sp); -} - - -static void -AddStringSummary(TypeCategoryImpl::SharedPointer category_sp, - const char* string, - ConstString type_name, - TypeSummaryImpl::Flags flags, - bool regex = false) -{ - lldb::TypeSummaryImplSP summary_sp(new StringSummaryFormat(flags, - string)); - - if (regex) - category_sp->GetRegexTypeSummariesContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),summary_sp); - else - category_sp->GetTypeSummariesContainer()->Add(type_name, summary_sp); -} - -static void -AddOneLineSummary (TypeCategoryImpl::SharedPointer category_sp, - ConstString type_name, - TypeSummaryImpl::Flags flags, - bool regex = false) -{ - flags.SetShowMembersOneLiner(true); - lldb::TypeSummaryImplSP summary_sp(new StringSummaryFormat(flags, "")); - - if (regex) - category_sp->GetRegexTypeSummariesContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),summary_sp); - else - category_sp->GetTypeSummariesContainer()->Add(type_name, summary_sp); -} - -#ifndef LLDB_DISABLE_PYTHON -static void -AddCXXSummary (TypeCategoryImpl::SharedPointer category_sp, - CXXFunctionSummaryFormat::Callback funct, - const char* description, - ConstString type_name, - TypeSummaryImpl::Flags flags, - bool regex = false) -{ - lldb::TypeSummaryImplSP summary_sp(new CXXFunctionSummaryFormat(flags,funct,description)); - if (regex) - category_sp->GetRegexTypeSummariesContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),summary_sp); - else - category_sp->GetTypeSummariesContainer()->Add(type_name, summary_sp); -} -#endif - -#ifndef LLDB_DISABLE_PYTHON -static void AddCXXSynthetic (TypeCategoryImpl::SharedPointer category_sp, - CXXSyntheticChildren::CreateFrontEndCallback generator, - const char* description, - ConstString type_name, - ScriptedSyntheticChildren::Flags flags, - bool regex = false) -{ - lldb::SyntheticChildrenSP synth_sp(new CXXSyntheticChildren(flags,description,generator)); - if (regex) - category_sp->GetRegexTypeSyntheticsContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())), synth_sp); - else - category_sp->GetTypeSyntheticsContainer()->Add(type_name,synth_sp); -} -#endif - -#ifndef LLDB_DISABLE_PYTHON -static void AddFilter (TypeCategoryImpl::SharedPointer category_sp, - std::vector<std::string> children, - const char* description, - ConstString type_name, - ScriptedSyntheticChildren::Flags flags, - bool regex = false) -{ - TypeFilterImplSP filter_sp(new TypeFilterImpl(flags)); - for (auto child : children) - filter_sp->AddExpressionPath(child); - if (regex) - category_sp->GetRegexTypeFiltersContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())), filter_sp); - else - category_sp->GetTypeFiltersContainer()->Add(type_name,filter_sp); -} -#endif - void FormatManager::LoadLibStdcppFormatters() { diff --git a/lldb/source/DataFormatters/FormattersHelpers.cpp b/lldb/source/DataFormatters/FormattersHelpers.cpp new file mode 100644 index 00000000000..cbded9da963 --- /dev/null +++ b/lldb/source/DataFormatters/FormattersHelpers.cpp @@ -0,0 +1,120 @@ +//===-- FormattersHelpers.cpp -------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// C Includes + +// C++ Includes + +// Other libraries and framework includes + +// Project includes +#include "lldb/DataFormatters/FormattersHelpers.h" + +#include "lldb/Core/ConstString.h" +#include "lldb/Core/RegularExpression.h" + +using namespace lldb; +using namespace lldb_private; +using namespace lldb_private::formatters; + +void +lldb_private::formatters::AddFormat (TypeCategoryImpl::SharedPointer category_sp, + lldb::Format format, + ConstString type_name, + TypeFormatImpl::Flags flags, + bool regex) +{ + lldb::TypeFormatImplSP format_sp(new TypeFormatImpl_Format(format, flags)); + + if (regex) + category_sp->GetRegexTypeFormatsContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),format_sp); + else + category_sp->GetTypeFormatsContainer()->Add(type_name, format_sp); +} + + +void +lldb_private::formatters::AddStringSummary(TypeCategoryImpl::SharedPointer category_sp, + const char* string, + ConstString type_name, + TypeSummaryImpl::Flags flags, + bool regex) +{ + lldb::TypeSummaryImplSP summary_sp(new StringSummaryFormat(flags, + string)); + + if (regex) + category_sp->GetRegexTypeSummariesContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),summary_sp); + else + category_sp->GetTypeSummariesContainer()->Add(type_name, summary_sp); +} + +void +lldb_private::formatters::AddOneLineSummary (TypeCategoryImpl::SharedPointer category_sp, + ConstString type_name, + TypeSummaryImpl::Flags flags, + bool regex) +{ + flags.SetShowMembersOneLiner(true); + lldb::TypeSummaryImplSP summary_sp(new StringSummaryFormat(flags, "")); + + if (regex) + category_sp->GetRegexTypeSummariesContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),summary_sp); + else + category_sp->GetTypeSummariesContainer()->Add(type_name, summary_sp); +} + +#ifndef LLDB_DISABLE_PYTHON +void +lldb_private::formatters::AddCXXSummary (TypeCategoryImpl::SharedPointer category_sp, + CXXFunctionSummaryFormat::Callback funct, + const char* description, + ConstString type_name, + TypeSummaryImpl::Flags flags, + bool regex) +{ + lldb::TypeSummaryImplSP summary_sp(new CXXFunctionSummaryFormat(flags,funct,description)); + if (regex) + category_sp->GetRegexTypeSummariesContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),summary_sp); + else + category_sp->GetTypeSummariesContainer()->Add(type_name, summary_sp); +} + +void +lldb_private::formatters::AddCXXSynthetic (TypeCategoryImpl::SharedPointer category_sp, + CXXSyntheticChildren::CreateFrontEndCallback generator, + const char* description, + ConstString type_name, + ScriptedSyntheticChildren::Flags flags, + bool regex) +{ + lldb::SyntheticChildrenSP synth_sp(new CXXSyntheticChildren(flags,description,generator)); + if (regex) + category_sp->GetRegexTypeSyntheticsContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())), synth_sp); + else + category_sp->GetTypeSyntheticsContainer()->Add(type_name,synth_sp); +} + +void +lldb_private::formatters::AddFilter (TypeCategoryImpl::SharedPointer category_sp, + std::vector<std::string> children, + const char* description, + ConstString type_name, + ScriptedSyntheticChildren::Flags flags, + bool regex) +{ + TypeFilterImplSP filter_sp(new TypeFilterImpl(flags)); + for (auto child : children) + filter_sp->AddExpressionPath(child); + if (regex) + category_sp->GetRegexTypeFiltersContainer()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())), filter_sp); + else + category_sp->GetTypeFiltersContainer()->Add(type_name,filter_sp); +} +#endif |

