|  | //===-- OptionGroupArchitecture.cpp -----------------------------*- C++ -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #include "lldb/Interpreter/OptionGroupArchitecture.h" | 
|  |  | 
|  | // C Includes | 
|  | // C++ Includes | 
|  | // Other libraries and framework includes | 
|  | // Project includes | 
|  | #include "lldb/Utility/Utils.h" | 
|  |  | 
|  | using namespace lldb; | 
|  | using namespace lldb_private; | 
|  |  | 
|  | OptionGroupArchitecture::OptionGroupArchitecture() : | 
|  | m_arch_str () | 
|  | { | 
|  | } | 
|  |  | 
|  | OptionGroupArchitecture::~OptionGroupArchitecture () | 
|  | { | 
|  | } | 
|  |  | 
|  | static OptionDefinition | 
|  | g_option_table[] = | 
|  | { | 
|  | { LLDB_OPT_SET_1 , false, "arch"    , 'a', OptionParser::eRequiredArgument, nullptr, nullptr, 0, eArgTypeArchitecture , "Specify the architecture for the target."}, | 
|  | }; | 
|  |  | 
|  | uint32_t | 
|  | OptionGroupArchitecture::GetNumDefinitions () | 
|  | { | 
|  | return llvm::array_lengthof(g_option_table); | 
|  | } | 
|  |  | 
|  | const OptionDefinition * | 
|  | OptionGroupArchitecture::GetDefinitions () | 
|  | { | 
|  | return g_option_table; | 
|  | } | 
|  |  | 
|  | bool | 
|  | OptionGroupArchitecture::GetArchitecture (Platform *platform, ArchSpec &arch) | 
|  | { | 
|  | if (m_arch_str.empty()) | 
|  | arch.Clear(); | 
|  | else | 
|  | arch.SetTriple(m_arch_str.c_str(), platform); | 
|  | return arch.IsValid(); | 
|  | } | 
|  |  | 
|  |  | 
|  | Error | 
|  | OptionGroupArchitecture::SetOptionValue (CommandInterpreter &interpreter, | 
|  | uint32_t option_idx, | 
|  | const char *option_arg) | 
|  | { | 
|  | Error error; | 
|  | const int short_option = g_option_table[option_idx].short_option; | 
|  |  | 
|  | switch (short_option) | 
|  | { | 
|  | case 'a': | 
|  | m_arch_str.assign (option_arg); | 
|  | break; | 
|  |  | 
|  | default: | 
|  | error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option); | 
|  | break; | 
|  | } | 
|  |  | 
|  | return error; | 
|  | } | 
|  |  | 
|  | void | 
|  | OptionGroupArchitecture::OptionParsingStarting (CommandInterpreter &interpreter) | 
|  | { | 
|  | m_arch_str.clear(); | 
|  | } | 
|  |  |