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