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