diff --git a/WsNovelParser/WsNovelParser.vcxproj.user b/WsNovelParser/WsNovelParser.vcxproj.user
index ff764d4..e15f6ea 100644
--- a/WsNovelParser/WsNovelParser.vcxproj.user
+++ b/WsNovelParser/WsNovelParser.vcxproj.user
@@ -6,7 +6,7 @@
--path "D:\CustomNovels\科学+修仙+创造世界" --dest E:\
- --path "D:\手作小说\科学+修仙+创造世界"
+ --path "D:\CustomNovels\科学+修仙+创造世界" --dest E:\
WindowsLocalDebugger
$(SolutionDir)$(Platform)\$(Configuration)\
diff --git a/libSyntax/libsyntax.cpp b/libSyntax/libsyntax.cpp
index 5767ca8..c4c90c8 100644
--- a/libSyntax/libsyntax.cpp
+++ b/libSyntax/libsyntax.cpp
@@ -15,10 +15,6 @@ std::tuple, std::shared_ptr>
if (!head)
throw new InputTerminal(rt_inst->currentFile());
- if (head->content() == u8"") {
- qDebug() << u8"";
- }
-
auto match_result = define_peer->analysis(head);
if (std::get<0>(match_result)) {
rt_inst->currentInst()->addToken(std::get<0>(match_result));
diff --git a/libToken/libtoken.cpp b/libToken/libtoken.cpp
index 247c585..403e878 100644
--- a/libToken/libtoken.cpp
+++ b/libToken/libtoken.cpp
@@ -30,16 +30,17 @@ QList> WordReader::extract_from(const QString&
QList> ret_list;
int line_number = 1;
while (!tin.atEnd()) {
- auto doc_pos = tin.pos();
+ uint64_t relative_offset = line_number;
+ relative_offset = relative_offset << 32;
auto line = tin.readLine() + "\n";
- ret_list.append(this->parse_line(doc_pos, line_number++, line, path));
+ ret_list.append(this->parse_line(relative_offset, line_number++, line, path));
}
return ret_list;
}
#include
-QList> WordReader::parse_line(int start_pos, int row, const QString& line_text, const QString& path) const {
+QList> WordReader::parse_line(uint64_t start_pos, int row, const QString& line_text, const QString& path) const {
QRegExp split_char(u8"\\s");
auto words = line_text.split(split_char, QString::SplitBehavior::SkipEmptyParts);
@@ -60,12 +61,12 @@ TokenException::TokenException(const QString& message) : msg_store(message) {}
QString TokenException::message() const { return msg_store; }
-WordContent::WordContent(int r, int c, int pos, const QString& t, const QString& p)
+WordContent::WordContent(int r, int c, uint64_t pos, const QString& t, const QString& p)
: row_n(r), col_n(c), doc_offset(pos), text_n(t), path_p(p) {}
QString WordContent::file() const { return path_p; }
-int lib_token::WordContent::position() const {
+uint64_t lib_token::WordContent::position() const {
return doc_offset;
}
@@ -87,7 +88,7 @@ QString WordImpl::file() const
return content_ptr->file();
}
-int lib_token::WordImpl::position() const {
+uint64_t lib_token::WordImpl::position() const {
return content_ptr->position();
}
diff --git a/libToken/libtoken.h b/libToken/libtoken.h
index 70c4b2d..0efdc68 100644
--- a/libToken/libtoken.h
+++ b/libToken/libtoken.h
@@ -20,7 +20,7 @@ namespace lib_token {
* @brief ȡλ
* @return ʼλ
*/
- virtual int position() const = 0;
+ virtual uint64_t position() const = 0;
/**
* @brief
* @return
@@ -49,16 +49,17 @@ namespace lib_token {
*/
class WordContent : public IWordBase {
private:
- int row_n, col_n, doc_offset;
+ int row_n, col_n;
+ uint64_t doc_offset;
QString text_n, path_p;
public:
- WordContent(int r, int c, int pos, const QString& t, const QString& p);
+ WordContent(int r, int c, uint64_t pos, const QString& t, const QString& p);
// WordBase interface
public:
virtual QString file() const override;
- virtual int position() const override;
+ virtual uint64_t position() const override;
virtual QString content() const override;
virtual int row() const override;
virtual int column() const override;
@@ -75,7 +76,7 @@ namespace lib_token {
// ͨ IWordBase ̳
QString file() const override;
- virtual int position() const override;
+ virtual uint64_t position() const override;
QString content() const override;
int row() const override;
int column() const override;
@@ -143,7 +144,7 @@ namespace lib_token {
*/
class LIBTOKEN_EXPORT WordReader {
private:
- QList> parse_line(int start_pos, int row, const QString& line_text, const QString& path) const;
+ QList> parse_line(uint64_t start_pos, int row, const QString& line_text, const QString& path) const;
QList> extract_from(const QString& path) const;
public:
diff --git a/libToken/tokens_novel.cpp b/libToken/tokens_novel.cpp
index da3673a..781f86c 100644
--- a/libToken/tokens_novel.cpp
+++ b/libToken/tokens_novel.cpp
@@ -4,12 +4,12 @@ using namespace example_novel;
using namespace lib_token;
-TokenContent::TokenContent(int r, int c, int pos, const QString& t, const QString& p, std::shared_ptr paramType)
+TokenContent::TokenContent(int r, int c, uint64_t pos, const QString& t, const QString& p, std::shared_ptr paramType)
: row_n(r), col_n(c), doc_offset(pos), text_n(t), path_p(p), type_def(paramType) {}
QString TokenContent::file() const { return path_p; }
-int lib_token::TokenContent::position() const {
+uint64_t lib_token::TokenContent::position() const {
return doc_offset;
}
diff --git a/libToken/tokens_novel.h b/libToken/tokens_novel.h
index 1064cbb..d00c04f 100644
--- a/libToken/tokens_novel.h
+++ b/libToken/tokens_novel.h
@@ -18,12 +18,12 @@ namespace lib_token {
std::shared_ptr type_def;
public:
- TokenContent(int r, int c, int pos, const QString& t, const QString& p, std::shared_ptr paramType);
+ TokenContent(int r, int c, uint64_t pos, const QString& t, const QString& p, std::shared_ptr paramType);
// WordBase interface
public:
virtual QString file() const override;
- virtual int position() const override;
+ virtual uint64_t position() const override;
virtual QString content() const override;
virtual int row() const override;
virtual int column() const override;
diff --git a/报告20240618-1929.diagsession b/报告20240618-1929.diagsession
deleted file mode 100644
index d6e5a0e..0000000
Binary files a/报告20240618-1929.diagsession and /dev/null differ
diff --git a/报告20240619-1206.diagsession b/报告20240619-1206.diagsession
deleted file mode 100644
index 41ef5fe..0000000
Binary files a/报告20240619-1206.diagsession and /dev/null differ
diff --git a/报告20240620-2228.diagsession b/报告20240620-2228.diagsession
deleted file mode 100644
index 5ad0295..0000000
Binary files a/报告20240620-2228.diagsession and /dev/null differ