// Copyright 2022, FOSS-VG Developers and Contributers // // This program is free software: you can redistribute it and/or modify it // under the terms of the GNU Affero General Public License as published // by the Free Software Foundation, version 3. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied // warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // version 3 along with this program. // If not, see https://www.gnu.org/licenses/agpl-3.0.en.html #include #include #include #include "cli.hpp" #include "error.hpp" namespace CLI { Flag::Flag() { this->present = false; } Flag::Flag(char shortName, std::string longName, std::string description) { this->shortName = shortName; this->longName = longName; this->description = description; this->present = false; } Option::Option() { this->present = false; } Option::Option(char shortName, std::string longName, std::string placeholder, std::string description) { this->shortName = shortName; this->longName = longName; this->description = description; this->placeholder = placeholder; this->present = false; } Argument::Argument() { this->present = false; } Argument::Argument(std::string placeholder, std::string description) { this->description = description; this->placeholder = placeholder; this->present = false; } // using int here bc that's how main() is defined ArgumentsParser::ArgumentsParser(int argc, const char* const argv[], std::vector flags, std::vector