From aa9cdff7a44dff9ddccb908e827971df4152b97f Mon Sep 17 00:00:00 2001 From: codeboss <2422523675@qq.com> Date: Wed, 2 Oct 2024 10:03:19 +0800 Subject: [PATCH] 1 --- ArgsParser/argsparser.cpp | 12 ++++++------ ArgsParser/argsparser.h | 8 ++++---- WsNovelParser/main.cpp | 9 ++------- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/ArgsParser/argsparser.cpp b/ArgsParser/argsparser.cpp index 4b95f99..c760bc4 100644 --- a/ArgsParser/argsparser.cpp +++ b/ArgsParser/argsparser.cpp @@ -34,8 +34,8 @@ bool __FloatArgvImpls::optional() const { return optional_value; } -QString args_parse::FloatKeyValue::placeHolder() const { - if (optional()) +QString args_parse::FloatKeyValue::placeHolder(bool v) const { + if (optional() && v) return QString("[--%1 <%2>]").arg(bindKey(), bindKey()); return QString("--%1 <%2>").arg(bindKey(), bindKey()); } @@ -57,7 +57,7 @@ bool FloatKeyValue::parse(const QList args, int start) { IndexParam::IndexParam(const QString& place_v, const QString& means) : __ArgvPackImpls(means, ParamType::IndexParam), _place_holder(place_v) { } -QString args_parse::IndexParam::placeHolder() const { +QString args_parse::IndexParam::placeHolder(bool v) const { return QString("<%1>").arg(_place_holder); } @@ -77,8 +77,8 @@ FloatOption::FloatOption(const QString& key, const QString& means, bool opt) : __FloatArgvImpls(key, means, opt) { } -QString args_parse::FloatOption::placeHolder() const { - if (optional()) +QString args_parse::FloatOption::placeHolder(bool d) const { + if (optional() && d) return QString("[--%1]").arg(bindKey()); return QString("--%1").arg(bindKey()); } @@ -124,7 +124,7 @@ QString args_parse::MatchMode::explanString() const { sections << QString(" Switch:"); for (auto& item : args_mode) { - sections << " " + item->placeHolder(); + sections << " " + item->placeHolder(false); sections << " " + item->means(); } diff --git a/ArgsParser/argsparser.h b/ArgsParser/argsparser.h index f2025d8..b88e4d9 100644 --- a/ArgsParser/argsparser.h +++ b/ArgsParser/argsparser.h @@ -35,7 +35,7 @@ namespace args_parse { * \return 解释 */ virtual QString means() const = 0; - virtual QString placeHolder() const = 0; + virtual QString placeHolder(bool decorate = true) const = 0; virtual QVariant value() const = 0; /** * @brief 匹配长度. @@ -98,7 +98,7 @@ namespace args_parse { explicit FloatKeyValue(const QString& key, const QString &means, bool optional = false); virtual ~FloatKeyValue() = default; - virtual QString placeHolder() const override; + virtual QString placeHolder(bool decorate = true) const override; virtual int matchLenth() const override; bool parse(const QList args, int start) override; }; @@ -119,7 +119,7 @@ namespace args_parse { explicit FloatOption(const QString& key, const QString& means, bool optional = false); virtual ~FloatOption() = default; - virtual QString placeHolder() const override; + virtual QString placeHolder(bool decorate = true) const override; virtual int matchLenth() const override; bool parse(const QList args, int start) override; }; @@ -136,7 +136,7 @@ namespace args_parse { virtual ~IndexParam() = default; // 通过 __ArgvPackImpls 继承 - virtual QString placeHolder() const override; + virtual QString placeHolder(bool decorate = true) const override; int matchLenth() const override; bool parse(const QList args, int start) override; }; diff --git a/WsNovelParser/main.cpp b/WsNovelParser/main.cpp index 5938fdc..069a8cf 100644 --- a/WsNovelParser/main.cpp +++ b/WsNovelParser/main.cpp @@ -20,13 +20,7 @@ using namespace example_novel; using namespace std; using namespace args_parse; -/* -* nsc --help -* nsc -[pw] --path path-to-dir [--out path-to-dir] -* opts: -* p print-struct 输出整体结构 -* w print-web 基础的web页面输出格式 -*/ + int main(int argc, char* argv[]) { QCoreApplication a(argc, argv); @@ -52,6 +46,7 @@ int main(int argc, char* argv[]) { switch (p_result->modeCode()) { case 0xAu: default: + qDebug().noquote() << u8"命令行参数错误!"; qDebug().noquote() << args_parser.helpDoc(); break; case 0xBu: