From cab9153783ae3078fca69e71665f52ad5b6b1ee8 Mon Sep 17 00:00:00 2001 From: codeboss <2422523675@qq.com> Date: Wed, 12 Feb 2025 14:41:24 +0800 Subject: [PATCH] update --- CoreTest/CoreTest.vcxproj | 4 ++++ CoreTest/main.cpp | 6 +++--- libSyntax/syntax_novel.cpp | 40 ++++++++++++++++++++----------------- libSyntax/syntax_templets.h | 6 +++--- 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/CoreTest/CoreTest.vcxproj b/CoreTest/CoreTest.vcxproj index 77d7ee5..e6e36b7 100644 --- a/CoreTest/CoreTest.vcxproj +++ b/CoreTest/CoreTest.vcxproj @@ -76,6 +76,10 @@ libWords.lib;libSyntax.lib;%(AdditionalDependencies) + + stdcpp20 + /utf-8 %(AdditionalOptions) + diff --git a/CoreTest/main.cpp b/CoreTest/main.cpp index 7b681f9..e4783e0 100644 --- a/CoreTest/main.cpp +++ b/CoreTest/main.cpp @@ -10,11 +10,11 @@ int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); - QFile in(u8"D:\\Projects\\Cpp\\WsNovelParser\\CoreTest\\syntax_example.txt"); + QFile in("D:\\Projects\\Cpp\\WsNovelParser\\CoreTest\\syntax_example.txt"); in.open(QIODevice::ReadOnly|QIODevice::Text); QTextStream tt(&in); lib_words::WordReader reader; - auto vwords = reader.wordsFrom(tt, u8"D:\\Projects\\Cpp\\WsNovelParser\\CoreTest\\syntax_example.txt"); + auto vwords = reader.wordsFrom(tt, "D:\\Projects\\Cpp\\WsNovelParser\\CoreTest\\syntax_example.txt"); auto words = vwords; while (words) { @@ -25,7 +25,7 @@ int main(int argc, char *argv[]) ast_gen::SyntaxParser parser(example_novel::NovalSyntax::getSyntaxTree()); auto rst = parser.parse(vwords); for (auto one : rst) { - qDebug() << u8"==================================================="; + qDebug() << "==================================================="; qDebug().noquote() << one->totalErrors(); auto vtoken = one->currentToken(); while (vtoken) { diff --git a/libSyntax/syntax_novel.cpp b/libSyntax/syntax_novel.cpp index 4eec808..f62dae7 100644 --- a/libSyntax/syntax_novel.cpp +++ b/libSyntax/syntax_novel.cpp @@ -12,7 +12,7 @@ using namespace std; #include "syntax_templets.h" using namespace lib_composit; -void point_nmset(std::shared_ptr inst, std::shared_ptr token) { +void point_nm_set(std::shared_ptr inst, std::shared_ptr token) { inst->addToken(token); inst->setName(token->content()); } @@ -32,15 +32,15 @@ void slice_nm_set(std::shared_ptr inst, std::shared_ptraddToken(token); inst->setName(token->content()); } -void story_nmset(std::shared_ptr inst, std::shared_ptr token) { +void story_nm_set(std::shared_ptr inst, std::shared_ptr token) { inst->addToken(token); inst->setName(token->content()); } -void article_nset(std::shared_ptrinst, std::shared_ptr token) { +void article_nm_set(std::shared_ptrinst, std::shared_ptr token) { inst->addToken(token); inst->setName(token->content()); } -void volume_nset(std::shared_ptr inst, std::shared_ptr token) { +void volume_nm_set(std::shared_ptr inst, std::shared_ptr token) { inst->addToken(token); inst->setName(token->content()); } @@ -49,7 +49,7 @@ void rank_set(std::shared_ptr inst, std::shared_ptrsetRank(token->content().toInt()); } -using TextDeclsSyntaxDef = lib_composit::Multi, TMate, TMate, TMate>>; +using TextDeclsSyntaxDef = lib_composit::Multi, TMatch, TMatch, TMatch>>; class DeclSyntax : public ElementRule { public: DeclSyntax() : ElementRule("decl_section") { } @@ -62,9 +62,9 @@ public: -using PointSyntaxDef = lib_composit::SeqsR, TMate, TAct, +using PointSyntaxDef = lib_composit::SeqsR, TMatch, TAct, Opt, - TMate>; + TMatch>; class PointSyntax : public ElementRule { public: PointSyntax() : ElementRule("point_define") { } @@ -77,9 +77,9 @@ public: -using ReferSyntaxDef = lib_composit::SeqsR, TMate, TMate, TAct, TMate, TAct, TMate, TAct, +using ReferSyntaxDef = lib_composit::SeqsR, TMatch, TMatch, TAct, TMatch, TAct, TMatch, TAct, Opt, - TMate>; + TMatch>; class ReferSyntax : public ElementRule { public: ReferSyntax() : ElementRule < PointRefers, (int) NovelNode::PointRefers, ReferSyntaxDef>("point_refer") { } @@ -92,9 +92,9 @@ public: -using SliceSyntaxDef = lib_composit::SeqsR, TMate, TAct, +using SliceSyntaxDef = lib_composit::SeqsR, TMatch, TAct, lib_composit::OptMulti>, - TMate>; + TMatch>; class SliceSyntax : public ElementRule { public: SliceSyntax() : ElementRule("slice_define") { } @@ -107,9 +107,9 @@ public: -using StorySyntaxDef = lib_composit::SeqsR, TMate, TAct, +using StorySyntaxDef = lib_composit::SeqsR, TMatch, TAct, lib_composit::OptMulti>, - TMate>; + TMatch>; class StorySyntax : public ElementRule { public: StorySyntax() : ElementRule("story_define") { } @@ -122,9 +122,9 @@ public: -using ArticleSyntaxDef = lib_composit::SeqsR, TMate, TAct, +using ArticleSyntaxDef = lib_composit::SeqsR, TMatch, TAct, lib_composit::OptMulti>, - TMate>; + TMatch>; class ArticleSyntax : public ElementRule { public: ArticleSyntax() : ElementRule("article_define") { } @@ -137,9 +137,9 @@ public: -using VolumeSyntaxDef = lib_composit::SeqsR, TMate, TAct, +using VolumeSyntaxDef = lib_composit::SeqsR, TMatch, TAct, lib_composit::OptMulti>, - TMate>; + TMatch>; class VolumeSyntax : public ElementRule { public: VolumeSyntax() : ElementRule("volume_define") { } @@ -152,7 +152,7 @@ public: -using RankSyntaxDef = lib_composit::SeqsR, TMate, TAct>; +using RankSyntaxDef = lib_composit::SeqsR, TMatch, TAct>; class RankSyntax : public ElementRule { public: RankSyntax() : ElementRule("rank_define") { } @@ -218,3 +218,7 @@ public: // node_register(child, next_child_items); // } //} + +std::shared_ptr example_novel::NovalSyntax::getSyntaxTree() { + return std::shared_ptr(); +} diff --git a/libSyntax/syntax_templets.h b/libSyntax/syntax_templets.h index e01730f..13d2a71 100644 --- a/libSyntax/syntax_templets.h +++ b/libSyntax/syntax_templets.h @@ -57,7 +57,7 @@ namespace lib_composit { void apntk(std::shared_ptr expr, std::shared_ptr t) { expr->addToken(t); } - template - requires std::derived_from&& std::derived_from - class TMate : public TAct { }; + template + requires std::derived_from + class TMatch : public TAct> { }; }