diff --git a/libSyntax/ast_basic.cpp b/libSyntax/ast_basic.cpp index 568a203..13cffdf 100644 --- a/libSyntax/ast_basic.cpp +++ b/libSyntax/ast_basic.cpp @@ -18,10 +18,6 @@ QString ExpressionElement::filePath() const { return tokens_bind.first()->file(); } -void ExpressionElement::tokensReset(const QList>& list) { - this->tokens_bind = list; -} - void ExpressionElement::addToken(std::shared_ptr token_inst) { this->tokens_bind.append(token_inst); } @@ -87,7 +83,7 @@ void ExpressionContext::appendParseErrors(const QString& file_path, int start, c QStringList ExpressionContext::errors() const { QStringList values; for (auto& tp : this->errors_storage) - values.append(QString(u8"%2\n\t文件(%1)").arg(std::get<0>(tp)).arg(std::get<2>(tp))); + values.append(QString(u8"文件:%1\n\t%2").arg(std::get<0>(tp)).arg(std::get<2>(tp))); return values; } diff --git a/libSyntax/ast_basic.h b/libSyntax/ast_basic.h index 5f7bfda..2c7dbf7 100644 --- a/libSyntax/ast_basic.h +++ b/libSyntax/ast_basic.h @@ -32,12 +32,6 @@ namespace ast_basic { * \return token序列 */ virtual QList> tokens() const = 0; - /** - * 重置语法Token集. - * - * \param list - */ - virtual void tokensReset(const QList> &list) = 0; /** * 解析过程中,向表达式内部添加token实例. * @@ -77,7 +71,6 @@ namespace ast_basic { QString filePath() const override; QList> tokens() const override; - void tokensReset(const QList>& list) override; void addToken(std::shared_ptr token_inst) override; QList> children() const override; diff --git a/libSyntax/libsyntax.cpp b/libSyntax/libsyntax.cpp index a40dce3..d9215ce 100644 --- a/libSyntax/libsyntax.cpp +++ b/libSyntax/libsyntax.cpp @@ -23,8 +23,8 @@ std::tuple> TokenMatch } else { rt_inst->appendParseErrors(rt_inst->currentFile(), head->position(), - QString(u8"Syntax[0x00001]语法匹配错误,不能识别token:%1<%2,%3>(%4)") - .arg(head->content()).arg(head->row()).arg(head->column()).arg(head->file())); + QString(u8"Syntax[0x00001]语法匹配错误,不能识别token\"%1\"(应该为:%4)") + .arg(head->content()).arg(head->row()).arg(head->column()).arg(this->define_peer->reviseWords())); return std::make_tuple(IBasicRule::MatchResult::Part, head); } @@ -37,7 +37,7 @@ std::tuple> TokenMatch } QString TokenMatch::token_present() const { - return QString(u8"<%1>").arg(this->define_peer->typeName()); + return QString(u8"<%1>").arg(this->define_peer->reviseWords()); } Rept::Rept(std::shared_ptr rule, int min, int max) : rule_peer(rule), min_match(min), max_match(max) {} diff --git a/libSyntax/syntax_novel.cpp b/libSyntax/syntax_novel.cpp index 3046366..2748a4c 100644 --- a/libSyntax/syntax_novel.cpp +++ b/libSyntax/syntax_novel.cpp @@ -13,12 +13,12 @@ auto rightb = std::make_shared(); // } auto refers = std::make_shared(); // @ auto declare = std::make_shared(); // # -auto rank_key = std::make_shared(u8"排序", u8"rank-symbol", 0xAEu); // 排序 -auto story_key = std::make_shared(u8"故事", u8"story-mark", 0xAAu); // 故事 +auto rank_key = std::make_shared(u8"排序", 0xAEu); // 排序 +auto story_key = std::make_shared(u8"故事", 0xAAu); // 故事 auto numbers = std::make_shared(); // [0-9]+ -auto frag_key = std::make_shared(u8"情节", u8"fragment-mark", 0xABu); // 情节 -auto volume_key = std::make_shared(u8"分卷", u8"volume-mark", 0xACu); // 分卷 -auto article_key = std::make_shared(u8"章节", u8"article-mark", 0xADu); // 章节 +auto frag_key = std::make_shared(u8"情节", 0xABu); // 情节 +auto volume_key = std::make_shared(u8"分卷", 0xACu); // 分卷 +auto article_key = std::make_shared(u8"章节", 0xADu); // 章节 auto split_mark = std::make_shared(); // & auto vtext = std::make_shared(); // ^([^\\{\\}\\n@&]+) auto name_text = std::make_shared(); // ^([^:\\{\\}\\n@&][^\\{\\}\\n@&]*) diff --git a/libToken/libtoken.h b/libToken/libtoken.h index 0efdc68..cbc37e7 100644 --- a/libToken/libtoken.h +++ b/libToken/libtoken.h @@ -116,7 +116,7 @@ namespace lib_token { * @brief 解析机制名称 * @return */ - virtual QString typeName() const = 0; + virtual QString reviseWords() const = 0; /** * @brief 整数类型标识. * diff --git a/libToken/tokens_novel.cpp b/libToken/tokens_novel.cpp index d2cd944..9a6999e 100644 --- a/libToken/tokens_novel.cpp +++ b/libToken/tokens_novel.cpp @@ -26,7 +26,7 @@ std::shared_ptr lib_token::TokenContent::nextWord() const std::shared_ptr TokenContent::define() const { return this->type_def; } -QString LeftBracket::typeName() const { return u8"left-bracket"; } +QString LeftBracket::reviseWords() const { return u8"{"; } int LeftBracket::typeMark() const { @@ -53,7 +53,7 @@ LeftBracket::analysis(std::shared_ptr content) const { return std::make_tuple(token_inst, nullptr); } -QString RightBracket::typeName() const { return u8"right-bracket"; } +QString RightBracket::reviseWords() const { return u8"}"; } int RightBracket::typeMark() const { @@ -62,7 +62,7 @@ int RightBracket::typeMark() const QString RightBracket::regex() const { return u8"}"; } -QString ReferMark::typeName() const { return u8"refer-mark"; } +QString ReferMark::reviseWords() const { return u8"@"; } int ReferMark::typeMark() const { @@ -71,9 +71,9 @@ int ReferMark::typeMark() const QString ReferMark::regex() const { return u8"@"; } -Keywords::Keywords(const QString& val, const QString& nm, uint type_code) : means_store(val), name_store(nm), type_code(type_code) {} +Keywords::Keywords(const QString& val, uint type_code) : means_store(val), type_code(type_code) {} -QString Keywords::typeName() const { return name_store; } +QString Keywords::reviseWords() const { return means_store; } int Keywords::typeMark() const { @@ -93,7 +93,7 @@ Keywords::analysis(std::shared_ptr content) const { return std::make_tuple(token_inst, nullptr); } -QString Numbers::typeName() const { return u8"numbers"; } +QString Numbers::reviseWords() const { return u8"正整数"; } int Numbers::typeMark() const { @@ -114,7 +114,7 @@ Numbers::analysis(std::shared_ptr content) const { return std::make_tuple(tinst, nullptr); } -QString VTextSection::typeName() const { return u8"text-section"; } +QString VTextSection::reviseWords() const { return u8"文本"; } int VTextSection::typeMark() const { @@ -144,7 +144,7 @@ VTextSection::analysis(std::shared_ptr content) const { return std::make_tuple(tinst, nullptr); } -QString Split::typeName() const { return u8"split-mark"; } +QString Split::reviseWords() const { return u8"&"; } int Split::typeMark() const { @@ -153,7 +153,7 @@ int Split::typeMark() const QString Split::regex() const { return u8"&"; } -QString NameSection::typeName() const { return u8"name-section"; } +QString NameSection::reviseWords() const { return u8"名称"; } int NameSection::typeMark() const { @@ -183,8 +183,7 @@ std::tuple, std::shared_ptr > Nam return std::make_tuple(tinst, nullptr); } -QString DeclareSymbo::typeName() const -{ +QString DeclareSymbo::reviseWords() const { return u8"声明符"; } diff --git a/libToken/tokens_novel.h b/libToken/tokens_novel.h index 0d9bd13..8325685 100644 --- a/libToken/tokens_novel.h +++ b/libToken/tokens_novel.h @@ -39,7 +39,7 @@ namespace example_novel { class LIBTOKEN_EXPORT LeftBracket : public lib_token::ITokenDefine, public std::enable_shared_from_this { // TokenDefine interface public: - virtual QString typeName() const override; + virtual QString reviseWords() const override; virtual int typeMark() const override; virtual QString regex() const override; virtual std::tuple, std::shared_ptr> @@ -48,36 +48,36 @@ namespace example_novel { class LIBTOKEN_EXPORT RightBracket : public LeftBracket { public: - virtual QString typeName() const override; + virtual QString reviseWords() const override; virtual int typeMark() const override; virtual QString regex() const override; }; class LIBTOKEN_EXPORT ReferMark : public LeftBracket { public: - virtual QString typeName() const override; + virtual QString reviseWords() const override; virtual int typeMark() const override; virtual QString regex() const override; }; class LIBTOKEN_EXPORT Split : public LeftBracket { public: - virtual QString typeName() const override; + virtual QString reviseWords() const override; virtual int typeMark() const override; virtual QString regex() const override; }; class LIBTOKEN_EXPORT Keywords : public lib_token::ITokenDefine, public std::enable_shared_from_this { private: - QString means_store, name_store; + QString means_store; int type_code; public: - Keywords(const QString& val, const QString& nm, uint type_code); + Keywords(const QString& val, uint type_code); // TokenDefine interface public: - virtual QString typeName() const override; + virtual QString reviseWords() const override; virtual int typeMark() const override; virtual QString regex() const override; virtual std::tuple, std::shared_ptr> @@ -87,7 +87,7 @@ namespace example_novel { class LIBTOKEN_EXPORT Numbers : public lib_token::ITokenDefine, public std::enable_shared_from_this { // TokenDefine interface public: - virtual QString typeName() const override; + virtual QString reviseWords() const override; virtual int typeMark() const override; virtual QString regex() const override; virtual std::tuple, std::shared_ptr> @@ -98,7 +98,7 @@ namespace example_novel { class LIBTOKEN_EXPORT NameSection : public lib_token::ITokenDefine, public std::enable_shared_from_this { // TokenDefine interface public: - virtual QString typeName() const override; + virtual QString reviseWords() const override; virtual int typeMark() const override; virtual QString regex() const override; virtual std::tuple, std::shared_ptr> @@ -108,7 +108,7 @@ namespace example_novel { class LIBTOKEN_EXPORT VTextSection : public lib_token::ITokenDefine, public std::enable_shared_from_this { // TokenDefine interface public: - virtual QString typeName() const override; + virtual QString reviseWords() const override; virtual int typeMark() const override; virtual QString regex() const override; virtual std::tuple, std::shared_ptr> @@ -118,7 +118,7 @@ namespace example_novel { class LIBTOKEN_EXPORT DeclareSymbo : public lib_token::ITokenDefine, public std::enable_shared_from_this { public: // 通过 TokenDefine 继承 - virtual QString typeName() const override; + virtual QString reviseWords() const override; virtual int typeMark() const override; virtual QString regex() const override; virtual std::tuple, std::shared_ptr>