diff --git a/WsNovelParser/htmlprint.cpp b/WsNovelParser/htmlprint.cpp index 05b2467..9c151d7 100644 --- a/WsNovelParser/htmlprint.cpp +++ b/WsNovelParser/htmlprint.cpp @@ -68,8 +68,8 @@ void StoryLine::buildPageHTML(QDomElement& parent) const { dom_p.appendChild(doc.createTextNode(text_inst->content())); dom_storyline.appendChild(dom_p); }break; - case NovelNode::FragmentRefer: - case NovelNode::FragmentDefine: { + case NovelNode::NodeRefer: + case NovelNode::NodeDefine: { auto element_inst = this->getElement(inst_c->element()->signature()); element_inst->buildSliceHTML(dom_storyline); }break; @@ -114,7 +114,7 @@ void StoryVolume::buildPageHTML(QDomElement& parent) const { article_group.appendChild(doc_ins.createTextNode(u8"}")); parent_element.appendChild(article_group); }break; - case NovelNode::FragmentRefer:{ + case NovelNode::NodeRefer:{ auto fragment_inst = std::dynamic_pointer_cast(child->element()); auto refer_inst = this->getElement(fragment_inst->signature()); refer_inst->buildSliceHTML(parent_element); @@ -295,7 +295,7 @@ void Fragment::buildPageHTML(QDomElement& parent) const { #include void tools_printer::build_fragments(std::shared_ptr novel_root) { - if (novel_root->element()->typeMark() == (int)NovelNode::FragmentDefine) { + if (novel_root->element()->typeMark() == (int)NovelNode::NodeDefine) { auto inst = std::make_shared(novel_root); auto name = novel_root->element()->signature(); this->fragment_defines[name] = inst; @@ -335,11 +335,11 @@ void tools_printer::build_storyline(std::shared_ptr line, std::shared else { switch ((NovelNode)novel_node->element()->typeMark()) { - case NovelNode::FragmentDefine: { + case NovelNode::NodeDefine: { auto inst = this->fragment_defines[novel_node->element()->signature()]; line->append(inst); }return; - case NovelNode::FragmentRefer: { + case NovelNode::NodeRefer: { auto refer_node = std::dynamic_pointer_cast(novel_node->element()); auto refer_fragment = this->fragment_defines[refer_node->referSignature()]; auto inst = std::make_shared(novel_node); @@ -360,7 +360,7 @@ void tools_printer::build_volumeline(std::shared_ptr volume, std::s build_volumeline(volume, inst_c); } else { - if (NovelNode::FragmentRefer == (NovelNode)novel_node->element()->typeMark()) { + if (NovelNode::NodeRefer == (NovelNode)novel_node->element()->typeMark()) { auto refer_node = std::dynamic_pointer_cast(novel_node->element()); auto refer_fragment = this->fragment_defines[refer_node->referSignature()]; auto inst = std::make_shared(novel_node); @@ -436,7 +436,7 @@ QString printer::tools_printer::storylines_paint(const QListelements()) { auto fragment_peers = frag->accessPeers()->element(); - if (fragment_peers->typeMark() == (int)example_novel::NovelNode::FragmentDefine) { + if (fragment_peers->typeMark() == (int)example_novel::NovelNode::NodeDefine) { auto fragment_elem = std::dynamic_pointer_cast(fragment_peers); auto node_name = fragment_elem->signature(); node_records[node_name] = frag; @@ -453,12 +453,12 @@ QString printer::tools_printer::storylines_paint(const QListelements()) { - if (example_novel::NovelNode::FragmentDefine == (example_novel::NovelNode) frag->accessPeers()->element()->typeMark()) { + if (example_novel::NovelNode::NodeDefine == (example_novel::NovelNode) frag->accessPeers()->element()->typeMark()) { arrows_link += previous_node + u8"->" + get_node_name(frag) + QString(u8"[label=\"%1{%2}\"]\n") .arg(story_elem->name()).arg(story_elem->sort()); previous_node = get_node_name(frag); } - else if (example_novel::NovelNode::FragmentRefer == (example_novel::NovelNode)frag->accessPeers()->element()->typeMark()) { + else if (example_novel::NovelNode::NodeRefer == (example_novel::NovelNode)frag->accessPeers()->element()->typeMark()) { auto frag_refer = std::dynamic_pointer_cast(frag->accessPeers()->element()); auto frag_src = node_records[frag_refer->referSignature()]; arrows_link += previous_node + u8"->" + get_node_name(frag_src) + QString(u8"[label=\"%1{%2}\"]\n") @@ -479,7 +479,7 @@ QString printer::tools_printer::volumes_paint(const QListelements()) { auto fragment_peers = frag->accessPeers()->element(); - if (fragment_peers->typeMark() == (int)example_novel::NovelNode::FragmentDefine) { + if (fragment_peers->typeMark() == (int)example_novel::NovelNode::NodeDefine) { auto fragment_elem = std::dynamic_pointer_cast(fragment_peers); node_records[fragment_elem->signature()] = frag; nodes_description += get_node_name(frag) + QString(u8"[label=\"%1\",shape=\"ellipse\"]\n").arg(fragment_elem->name()); @@ -496,7 +496,7 @@ QString printer::tools_printer::volumes_paint(const QList article_access, QList &arrows_out)->QString { QString nodes_description; for (auto& fragment_access : article_access->children()) { - if (fragment_access->element()->typeMark() == (int)example_novel::NovelNode::FragmentRefer) { + if (fragment_access->element()->typeMark() == (int)example_novel::NovelNode::NodeRefer) { auto refer_fragment = std::dynamic_pointer_cast(fragment_access->element()); nodes_description += QString(u8"fragment_%1[label=\"%2\",shape=\"plaintext\"]\n") .arg((qulonglong)refer_fragment.get()).arg(refer_fragment->fragmentRefer()); @@ -755,7 +755,7 @@ bool printer::AstGenerate::visit(std::shared_ptr s append_tokens(dom_story, story_node); }break; - case NovelNode::FragmentDefine: { + case NovelNode::NodeDefine: { while (element_stack.last().tagName() != u8"story") { element_stack.takeLast(); } @@ -783,7 +783,7 @@ bool printer::AstGenerate::visit(std::shared_ptr s append_tokens(dom_text, text_node); }break; - case NovelNode::FragmentRefer:{ + case NovelNode::NodeRefer:{ while (element_stack.last().tagName() != u8"article" && element_stack.last().tagName() != u8"story") { element_stack.takeLast(); } diff --git a/libParse/parse_novel.cpp b/libParse/parse_novel.cpp index 812ab43..cc8afa8 100644 --- a/libParse/parse_novel.cpp +++ b/libParse/parse_novel.cpp @@ -13,12 +13,12 @@ using namespace example_novel; void FragmentExistsCheck::exists_check(std::shared_ptr root, std::shared_ptr target) const { - if (target->element()->typeMark() == (int)NovelNode::FragmentRefer) { + if (target->element()->typeMark() == (int)NovelNode::NodeRefer) { auto refer = std::dynamic_pointer_cast(target->element()); auto signature = refer->storyRefer() + u8"&" + refer->fragmentRefer(); - if (!root->getNamedNodeBy((int)NovelNode::FragmentDefine, signature)) + if (!root->getNamedNodeBy((int)NovelNode::NodeDefine, signature)) throw new SyntaxException(QString(u8"CheckError[0x0005]系统中不包含指定签名的节点:%1{%3:(%4)}") - .arg(signature).arg((int)NovelNode::FragmentDefine).arg(refer->signature()).arg(refer->filePath())); + .arg(signature).arg((int)NovelNode::NodeDefine).arg(refer->signature()).arg(refer->filePath())); } for (auto& xit : target->children()) { @@ -125,7 +125,7 @@ void FragmentGraphCheck::validCheck(std::shared_ptr root) c // 构建情节节点列表 for (auto frag_primitive : fragment_items) { switch (frag_primitive->element()->typeMark()) { - case (int)NovelNode::FragmentDefine: { + case (int)NovelNode::NodeDefine: { auto target_node = std::dynamic_pointer_cast(frag_primitive->element()); auto finst = std::make_shared(target_node); @@ -145,8 +145,8 @@ void FragmentGraphCheck::validCheck(std::shared_ptr root) c auto fragment_inst = fragment_items[idx]; switch (fragment_inst->element()->typeMark()) { - case (int)NovelNode::FragmentDefine: - case (int)NovelNode::FragmentRefer: + case (int)NovelNode::NodeDefine: + case (int)NovelNode::NodeRefer: break; default: fragment_items.removeAt(idx); @@ -157,11 +157,11 @@ void FragmentGraphCheck::validCheck(std::shared_ptr root) c auto get_name = [](std::shared_ptr node)->QString { switch (node->element()->typeMark()) { - case (int)NovelNode::FragmentDefine: { + case (int)NovelNode::NodeDefine: { auto def_node = std::dynamic_pointer_cast(node->element()); return def_node->signature(); }break; - case (int)NovelNode::FragmentRefer: { + case (int)NovelNode::NodeRefer: { auto ref_node = std::dynamic_pointer_cast(node->element()); return ref_node->referSignature(); }break; diff --git a/libSyntax/ast_novel.cpp b/libSyntax/ast_novel.cpp index 413448d..855b6be 100644 --- a/libSyntax/ast_novel.cpp +++ b/libSyntax/ast_novel.cpp @@ -44,7 +44,7 @@ QString FragmentRefers::referSignature() const { return storyRefer() + u8"&" + fragmentRefer(); } -int FragmentRefers::typeMark() const { return (int)NovelNode::FragmentRefer; } +int FragmentRefers::typeMark() const { return (int)NovelNode::NodeRefer; } bool FragmentRefers::isAnonymous() const { @@ -67,7 +67,7 @@ void example_novel::FragmentDefine::setName(const QString& nm) this->name_store = nm; } -int FragmentDefine::typeMark() const { return (int)NovelNode::FragmentDefine; } +int FragmentDefine::typeMark() const { return (int)NovelNode::NodeDefine; } bool FragmentDefine::isAnonymous() const { diff --git a/libSyntax/ast_novel.h b/libSyntax/ast_novel.h index 9c512d7..6f3866e 100644 --- a/libSyntax/ast_novel.h +++ b/libSyntax/ast_novel.h @@ -6,8 +6,8 @@ namespace example_novel { enum class NovelNode { GlobalElement = 0, TextSection = 1, - FragmentRefer = 2, - FragmentDefine = 3, + NodeRefer = 2, + NodeDefine = 3, StoryDefine = 4, Document = 5, ArticleDefine = 6,