Author: teemperor
Date: Thu Jul 18 01:22:19 2019
New Revision: 366415

URL: http://llvm.org/viewvc/llvm-project?rev=366415&view=rev
Log:
[lldb][NFC] Tablegenify type commands

Modified:
    lldb/trunk/source/Commands/CommandObjectType.cpp
    lldb/trunk/source/Commands/Options.td

Modified: lldb/trunk/source/Commands/CommandObjectType.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectType.cpp?rev=366415&r1=366414&r2=366415&view=diff
==============================================================================
--- lldb/trunk/source/Commands/CommandObjectType.cpp (original)
+++ lldb/trunk/source/Commands/CommandObjectType.cpp Thu Jul 18 01:22:19 2019
@@ -96,23 +96,8 @@ static bool WarnOnPotentialUnquotedUnsig
 }
 
 static constexpr OptionDefinition g_type_summary_add_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_ALL,                false, "category",        'w', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeName,           "Add 
this to the given category instead of the default one." },
-  { LLDB_OPT_SET_ALL,                false, "cascade",         'C', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeBoolean,        "If 
true, cascade through typedef chains." },
-  { LLDB_OPT_SET_ALL,                false, "no-value",        'v', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "Don't 
show the value, just show the summary, for this type." },
-  { LLDB_OPT_SET_ALL,                false, "skip-pointers",   'p', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "Don't 
use this format for pointers-to-type objects." },
-  { LLDB_OPT_SET_ALL,                false, "skip-references", 'r', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "Don't 
use this format for references-to-type objects." },
-  { LLDB_OPT_SET_ALL,                false, "regex",           'x', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "Type 
names are actually regular expressions." },
-  { LLDB_OPT_SET_1,                  true,  "inline-children", 'c', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "If 
true, inline all child values into summary string." },
-  { LLDB_OPT_SET_1,                  false, "omit-names",      'O', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "If 
true, omit value names in the summary display." },
-  { LLDB_OPT_SET_2,                  true,  "summary-string",  's', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeSummaryString,  
"Summary string used to display text and object contents." },
-  { LLDB_OPT_SET_3,                  false, "python-script",   'o', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypePythonScript,   "Give 
a one-liner Python script as part of the command." },
-  { LLDB_OPT_SET_3,                  false, "python-function", 'F', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypePythonFunction, "Give 
the name of a Python function to use for this type." },
-  { LLDB_OPT_SET_3,                  false, "input-python",    'P', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "Input 
Python code to use for this type manually." },
-  { LLDB_OPT_SET_2 | LLDB_OPT_SET_3, false, "expand",          'e', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           
"Expand aggregate data types to show children on separate lines." },
-  { LLDB_OPT_SET_2 | LLDB_OPT_SET_3, false, "hide-empty",      'h', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "Do 
not expand aggregate data types with no children." },
-  { LLDB_OPT_SET_2 | LLDB_OPT_SET_3, false, "name",            'n', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeName,           "A 
name for this summary string." }
-    // clang-format on
+#define LLDB_OPTIONS_type_summary_add
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeSummaryAdd : public CommandObjectParsed,
@@ -298,15 +283,8 @@ static const char *g_synth_addreader_ins
     "class synthProvider:\n";
 
 static constexpr OptionDefinition g_type_synth_add_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_ALL, false, "cascade",         'C', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeBoolean,     "If true, 
cascade through typedef chains." },
-  { LLDB_OPT_SET_ALL, false, "skip-pointers",   'p', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,        "Don't 
use this format for pointers-to-type objects." },
-  { LLDB_OPT_SET_ALL, false, "skip-references", 'r', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,        "Don't 
use this format for references-to-type objects." },
-  { LLDB_OPT_SET_ALL, false, "category",        'w', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeName,        "Add this 
to the given category instead of the default one." },
-  { LLDB_OPT_SET_2,   false, "python-class",    'l', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypePythonClass, "Use this 
Python class to produce synthetic children." },
-  { LLDB_OPT_SET_3,   false, "input-python",    'P', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,        "Type 
Python code to generate a class that provides synthetic children." },
-  { LLDB_OPT_SET_ALL, false, "regex",           'x', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,        "Type 
names are actually regular expressions." }
-    // clang-format on
+#define LLDB_OPTIONS_type_synth_add
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeSynthAdd : public CommandObjectParsed,
@@ -526,14 +504,8 @@ public:
 // CommandObjectTypeFormatAdd
 
 static constexpr OptionDefinition g_type_format_add_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_ALL, false, "category",        'w', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeName,    "Add this to 
the given category instead of the default one." },
-  { LLDB_OPT_SET_ALL, false, "cascade",         'C', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeBoolean, "If true, 
cascade through typedef chains." },
-  { LLDB_OPT_SET_ALL, false, "skip-pointers",   'p', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,    "Don't use 
this format for pointers-to-type objects." },
-  { LLDB_OPT_SET_ALL, false, "skip-references", 'r', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,    "Don't use 
this format for references-to-type objects." },
-  { LLDB_OPT_SET_ALL, false, "regex",           'x', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,    "Type names 
are actually regular expressions." },
-  { LLDB_OPT_SET_2,   false, "type",            't', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeName,    "Format 
variables as if they were of this type." }
-    // clang-format on
+#define LLDB_OPTIONS_type_format_add
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeFormatAdd : public CommandObjectParsed {
@@ -749,11 +721,8 @@ protected:
 };
 
 static constexpr OptionDefinition g_type_formatter_delete_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_1, false, "all",      'a', OptionParser::eNoArgument,       
nullptr, {}, 0, eArgTypeNone,     "Delete from every category." },
-  { LLDB_OPT_SET_2, false, "category", 'w', OptionParser::eRequiredArgument, 
nullptr, {}, 0, eArgTypeName,     "Delete from given category." },
-  { LLDB_OPT_SET_3, false, "language", 'l', OptionParser::eRequiredArgument, 
nullptr, {}, 0, eArgTypeLanguage, "Delete from given language's category." }
-    // clang-format on
+#define LLDB_OPTIONS_type_formatter_delete
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeFormatterDelete : public CommandObjectParsed {
@@ -891,9 +860,8 @@ protected:
 };
 
 static constexpr OptionDefinition g_type_formatter_clear_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_ALL, false, "all", 'a', OptionParser::eNoArgument, nullptr, 
{}, 0, eArgTypeNone, "Clear every category." }
-    // clang-format on
+#define LLDB_OPTIONS_type_formatter_clear
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeFormatterClear : public CommandObjectParsed {
@@ -1005,10 +973,8 @@ public:
 
 
 static constexpr OptionDefinition g_type_formatter_list_options[] = {
-  // clang-format off
-  {LLDB_OPT_SET_1, false, "category-regex", 'w', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeName,     "Only show 
categories matching this filter."},
-  {LLDB_OPT_SET_2, false, "language",       'l', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeLanguage, "Only show 
the category for a specific language."}
-  // clang-format on
+#define LLDB_OPTIONS_type_formatter_list
+#include "CommandOptions.inc"
 };
 
 template <typename FormatterType>
@@ -1767,10 +1733,8 @@ protected:
 // CommandObjectTypeCategoryDefine
 
 static constexpr OptionDefinition g_type_category_define_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_ALL, false, "enabled",  'e', OptionParser::eNoArgument,       
nullptr, {}, 0, eArgTypeNone,     "If specified, this category will be created 
enabled." },
-  { LLDB_OPT_SET_ALL, false, "language", 'l', OptionParser::eRequiredArgument, 
nullptr, {}, 0, eArgTypeLanguage, "Specify the language that this category is 
supported for." }
-    // clang-format on
+#define LLDB_OPTIONS_type_category_define
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeCategoryDefine : public CommandObjectParsed {
@@ -1872,9 +1836,8 @@ protected:
 // CommandObjectTypeCategoryEnable
 
 static constexpr OptionDefinition g_type_category_enable_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_ALL, false, "language", 'l', OptionParser::eRequiredArgument, 
nullptr, {}, 0, eArgTypeLanguage, "Enable the category for this language." },
-    // clang-format on
+#define LLDB_OPTIONS_type_category_enable
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeCategoryEnable : public CommandObjectParsed {
@@ -2045,9 +2008,8 @@ protected:
 // CommandObjectTypeCategoryDisable
 
 OptionDefinition constexpr g_type_category_disable_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_ALL, false, "language", 'l', OptionParser::eRequiredArgument, 
nullptr, {}, 0, eArgTypeLanguage, "Enable the category for this language." }
-    // clang-format on
+#define LLDB_OPTIONS_type_category_disable
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeCategoryDisable : public CommandObjectParsed {
@@ -2455,14 +2417,8 @@ bool CommandObjectTypeSynthAdd::AddSynth
 #endif // LLDB_DISABLE_PYTHON
 
 static constexpr OptionDefinition g_type_filter_add_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_ALL, false, "cascade",         'C', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeBoolean,        "If 
true, cascade through typedef chains." },
-  { LLDB_OPT_SET_ALL, false, "skip-pointers",   'p', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "Don't 
use this format for pointers-to-type objects." },
-  { LLDB_OPT_SET_ALL, false, "skip-references", 'r', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "Don't 
use this format for references-to-type objects." },
-  { LLDB_OPT_SET_ALL, false, "category",        'w', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeName,           "Add 
this to the given category instead of the default one." },
-  { LLDB_OPT_SET_ALL, false, "child",           'c', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeExpressionPath, 
"Include this expression path in the synthetic view." },
-  { LLDB_OPT_SET_ALL, false, "regex",           'x', 
OptionParser::eNoArgument,       nullptr, {}, 0, eArgTypeNone,           "Type 
names are actually regular expressions." }
-    // clang-format on
+#define LLDB_OPTIONS_type_filter_add
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeFilterAdd : public CommandObjectParsed {
@@ -2708,10 +2664,8 @@ protected:
 
 // "type lookup"
 static constexpr OptionDefinition g_type_lookup_options[] = {
-    // clang-format off
-  { LLDB_OPT_SET_ALL, false, "show-help", 'h', OptionParser::eNoArgument,      
 nullptr, {}, 0, eArgTypeNone,     "Display available help for types" },
-  { LLDB_OPT_SET_ALL, false, "language",  'l', 
OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeLanguage, "Which 
language's types should the search scope be" }
-    // clang-format on
+#define LLDB_OPTIONS_type_lookup
+#include "CommandOptions.inc"
 };
 
 class CommandObjectTypeLookup : public CommandObjectRaw {

Modified: lldb/trunk/source/Commands/Options.td
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/Options.td?rev=366415&r1=366414&r2=366415&view=diff
==============================================================================
--- lldb/trunk/source/Commands/Options.td (original)
+++ lldb/trunk/source/Commands/Options.td Thu Jul 18 01:22:19 2019
@@ -52,6 +52,85 @@ let Command = "breakpoint list" in {
     "provided, which prime new targets.">;
 }
 
+let Command = "type summary add" in {
+  def type_summary_add_category : Option<"category", "w">, Arg<"Name">, 
Desc<"Add this to the given category instead of the default one.">;
+  def type_summary_add_cascade : Option<"cascade", "C">, Arg<"Boolean">, 
Desc<"If true, cascade through typedef chains.">;
+  def type_summary_add_no_value : Option<"no-value", "v">, Desc<"Don't show 
the value, just show the summary, for this type.">;
+  def type_summary_add_skip_pointers : Option<"skip-pointers", "p">, 
Desc<"Don't use this format for pointers-to-type objects.">;
+  def type_summary_add_skip_references : Option<"skip-references", "r">, 
Desc<"Don't use this format for references-to-type objects.">;
+  def type_summary_add_regex : Option<"regex", "x">, Desc<"Type names are 
actually regular expressions.">;
+  def type_summary_add_inline_children : Option<"inline-children", "c">, 
Group<1>, Required, Desc<"If true, inline all child values into summary 
string.">;
+  def type_summary_add_omit_names : Option<"omit-names", "O">, Group<1>, 
Desc<"If true, omit value names in the summary display.">;
+  def type_summary_add_summary_string : Option<"summary-string", "s">, 
Group<2>, Arg<"SummaryString">, Required, Desc<"Summary string used to display 
text and object contents.">;
+  def type_summary_add_python_script : Option<"python-script", "o">, Group<3>, 
Arg<"PythonScript">, Desc<"Give a one-liner Python script as part of the 
command.">;
+  def type_summary_add_python_function : Option<"python-function", "F">, 
Group<3>, Arg<"PythonFunction">, Desc<"Give the name of a Python function to 
use for this type.">;
+  def type_summary_add_input_python : Option<"input-python", "P">, Group<3>, 
Desc<"Input Python code to use for this type manually.">;
+  def type_summary_add_expand : Option<"expand", "e">, Groups<[2,3]>, 
Desc<"Expand aggregate data types to show children on separate lines.">;
+  def type_summary_add_hide_empty : Option<"hide-empty", "h">, Groups<[2,3]>, 
Desc<"Do not expand aggregate data types with no children.">;
+  def type_summary_add_name : Option<"name", "n">, Groups<[2,3]>, Arg<"Name">, 
Desc<"A name for this summary string.">;
+}
+
+let Command = "type synth add" in {
+  def type_synth_add_cascade : Option<"cascade", "C">, Arg<"Boolean">, 
Desc<"If true, cascade through typedef chains.">;
+  def type_synth_add_skip_pointers : Option<"skip-pointers", "p">, Desc<"Don't 
use this format for pointers-to-type objects.">;
+  def type_synth_add_skip_references : Option<"skip-references", "r">, 
Desc<"Don't use this format for references-to-type objects.">;
+  def type_synth_add_category : Option<"category", "w">, Arg<"Name">, 
Desc<"Add this to the given category instead of the default one.">;
+  def type_synth_add_python_class : Option<"python-class", "l">, Group<2>, 
Arg<"PythonClass">, Desc<"Use this Python class to produce synthetic 
children.">;
+  def type_synth_add_input_python : Option<"input-python", "P">, Group<3>, 
Desc<"Type Python code to generate a class that provides synthetic children.">;
+  def type_synth_add_regex : Option<"regex", "x">, Desc<"Type names are 
actually regular expressions.">;
+}
+
+let Command = "type format add" in {
+  def type_format_add_category : Option<"category", "w">, Arg<"Name">, 
Desc<"Add this to the given category instead of the default one.">;
+  def type_format_add_cascade : Option<"cascade", "C">, Arg<"Boolean">, 
Desc<"If true, cascade through typedef chains.">;
+  def type_format_add_skip_pointers : Option<"skip-pointers", "p">, 
Desc<"Don't use this format for pointers-to-type objects.">;
+  def type_format_add_skip_references : Option<"skip-references", "r">, 
Desc<"Don't use this format for references-to-type objects.">;
+  def type_format_add_regex : Option<"regex", "x">, Desc<"Type names are 
actually regular expressions.">;
+  def type_format_add_type : Option<"type", "t">, Group<2>, Arg<"Name">, 
Desc<"Format variables as if they were of this type.">;
+}
+
+let Command = "type formatter delete" in {
+  def type_formatter_delete_all : Option<"all", "a">, Group<1>, Desc<"Delete 
from every category.">;
+  def type_formatter_delete_category : Option<"category", "w">, Group<2>, 
Arg<"Name">, Desc<"Delete from given category.">;
+  def type_formatter_delete_language : Option<"language", "l">, Group<3>, 
Arg<"Language">, Desc<"Delete from given language's category.">;
+}
+
+let Command = "type formatter clear" in {
+  def type_formatter_clear_all : Option<"all", "a">, Desc<"Clear every 
category.">;
+}
+
+let Command = "type formatter list" in {
+  def type_formatter_list_category_regex : Option<"category-regex", "w">, 
Group<1>, Arg<"Name">, Desc<"Only show categories matching this filter.">;
+  def type_formatter_list_language : Option<"language", "l">, Group<2>, 
Arg<"Language">, Desc<"Only show the category for a specific language.">;
+}
+
+let Command = "type category define" in {
+  def type_category_define_enabled : Option<"enabled", "e">, Desc<"If 
specified, this category will be created enabled.">;
+  def type_category_define_language : Option<"language", "l">, 
Arg<"Language">, Desc<"Specify the language that this category is supported 
for.">;
+}
+
+let Command = "type category enable" in {
+  def type_category_enable_language : Option<"language", "l">, 
Arg<"Language">, Desc<"Enable the category for this language.">;
+}
+
+let Command = "type category disable" in {
+  def type_category_disable_language : Option<"language", "l">, 
Arg<"Language">, Desc<"Enable the category for this language.">;
+}
+
+let Command = "type filter add" in {
+  def type_filter_add_cascade : Option<"cascade", "C">, Arg<"Boolean">, 
Desc<"If true, cascade through typedef chains.">;
+  def type_filter_add_skip_pointers : Option<"skip-pointers", "p">, 
Desc<"Don't use this format for pointers-to-type objects.">;
+  def type_filter_add_skip_references : Option<"skip-references", "r">, 
Desc<"Don't use this format for references-to-type objects.">;
+  def type_filter_add_category : Option<"category", "w">, Arg<"Name">, 
Desc<"Add this to the given category instead of the default one.">;
+  def type_filter_add_child : Option<"child", "c">, Arg<"ExpressionPath">, 
Desc<"Include this expression path in the synthetic view.">;
+  def type_filter_add_regex : Option<"regex", "x">, Desc<"Type names are 
actually regular expressions.">;
+}
+
+let Command = "type lookup" in {
+  def type_lookup_show_help : Option<"show-help", "h">, Desc<"Display 
available help for types">;
+  def type_lookup_language : Option<"language", "l">, Arg<"Language">, 
Desc<"Which language's types should the search scope be">;
+}
+
 let Command = "watchpoint list" in {
   def watchpoint_list_brief : Option<"brief", "b">, Group<1>, Desc<"Give a "
     "brief description of the watchpoint (no location info).">;


_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to