diff --git a/WsNovelParser/WsNovelParser.vcxproj.user b/WsNovelParser/WsNovelParser.vcxproj.user index ab9beae..9955a68 100644 --- a/WsNovelParser/WsNovelParser.vcxproj.user +++ b/WsNovelParser/WsNovelParser.vcxproj.user @@ -7,8 +7,12 @@ 2024-06-09T14:31:55.5400719Z + + 2024-06-09T14:31:55.8096222Z + + \ No newline at end of file diff --git a/WsNovelParser/main.cpp b/WsNovelParser/main.cpp index 033205b..d37c257 100644 --- a/WsNovelParser/main.cpp +++ b/WsNovelParser/main.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include "novelparser.h" #include "htmlprint.h" @@ -80,6 +81,8 @@ int main(int argc, char* argv[]) { auto parser = std::make_shared(); auto novel_accesstree = parser->parse(files); + + QTime time_stamp = QTime::currentTime(); printer::tools_printer tool; tool.build_fragments(novel_accesstree); tool.build_refers_network(novel_accesstree); @@ -231,6 +234,8 @@ int main(int argc, char* argv[]) { } } + auto current_stamp = QTime::currentTime(); + qDebug() << QString(u8"html构建消耗时间:%1 ms。").arg(time_stamp.msecsTo(current_stamp)); //tnode_print(novel_accesstree, 0); qDebug() << u8"编译成功:" << QDir::current().absoluteFilePath(u8"index.html"); } diff --git a/WsNovelParser/novelparser.cpp b/WsNovelParser/novelparser.cpp index b6ec134..4a04fbf 100644 --- a/WsNovelParser/novelparser.cpp +++ b/WsNovelParser/novelparser.cpp @@ -3,6 +3,8 @@ #include #include #include +#include +#include using namespace example_novel; @@ -25,11 +27,14 @@ std::shared_ptr NovelParser::parse(const QFileInfo QList> forst_root; auto lex_reader = NovalSyntax::getLexReader(); + auto time_stamp = QTime::currentTime(); for (auto& file : source_list) { auto tokens = lex_reader->extractFrom(file.canonicalFilePath()); auto exprs_result = std::make_shared(this->syntax_defines)->parseFrom(tokens); forst_root.append(exprs_result); } + auto current_stamp = QTime::currentTime(); + qDebug() << QString(u8"词法解析+语法解析消耗时间:%1 ms。").arg(time_stamp.msecsTo(current_stamp)); std::function>(QList> input)> summary = @@ -45,11 +50,13 @@ std::shared_ptr NovelParser::parse(const QFileInfo return temp; }; - + time_stamp = QTime::currentTime(); auto tree_visit = std::make_shared(); auto vinst = std::make_shared(tree_visit); auto resultx = vinst->parse("test", summary(forst_root)); auto novel_accesstree = vinst->tidy(resultx); + current_stamp = QTime::currentTime(); + qDebug() << QString(u8"程序结构重建消耗时间:%1 ms。").arg(time_stamp.msecsTo(current_stamp)); return analyzer_ref->validCheckWith(novel_accesstree); } diff --git a/libParse/libParse.vcxproj.user b/libParse/libParse.vcxproj.user index 638b717..12467d6 100644 --- a/libParse/libParse.vcxproj.user +++ b/libParse/libParse.vcxproj.user @@ -6,8 +6,12 @@ 2024-06-09T14:31:56.1755099Z + + 2024-06-09T14:31:56.2760593Z + + \ No newline at end of file diff --git a/libParse/libparse.cpp b/libParse/libparse.cpp index 1bddd6e..a60d731 100644 --- a/libParse/libparse.cpp +++ b/libParse/libparse.cpp @@ -8,9 +8,14 @@ QString CheckException::message() const { return msg_store; } Analyzer::Analyzer(const QList >& providers) : check_providers(providers) {} +#include +#include std::shared_ptr Analyzer::validCheckWith(std::shared_ptr root) const { - for (auto& v : check_providers) + for (auto& v : check_providers){ + QTime time_stamp = QTime::currentTime(); v->validCheck(root); - + auto current_stamp = QTime::currentTime(); + qDebug() << QString(u8"校验器:%2 消耗时间:%1 ms。").arg(time_stamp.msecsTo(current_stamp)).arg(v->name()); + } return root; } diff --git a/libParse/libparse.h b/libParse/libparse.h index d61094c..73beeca 100644 --- a/libParse/libparse.h +++ b/libParse/libparse.h @@ -25,6 +25,7 @@ namespace lib_parse { */ class CheckProvider { public: + virtual QString name() const = 0; virtual void validCheck(std::shared_ptr root) const = 0; }; diff --git a/libParse/parse_novel.cpp b/libParse/parse_novel.cpp index 43564cc..b7d843f 100644 --- a/libParse/parse_novel.cpp +++ b/libParse/parse_novel.cpp @@ -2,6 +2,7 @@ #include #include +#include using namespace example_novel; using namespace ast_basic; diff --git a/libParse/parse_novel.h b/libParse/parse_novel.h index ecd761b..f2dab6e 100644 --- a/libParse/parse_novel.h +++ b/libParse/parse_novel.h @@ -12,6 +12,9 @@ namespace example_novel { public: // 通过 CheckProvider 继承 virtual void validCheck(std::shared_ptr root) const override; + virtual QString name() const override { + return u8"FragmentExistsCheck"; + } }; @@ -30,6 +33,9 @@ namespace example_novel { // CheckProvider interface public: virtual void validCheck(std::shared_ptr root) const override; + virtual QString name() const override { + return u8"FragmentOrdersCheck"; + } }; /** diff --git a/libSyntax/libSyntax.vcxproj.user b/libSyntax/libSyntax.vcxproj.user index f2a6859..46584df 100644 --- a/libSyntax/libSyntax.vcxproj.user +++ b/libSyntax/libSyntax.vcxproj.user @@ -6,8 +6,12 @@ 2024-06-09T14:31:56.3290165Z + + 2024-06-09T14:31:56.4329521Z + + \ No newline at end of file diff --git a/libToken/libToken.vcxproj.user b/libToken/libToken.vcxproj.user index 93553ec..3b368ed 100644 --- a/libToken/libToken.vcxproj.user +++ b/libToken/libToken.vcxproj.user @@ -3,8 +3,12 @@ 2024-06-09T14:31:55.8742215Z + + 2024-06-09T14:31:56.1208490Z + + \ No newline at end of file