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