#pragma once #include #include "ast/ast_component.hpp" namespace fsh { class _Argument { public: virtual void svalue(const std::string& can, const Lexer::TokenType& type = Lexer::TokenType::FLAG) {} virtual void svalue(std::shared_ptr can) { svalue(can->gvalue(), can->gtoken_type()); } template static std::shared_ptr<_Argument> create() { return std::make_shared(); } protected: _Argument() {} }; }