Index: tools/driver/Driver.h =================================================================== --- tools/driver/Driver.h +++ tools/driver/Driver.h @@ -16,11 +16,47 @@ #include #include +#include +#include + #include "lldb/API/SBBroadcaster.h" #include "lldb/API/SBDebugger.h" #include "lldb/API/SBDefines.h" #include "lldb/API/SBError.h" +class ArgParser { +public: + ArgParser(int argc, const char **); + + void Parse(); + + struct ParsedOption { + ParsedOption(char short_option, std::string option_argument) + : short_option(short_option), option_argument(option_argument) {} + char short_option; + const std::string option_argument; + }; + + const std::vector &GetParsedOptions() const { + return m_parsed_options; + } + + const std::vector &GetRemainingArguments() const { + return m_remaining_arguments; + } + + bool HasUnknownOrAmbiguousOption() { return m_unknown_or_ambiguous_option; } + +private: + int m_argc; + const char **m_argv; + std::vector