feat: Introduce core argument parsing framework with platform-specific parsers, conventions, and type-based value parsing.

This commit is contained in:
2026-03-15 23:05:13 +04:00
parent a1dc3c0149
commit 7e2c09cbf9
10 changed files with 258 additions and 301 deletions

View File

@@ -10,15 +10,10 @@ namespace argument_parser::conventions::implementations {
public:
parsed_argument get_argument(std::string const &raw) const override;
std::string extract_value(std::string const & /*raw*/) const override;
bool requires_next_token() const override;
std::string name() const override;
std::string short_prec() const override;
std::string long_prec() const override;
static gnu_argument_convention instance;
private:

View File

@@ -1,6 +1,5 @@
#pragma once
#include "base_convention.hpp"
#include <stdexcept>
#ifndef WINDOWS_ARGUMENT_CONVENTION_HPP
#define WINDOWS_ARGUMENT_CONVENTION_HPP
@@ -13,17 +12,11 @@ namespace argument_parser::conventions::implementations {
class windows_argument_convention : public base_convention {
public:
explicit windows_argument_convention(bool accept_dash = true);
parsed_argument get_argument(std::string const &raw) const override;
std::string extract_value(std::string const & /*raw*/) const override;
bool requires_next_token() const override;
std::string name() const override;
std::string short_prec() const override;
std::string long_prec() const override;
static windows_argument_convention instance;