diff --git a/ArgsParser/argsparser.cpp b/ArgsParser/argsparser.cpp index 8c3d99b..ec3d8a6 100644 --- a/ArgsParser/argsparser.cpp +++ b/ArgsParser/argsparser.cpp @@ -3,41 +3,41 @@ using namespace args_parse; using namespace std; -ArgvPackImpl::ArgvPackImpl(const QString& means, ParamType t) : means_store(means), type_store(t) { } +__ArgvPackImpls::__ArgvPackImpls(const QString& means, ParamType t) : means_store(means), type_store(t) { } -// 通过 ArgvPack 继承 -ParamType ArgvPackImpl::paramType() const { +// 通过 IArgvPack 继承 +ParamType __ArgvPackImpls::paramType() const { return type_store; } -QString ArgvPackImpl::means() const { +QString __ArgvPackImpls::means() const { return means_store; } -void ArgvPackImpl::setValue(const QString& v) { +void __ArgvPackImpls::setValue(const QString& v) { this->value_store = v; } -QString ArgvPackImpl::value() const { +QString __ArgvPackImpls::value() const { return value_store; } -FloatArgvPack::FloatArgvPack(const QString& key, const QString& means, bool optional) : - FloatArgvImpl(key, means, optional) { } +FloatKeyValue::FloatKeyValue(const QString& key, const QString& means, bool optional) : + __FloatArgvImpl(key, means, optional) { } -QString FloatArgvImpl::bindKey() const { +QString __FloatArgvImpl::bindKey() const { return key_name; } -bool FloatArgvImpl::optional() const { +bool __FloatArgvImpl::optional() const { return optional_value; } -int FloatArgvPack::matchLenth() const { +int FloatKeyValue::matchLenth() const { return 2; } -bool FloatArgvPack::parse(const QList args, int start) { +bool FloatKeyValue::parse(const QList args, int start) { auto args_t = args[start]; auto args_v = args[start + 1]; if (args_t == bindKey()) @@ -45,7 +45,7 @@ bool FloatArgvPack::parse(const QList args, int start) { return args_t == bindKey(); } -IndexParam::IndexParam(const QString& means) : ArgvPackImpl(means, ParamType::IndexParam) { } +IndexParam::IndexParam(const QString& means) : __ArgvPackImpls(means, ParamType::IndexParam) { } int IndexParam::matchLenth() const { return 1; @@ -56,11 +56,11 @@ bool IndexParam::parse(const QList args, int start) { return true; } -FloatArgvImpl::FloatArgvImpl(const QString& key, const QString& means, bool optional) - : ArgvPackImpl(means, ParamType::FloatParam), key_name(key), optional_value(optional) { } +__FloatArgvImpl::__FloatArgvImpl(const QString& key, const QString& means, bool optional) + : __ArgvPackImpls(means, ParamType::FloatParam), key_name(key), optional_value(optional) { } FloatOption::FloatOption(const QString& key, const QString& means, bool opt) - : FloatArgvImpl(key, means, opt) { + : __FloatArgvImpl(key, means, opt) { setValue(u8"0"); } @@ -77,11 +77,11 @@ bool FloatOption::parse(const QList args, int start) { namespace args_parse { class MatchMode { private: - QList> args_mode; + QList> args_mode; int code_store; public: - explicit MatchMode(const QList> mode, int mode_code) + explicit MatchMode(const QList> mode, int mode_code) :args_mode(mode), code_store(mode_code) { } /** @@ -95,7 +95,7 @@ namespace args_parse { * @brief 获取模式匹配结果 * @return 模式匹配结果 */ - QList> result() const { + QList> result() const { return args_mode; } /** @@ -116,11 +116,11 @@ namespace args_parse { }break; case ParamType::FloatParam:// 浮动参数匹配 { - QList> float_parsers; + QList> float_parsers; for (auto& unit : args_mode) { if (unit->paramType() == ParamType::FloatParam) - float_parsers << dynamic_pointer_cast(unit); + float_parsers << dynamic_pointer_cast<__FloatArgvImpl>(unit); } for (auto& unit : float_parsers) { @@ -142,11 +142,11 @@ namespace args_parse { } }; } -void ArgsParser::loadMode(int mode_code, const QList>& args_model) { +void ArgsParser::loadMode(int mode_code, const QList>& args_model) { this->match_modes.append(make_shared(args_model, mode_code)); } -tuple>> ArgsParser::parse(int argc, char* argv[]) { +tuple>> ArgsParser::parse(int argc, char* argv[]) { // 聚合参数数组 QList args_list; for (int idx = 0; idx < argc; idx++) { @@ -157,8 +157,8 @@ tuple>> ArgsParser::parse(int argc, char* argv[] // 枚举模式匹配 for (auto& minst : this->match_modes) { if (minst->parse(args_list, 0, 0)) - return tuple>>(minst->modeCode(), minst->result()); + return tuple>>(minst->modeCode(), minst->result()); } - return tuple>>(0, QList>()); + return tuple>>(0, QList>()); } diff --git a/ArgsParser/argsparser.h b/ArgsParser/argsparser.h index 9fd4589..9b3aa16 100644 --- a/ArgsParser/argsparser.h +++ b/ArgsParser/argsparser.h @@ -19,9 +19,9 @@ namespace args_parse { /** * @brief 命令行参数包. */ - class ArgvPack { + class IArgvPack { public: - virtual ~ArgvPack() = default; + virtual ~IArgvPack() = default; virtual ParamType paramType() const = 0; virtual QString means() const = 0; @@ -42,30 +42,30 @@ namespace args_parse { virtual bool parse(const QList args, int start) = 0; }; - class ARGSPARSER_EXPORT ArgvPackImpl : public ArgvPack { + class ARGSPARSER_EXPORT __ArgvPackImpls : public IArgvPack { private: QString means_store; QString value_store; ParamType type_store; public: - ArgvPackImpl(const QString &means, ParamType t); + __ArgvPackImpls(const QString &means, ParamType t); void setValue(const QString &v); - // 通过 ArgvPack 继承 + // 通过 IArgvPack 继承 ParamType paramType() const override; QString means() const override; QString value() const override; }; - class ARGSPARSER_EXPORT FloatArgvImpl : public ArgvPackImpl { + class ARGSPARSER_EXPORT __FloatArgvImpl : public __ArgvPackImpls { private: QString key_name; bool optional_value; public: - explicit FloatArgvImpl(const QString& key, const QString& means, bool optional); + explicit __FloatArgvImpl(const QString& key, const QString& means, bool optional); QString bindKey() const; virtual bool optional() const; @@ -75,10 +75,10 @@ namespace args_parse { * @brief 命令行key-value解析匹配模式. * --key value */ - class ARGSPARSER_EXPORT FloatArgvPack : public FloatArgvImpl { + class ARGSPARSER_EXPORT FloatKeyValue : public __FloatArgvImpl { public: - explicit FloatArgvPack(const QString& key, const QString &means, bool optional = false); - virtual ~FloatArgvPack() = default; + explicit FloatKeyValue(const QString& key, const QString &means, bool optional = false); + virtual ~FloatKeyValue() = default; virtual int matchLenth() const override; bool parse(const QList args, int start) override; @@ -88,7 +88,7 @@ namespace args_parse { * @brief 命令行key解析匹配模式. * --key */ - class ARGSPARSER_EXPORT FloatOption : public FloatArgvImpl { + class ARGSPARSER_EXPORT FloatOption : public __FloatArgvImpl { public: explicit FloatOption(const QString& key, const QString& means, bool optional = false); virtual ~FloatOption() = default; @@ -100,12 +100,12 @@ namespace args_parse { /** * 序列索引参数. */ - class ARGSPARSER_EXPORT IndexParam : public ArgvPackImpl { + class ARGSPARSER_EXPORT IndexParam : public __ArgvPackImpls { public: explicit IndexParam(const QString &means); virtual ~IndexParam() = default; - // 通过 ArgvPackImpl 继承 + // 通过 __ArgvPackImpls 继承 int matchLenth() const override; bool parse(const QList args, int start) override; }; @@ -116,9 +116,9 @@ namespace args_parse { QList> match_modes; public: - void loadMode(int mode_code, const QList> &args_model); + void loadMode(int mode_code, const QList> &args_model); - std::tuple>> parse(int argc, char* argv[]); + std::tuple>> parse(int argc, char* argv[]); }; } \ No newline at end of file diff --git a/StoryPresent/main.cpp b/StoryPresent/main.cpp index 3e64aa7..b707634 100644 --- a/StoryPresent/main.cpp +++ b/StoryPresent/main.cpp @@ -11,16 +11,16 @@ int main(int argc, char* argv[]) { QApplication a(argc, argv); args_parse::ArgsParser entry_parser; - QList> args_mode; + QList> args_mode; args_mode << std::make_shared(u8"程序名称"); - args_mode << std::make_shared(u8"--help", "帮助选项"); + args_mode << std::make_shared(u8"--help", "帮助选项"); entry_parser.loadMode(0x000au, args_mode); args_mode.clear(); args_mode << std::make_shared(u8"程序名称"); args_mode << std::make_shared(u8"--nsc", u8"调用编译功能"); - args_mode << std::make_shared(u8"--path", u8"源码目录路径", true); - args_mode << std::make_shared(u8"--dest", u8"生成目标目录"); + args_mode << std::make_shared(u8"--path", u8"源码目录路径", true); + args_mode << std::make_shared(u8"--dest", u8"生成目标目录"); entry_parser.loadMode(0x000bu, args_mode); args_mode.clear(); diff --git a/WsNovelParser/main.cpp b/WsNovelParser/main.cpp index 7748c26..64520e2 100644 --- a/WsNovelParser/main.cpp +++ b/WsNovelParser/main.cpp @@ -29,15 +29,15 @@ int main(int argc, char* argv[]) { QCoreApplication a(argc, argv); args_parse::ArgsParser args_parser; - QList> args_mode; + QList> args_mode; args_mode << std::make_shared(u8"程序名称"); args_mode << std::make_shared(u8"--help", u8"帮助"); args_parser.loadMode(0x000Au, args_mode); args_mode.clear(); args_mode << std::make_shared(u8"程序名称"); - args_mode << std::make_shared(u8"--path", u8"源代码目录"); - args_mode << std::make_shared(u8"--dest", u8"生成目录"); + args_mode << std::make_shared(u8"--path", u8"源代码目录"); + args_mode << std::make_shared(u8"--dest", u8"生成目录"); args_mode << std::make_shared(u8"--html", u8"生成html文件格式取代AST", true); args_parser.loadMode(0x000Bu, args_mode); @@ -46,8 +46,8 @@ int main(int argc, char* argv[]) { switch (std::get<0>(parse_result)) { case 0xBu: { auto args = std::get<1>(parse_result); - auto src_dir = std::dynamic_pointer_cast(args_mode[1]); - auto dst_dir = std::dynamic_pointer_cast(args_mode[2]); + auto src_dir = std::dynamic_pointer_cast(args_mode[1]); + auto dst_dir = std::dynamic_pointer_cast(args_mode[2]); auto html_opt = std::dynamic_pointer_cast(args_mode[3]); auto source_dir = QDir(src_dir->value());