//===-- OptionParser.h ------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef liblldb_OptionParser_h_ #define liblldb_OptionParser_h_ #include struct option; namespace lldb_private { struct OptionDefinition; struct Option { // The definition of the option that this refers to. const OptionDefinition *definition; // if not NULL, set *flag to val when option found int *flag; // if flag not NULL, value to set *flag to; else return value int val; }; class OptionParser { public: enum OptionArgument { eNoArgument = 0, eRequiredArgument, eOptionalArgument }; static void Prepare(); static void EnableError(bool error); static int Parse(int argc, char * const argv [], const char *optstring, const Option *longopts, int *longindex); static char* GetOptionArgument(); static int GetOptionIndex(); static int GetOptionErrorCause(); static std::string GetShortOptionString(struct option *long_options); }; } #endif // liblldb_OptionParser_h_