New wishbone-jtag bridge
This commit is contained in:
@@ -26,31 +26,40 @@ public:
|
||||
void addString(const std::string &name,
|
||||
const std::string &default_value,
|
||||
const std::string &help,
|
||||
bool required = false);
|
||||
bool required = false,
|
||||
const std::string &short_name = "");
|
||||
|
||||
void addInt(const std::string &name,
|
||||
int default_value,
|
||||
const std::string &help,
|
||||
bool required = false);
|
||||
bool required = false,
|
||||
const std::string &short_name = "");
|
||||
|
||||
void addFlag(const std::string &name,
|
||||
const std::string &help,
|
||||
const std::string &short_name = "");
|
||||
|
||||
bool parse(int argc, char **argv, std::string *error);
|
||||
|
||||
bool has(const std::string &name) const;
|
||||
std::string getString(const std::string &name) const;
|
||||
int getInt(const std::string &name) const;
|
||||
bool getFlag(const std::string &name) const;
|
||||
|
||||
std::string helpText() const;
|
||||
|
||||
private:
|
||||
enum class OptionType {
|
||||
kString,
|
||||
kInt
|
||||
kInt,
|
||||
kFlag
|
||||
};
|
||||
|
||||
struct OptionMeta {
|
||||
OptionType type;
|
||||
std::string help;
|
||||
bool required;
|
||||
std::string short_name;
|
||||
};
|
||||
|
||||
std::string program_name_;
|
||||
@@ -59,5 +68,7 @@ private:
|
||||
|
||||
std::unordered_map<std::string, std::string> string_values_;
|
||||
std::unordered_map<std::string, int> int_values_;
|
||||
std::unordered_map<std::string, bool> flag_values_;
|
||||
std::unordered_map<std::string, bool> provided_;
|
||||
std::unordered_map<std::string, std::string> short_to_long_;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user