Refactored arguments

This commit is contained in:
2024-12-06 19:17:37 +01:00
parent 8fa3c3d35a
commit 79390b94b7
13 changed files with 301 additions and 245 deletions

View File

@ -0,0 +1,26 @@
#pragma once
#include <string>
#include <sstream>
#include "cmd/args/arg_base.hpp"
namespace fsh{
class ArgInput : public _Argument {
public:
static std::istream& get(std::shared_ptr<_Argument> a) {
return std::dynamic_pointer_cast<ArgInput>(a)->gvalue();
}
ArgInput() {}
virtual void svalue(const std::string& val, const Lexer::TokenType& type) override;
virtual std::istream& gvalue();
private:
std::optional<std::stringstream> str;
std::optional<std::ifstream> file;
};
}