#pragma once #include #include #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(a)->gvalue(); } ArgInput() {} virtual void svalue(const std::string& val, const Lexer::TokenType& type) override; virtual std::istream& gvalue(); private: std::optional str; std::optional file; }; }