MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / OptionParser

Class OptionParser

Source/Utils/cxxopts.hpp:1655–1711  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1653 using PositionalListIterator = PositionalList::const_iterator;
1654
1655 class OptionParser
1656 {
1657 public:
1658 OptionParser(const OptionMap& options, const PositionalList& positional, bool allow_unrecognised)
1659 : m_options(options)
1660 , m_positional(positional)
1661 , m_allow_unrecognised(allow_unrecognised)
1662 {
1663 }
1664
1665 ParseResult
1666 parse(int argc, const char* const* argv);
1667
1668 bool
1669 consume_positional(const std::string& a, PositionalListIterator& next);
1670
1671 void
1672 checked_parse_arg
1673 (
1674 int argc,
1675 const char* const* argv,
1676 int& current,
1677 const std::shared_ptr<OptionDetails>& value,
1678 const std::string& name
1679 );
1680
1681 void
1682 add_to_option(OptionMap::const_iterator iter, const std::string& option, const std::string& arg);
1683
1684 void
1685 parse_option
1686 (
1687 const std::shared_ptr<OptionDetails>& value,
1688 const std::string& name,
1689 const std::string& arg = ""
1690 );
1691
1692 void
1693 parse_default(const std::shared_ptr<OptionDetails>& details);
1694
1695 void
1696 parse_no_value(const std::shared_ptr<OptionDetails>& details);
1697
1698 private:
1699
1700 void finalise_aliases();
1701
1702 const OptionMap& m_options;
1703 const PositionalList& m_positional;
1704
1705 std::vector<KeyValue> m_sequential{};
1706 std::vector<KeyValue> m_defaults{};
1707 bool m_allow_unrecognised;
1708
1709 ParsedHashMap m_parsed{};
1710 NameHashMap m_keys{};
1711 };
1712

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected