渐进改进
This commit is contained in:
parent
ff8eb5a8d5
commit
bb3d6ee766
|
@ -88,7 +88,7 @@ void StoryChangePresent::type_change(int idx) {
|
|||
_curr_refslice->loadCurrentSlice(nullptr);
|
||||
_change_model->clear();
|
||||
|
||||
QList<shared_ptr<FragmentDefine>> fragms;
|
||||
QList<shared_ptr<PointDefines>> fragms;
|
||||
if (!idx) {
|
||||
fragms = base_compare.changeCompare(Type::UpstreamAlter, g_old);
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ void StoryChangePresent::fragment_selected(const QModelIndex& item) {
|
|||
|
||||
auto story_inst = this->base_compare.graphBind()[story_item->text()];
|
||||
auto fragm_slice = story_inst->getFragment(fragm_item->text());
|
||||
auto fragm_def = dynamic_pointer_cast<FragmentDefine>(fragm_slice);
|
||||
auto fragm_def = dynamic_pointer_cast<PointDefines>(fragm_slice);
|
||||
_defn_fragment->loadCurrentSlice(fragm_def);
|
||||
|
||||
connect(_story_appoint, QOverload<const QString&>::of(&QComboBox::currentIndexChanged),
|
||||
|
@ -151,7 +151,7 @@ void StoryChangePresent::fragment_selected(const QModelIndex& item) {
|
|||
}
|
||||
|
||||
void StoryChangePresent::storyline_selected(const QString& line) {
|
||||
auto def_fragm = dynamic_pointer_cast<FragmentDefine>(_defn_fragment->currentSlice());
|
||||
auto def_fragm = dynamic_pointer_cast<PointDefines>(_defn_fragment->currentSlice());
|
||||
|
||||
auto flag = _story_appoint->currentData();
|
||||
for (auto slice : def_fragm->referSlices()) {
|
||||
|
@ -215,7 +215,7 @@ QVariant StorylineModel::data(const QModelIndex& index, int role) const {
|
|||
}
|
||||
case SliceType::FragmentDefines:
|
||||
{
|
||||
auto node = dynamic_pointer_cast<FragmentDefine>(curr_node);
|
||||
auto node = dynamic_pointer_cast<PointDefines>(curr_node);
|
||||
return node->getTextNode()->getLines();
|
||||
}
|
||||
case SliceType::PointRefers:
|
||||
|
@ -257,7 +257,7 @@ bool StorylineModel::setData(const QModelIndex& index, const QVariant& value, in
|
|||
}break;
|
||||
case SliceType::FragmentDefines:
|
||||
{
|
||||
auto defnode = dynamic_pointer_cast<FragmentDefine>(curr_node);
|
||||
auto defnode = dynamic_pointer_cast<PointDefines>(curr_node);
|
||||
defnode->getTextNode()->setLines(value.toString());
|
||||
}break;
|
||||
case SliceType::PointRefers:
|
||||
|
|
|
@ -13,9 +13,9 @@ const QHash<QString, std::shared_ptr<xast_parse::StoryDefine>>& compare::Compare
|
|||
return _graph_base;
|
||||
}
|
||||
|
||||
QList<shared_ptr<FragmentDefine>>
|
||||
QList<shared_ptr<PointDefines>>
|
||||
Compare::changeCompare(Type _type, const QHash<QString, shared_ptr<StoryDefine>>& g_old) const {
|
||||
QList<shared_ptr<FragmentDefine>> values;
|
||||
QList<shared_ptr<PointDefines>> values;
|
||||
|
||||
for (auto& type : _graph_base.keys()) {
|
||||
if (g_old.contains(type)) {
|
||||
|
@ -26,15 +26,15 @@ Compare::changeCompare(Type _type, const QHash<QString, shared_ptr<StoryDefine>>
|
|||
QList<QString> fragmets_define;
|
||||
while (story_new_temp) {
|
||||
if (story_new_temp->type() == SliceType::FragmentDefines) {
|
||||
auto fragm = std::dynamic_pointer_cast<FragmentDefine>(story_new_temp);
|
||||
auto fragm = std::dynamic_pointer_cast<PointDefines>(story_new_temp);
|
||||
fragmets_define << fragm->name();
|
||||
}
|
||||
story_new_temp = story_new_temp->nextSlice();
|
||||
}
|
||||
|
||||
for (auto fragm : fragmets_define) {
|
||||
auto fragm_this = std::dynamic_pointer_cast<FragmentDefine>(story_new->getFragment(fragm));
|
||||
auto fragm_peer = std::dynamic_pointer_cast<FragmentDefine>(story_old->getFragment(fragm));
|
||||
auto fragm_this = std::dynamic_pointer_cast<PointDefines>(story_new->getFragment(fragm));
|
||||
auto fragm_peer = std::dynamic_pointer_cast<PointDefines>(story_old->getFragment(fragm));
|
||||
if (fragm_peer) {
|
||||
if (_type == Type::FragmentAlter) {
|
||||
if (fragment_check(fragm_this, fragm_peer))
|
||||
|
@ -52,7 +52,7 @@ Compare::changeCompare(Type _type, const QHash<QString, shared_ptr<StoryDefine>>
|
|||
return values;
|
||||
}
|
||||
|
||||
bool Compare::fragment_check(std::shared_ptr<FragmentDefine> a, std::shared_ptr<FragmentDefine> b) const
|
||||
bool Compare::fragment_check(std::shared_ptr<PointDefines> a, std::shared_ptr<PointDefines> b) const
|
||||
{
|
||||
auto texts_a = a->getTextNode();
|
||||
auto texts_b = b->getTextNode();
|
||||
|
@ -138,8 +138,8 @@ bool Compare::upstream_check(std::shared_ptr<IElementSlice> a, std::shared_ptr<I
|
|||
}break;
|
||||
default:
|
||||
{
|
||||
desc_a = std::dynamic_pointer_cast<FragmentDefine>(prev_slice_a)->getTextNode()->getLines();
|
||||
desc_b = std::dynamic_pointer_cast<FragmentDefine>(prev_slice_b)->getTextNode()->getLines();
|
||||
desc_a = std::dynamic_pointer_cast<PointDefines>(prev_slice_a)->getTextNode()->getLines();
|
||||
desc_b = std::dynamic_pointer_cast<PointDefines>(prev_slice_b)->getTextNode()->getLines();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -149,8 +149,8 @@ bool Compare::upstream_check(std::shared_ptr<IElementSlice> a, std::shared_ptr<I
|
|||
}
|
||||
|
||||
if (a->type() == SliceType::FragmentDefines) {
|
||||
auto slices_a = std::dynamic_pointer_cast<FragmentDefine>(a)->referSlices();
|
||||
auto slices_b = std::dynamic_pointer_cast<FragmentDefine>(b)->referSlices();
|
||||
auto slices_a = std::dynamic_pointer_cast<PointDefines>(a)->referSlices();
|
||||
auto slices_b = std::dynamic_pointer_cast<PointDefines>(b)->referSlices();
|
||||
|
||||
if(slices_a.size() != slices_b.size())
|
||||
return true;
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace compare {
|
|||
|
||||
const QHash<QString, std::shared_ptr<xast_parse::StoryDefine>> &graphBind() const;
|
||||
|
||||
QList<std::shared_ptr<xast_parse::FragmentDefine>> changeCompare(Type type,
|
||||
QList<std::shared_ptr<xast_parse::PointDefines>> changeCompare(Type type,
|
||||
const QHash<QString, std::shared_ptr<xast_parse::StoryDefine>>& g_old) const;
|
||||
|
||||
private:
|
||||
|
@ -27,7 +27,7 @@ namespace compare {
|
|||
* @param b 旧情节
|
||||
* @return true-有变更
|
||||
*/
|
||||
bool fragment_check(std::shared_ptr<xast_parse::FragmentDefine> a, std::shared_ptr<xast_parse::FragmentDefine> b) const;
|
||||
bool fragment_check(std::shared_ptr<xast_parse::PointDefines> a, std::shared_ptr<xast_parse::PointDefines> b) const;
|
||||
/*
|
||||
* @brief 情节上游内容比较
|
||||
* @param a 本情节
|
||||
|
|
|
@ -50,7 +50,7 @@ void StoryPresent::loadXAST(const QString& ast_path)
|
|||
switch (frag_temp->type()) {
|
||||
case SliceType::FragmentDefines:
|
||||
{
|
||||
auto arrow_tail = std::dynamic_pointer_cast<FragmentDefine>(frag_temp)->name() + u8"@" + story_line->name();
|
||||
auto arrow_tail = std::dynamic_pointer_cast<PointDefines>(frag_temp)->name() + u8"@" + story_line->name();
|
||||
arrows << graph_data::Arrow(arrow_start, arrow_tail);
|
||||
arrow_start = arrow_tail;
|
||||
}break;
|
||||
|
@ -85,7 +85,7 @@ void StoryPresent::nodeClickAccept(const QPointF& pos, const QString& node_name)
|
|||
switch (temp_node->type()) {
|
||||
case SliceType::FragmentDefines:
|
||||
{
|
||||
auto fragm = std::dynamic_pointer_cast<FragmentDefine>(temp_node);
|
||||
auto fragm = std::dynamic_pointer_cast<PointDefines>(temp_node);
|
||||
node_names << QString(u8"%1@%2").arg(fragm->name(), node_name);
|
||||
}break;
|
||||
case SliceType::PointRefers:
|
||||
|
@ -113,7 +113,7 @@ void StoryPresent::nodeClickAccept(const QPointF& pos, const QString& node_name)
|
|||
auto splits = node_name.split(u8"@", QString::SkipEmptyParts);
|
||||
auto story_line = this->_story_graph[splits.last()];
|
||||
auto fragm_slice = story_line->getFragment(splits.first());
|
||||
auto fragm_defn = std::dynamic_pointer_cast<FragmentDefine>(fragm_slice);
|
||||
auto fragm_defn = std::dynamic_pointer_cast<PointDefines>(fragm_slice);
|
||||
|
||||
auto refers = fragm_defn->referSlices();
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ shared_ptr<IElementSlice> StoryDefine::getFragment(const QString& name) {
|
|||
auto temp_node = this->firstChild();
|
||||
while (temp_node) {
|
||||
if (temp_node->type() == SliceType::FragmentDefines) {
|
||||
if (dynamic_pointer_cast<FragmentDefine>(temp_node)->name() == name)
|
||||
if (dynamic_pointer_cast<PointDefines>(temp_node)->name() == name)
|
||||
return temp_node;
|
||||
}
|
||||
temp_node = temp_node->nextSlice();
|
||||
|
@ -98,24 +98,24 @@ uint StoryDefine::index() const {
|
|||
return this->sort_store;
|
||||
}
|
||||
|
||||
FragmentDefine::FragmentDefine(const QString& name, shared_ptr<StoryDefine> pnode)
|
||||
PointDefines::PointDefines(const QString& name, shared_ptr<StoryDefine> pnode)
|
||||
: __DesElement(SliceType::FragmentDefines, static_pointer_cast<IElementSlice>(pnode)), name_store(name) { }
|
||||
|
||||
QString FragmentDefine::name() const {
|
||||
QString PointDefines::name() const {
|
||||
return name_store;
|
||||
}
|
||||
|
||||
QList<shared_ptr<IElementSlice>> FragmentDefine::referSlices() const {
|
||||
QList<shared_ptr<IElementSlice>> PointDefines::referSlices() const {
|
||||
return this->refs_list;
|
||||
}
|
||||
|
||||
void FragmentDefine::appendRefer(shared_ptr<IElementSlice> slice) {
|
||||
void PointDefines::appendRefer(shared_ptr<IElementSlice> slice) {
|
||||
if (this->refs_list.contains(slice))
|
||||
return;
|
||||
this->refs_list << slice;
|
||||
}
|
||||
|
||||
QList<QString> FragmentDefine::nameSet() const {
|
||||
QList<QString> PointDefines::nameSet() const {
|
||||
return parentSlice().lock()->nameSet() << name();
|
||||
}
|
||||
|
||||
|
@ -151,11 +151,11 @@ QString FragmentRefer::fragmentRefer() const {
|
|||
return this->fragment_refers;
|
||||
}
|
||||
|
||||
weak_ptr<FragmentDefine> FragmentRefer::referTarget() const {
|
||||
weak_ptr<PointDefines> FragmentRefer::referTarget() const {
|
||||
return this->refer_targets;
|
||||
}
|
||||
|
||||
void FragmentRefer::setReferTowards(shared_ptr<FragmentDefine> target) {
|
||||
void FragmentRefer::setReferTowards(shared_ptr<PointDefines> target) {
|
||||
this->refer_targets = target;
|
||||
}
|
||||
|
||||
|
@ -341,9 +341,9 @@ shared_ptr<TextParagraph> XAST_Parser::text_paragraph_build(shared_ptr<__Collect
|
|||
return inst;
|
||||
}
|
||||
|
||||
shared_ptr<FragmentDefine> XAST_Parser::fragment_define_build(shared_ptr<StoryDefine> pnode, const QDomElement& e) {
|
||||
shared_ptr<PointDefines> XAST_Parser::fragment_define_build(shared_ptr<StoryDefine> pnode, const QDomElement& e) {
|
||||
auto fname = e.attribute(u8"name");
|
||||
auto fragm = make_shared<FragmentDefine>(fname, pnode);
|
||||
auto fragm = make_shared<PointDefines>(fname, pnode);
|
||||
|
||||
auto temp_elm = e.firstChildElement();
|
||||
while (!temp_elm.isNull()) {
|
||||
|
@ -380,7 +380,7 @@ void XAST_Parser::fragments_plait(QHash<QString, shared_ptr<StoryDefine>> story_
|
|||
auto refer_inst = static_pointer_cast<FragmentRefer>(slice);
|
||||
auto story_target = story_map[refer_inst->storyRefer()];
|
||||
auto fragm_target = story_target->getFragment(refer_inst->fragmentRefer());
|
||||
auto fragm_cast = static_pointer_cast<FragmentDefine>(fragm_target);
|
||||
auto fragm_cast = static_pointer_cast<PointDefines>(fragm_target);
|
||||
|
||||
fragm_cast->appendRefer(refer_inst);
|
||||
refer_inst->setReferTowards(fragm_cast);
|
||||
|
@ -507,7 +507,7 @@ void xast_parse::XAST_Parser::write_story(std::shared_ptr<StoryDefine> inst, con
|
|||
this->write_text(1, std::dynamic_pointer_cast<TextParagraph>(temp), o);
|
||||
break;
|
||||
case SliceType::FragmentDefines:
|
||||
this->write_fragmdef(1, std::dynamic_pointer_cast<FragmentDefine>(temp), o);
|
||||
this->write_fragmdef(1, std::dynamic_pointer_cast<PointDefines>(temp), o);
|
||||
break;
|
||||
case SliceType::PointRefers:
|
||||
this->write_fragmref(1, std::dynamic_pointer_cast<FragmentRefer>(temp), o);
|
||||
|
@ -529,7 +529,7 @@ void xast_parse::XAST_Parser::write_text(int dep, std::shared_ptr<TextParagraph>
|
|||
out << QString(dep * 2, ' ') << text << "\n";
|
||||
}
|
||||
|
||||
void xast_parse::XAST_Parser::write_fragmdef(int dep, std::shared_ptr<FragmentDefine> inst, QTextStream& out)
|
||||
void xast_parse::XAST_Parser::write_fragmdef(int dep, std::shared_ptr<PointDefines> inst, QTextStream& out)
|
||||
{
|
||||
out << QString(dep * 2, ' ') << QString(u8"{Çé½Ú %1\n").arg(inst->name());
|
||||
this->write_text(dep + 1, inst->getTextNode(), out);
|
||||
|
|
|
@ -133,14 +133,14 @@ namespace xast_parse {
|
|||
/// <summary>
|
||||
/// Çé½Ú¶¨Òå½Úµã
|
||||
/// </summary>
|
||||
class FragmentDefine : public __DesElement {
|
||||
class PointDefines : public __DesElement {
|
||||
private:
|
||||
QString name_store;
|
||||
QList<std::shared_ptr<IElementSlice>> refs_list;
|
||||
|
||||
public:
|
||||
FragmentDefine(const QString& name, std::shared_ptr<StoryDefine> pnode);
|
||||
virtual ~FragmentDefine() = default;
|
||||
PointDefines(const QString& name, std::shared_ptr<StoryDefine> pnode);
|
||||
virtual ~PointDefines() = default;
|
||||
|
||||
virtual QString name() const;
|
||||
|
||||
|
@ -156,7 +156,7 @@ namespace xast_parse {
|
|||
class FragmentRefer : public __DesElement {
|
||||
private:
|
||||
QString story_refers, fragment_refers;
|
||||
std::weak_ptr<FragmentDefine> refer_targets;
|
||||
std::weak_ptr<PointDefines> refer_targets;
|
||||
|
||||
public:
|
||||
FragmentRefer(const QString& story, const QString& fragm, std::shared_ptr<IElementSlice> pnode);
|
||||
|
@ -165,8 +165,8 @@ namespace xast_parse {
|
|||
virtual QString storyRefer() const;
|
||||
virtual QString fragmentRefer() const;
|
||||
|
||||
virtual std::weak_ptr<FragmentDefine> referTarget() const;
|
||||
virtual void setReferTowards(std::shared_ptr<FragmentDefine> target);
|
||||
virtual std::weak_ptr<PointDefines> referTarget() const;
|
||||
virtual void setReferTowards(std::shared_ptr<PointDefines> target);
|
||||
|
||||
// IElementSlice
|
||||
virtual QList<QString> nameSet() const override;
|
||||
|
@ -237,7 +237,7 @@ namespace xast_parse {
|
|||
|
||||
uint text_sections_count(const QList<QDomElement>& elms);
|
||||
std::shared_ptr<TextParagraph> text_paragraph_build(std::shared_ptr<__CollectionElement> pnode, QList<QDomElement>& elms, uint count);
|
||||
std::shared_ptr<FragmentDefine> fragment_define_build(std::shared_ptr<StoryDefine> pnode, const QDomElement& e);
|
||||
std::shared_ptr<PointDefines> fragment_define_build(std::shared_ptr<StoryDefine> pnode, const QDomElement& e);
|
||||
std::shared_ptr<FragmentRefer> fragment_refer_build(std::shared_ptr<__CollectionElement> pnode, const QDomElement& e);
|
||||
void fragments_plait(QHash<QString, std::shared_ptr<StoryDefine>> story_map, std::shared_ptr<ICollection> reflist);
|
||||
|
||||
|
@ -247,7 +247,7 @@ namespace xast_parse {
|
|||
void write_rank(std::shared_ptr<RankDecs> inst, const QDir &odir);
|
||||
void write_story(std::shared_ptr<StoryDefine> inst, const QDir &odir);
|
||||
void write_text(int dep, std::shared_ptr<TextParagraph> inst, QTextStream &out);
|
||||
void write_fragmdef(int dep, std::shared_ptr<FragmentDefine> inst, QTextStream& out);
|
||||
void write_fragmdef(int dep, std::shared_ptr<PointDefines> inst, QTextStream& out);
|
||||
void write_fragmref(int dep, std::shared_ptr<FragmentRefer> inst, QTextStream& out);
|
||||
|
||||
void write_volume(std::shared_ptr<VolumeDefine> inst, const QDir &odir);
|
||||
|
|
|
@ -236,7 +236,7 @@ QList<std::shared_ptr<FragmentRef>> Fragment::additionals() const {
|
|||
|
||||
void Fragment::buildSliceHTML(QDomElement& parent) const {
|
||||
auto syntax_access = this->accessPeers();
|
||||
auto fragment_inst = std::dynamic_pointer_cast<const FragmentDefine>(syntax_access->element());
|
||||
auto fragment_inst = std::dynamic_pointer_cast<const PointDefines>(syntax_access->element());
|
||||
|
||||
auto doc = parent.ownerDocument();
|
||||
auto dom_fragment = doc.createElement("div");
|
||||
|
@ -264,7 +264,7 @@ void Fragment::buildSliceHTML(QDomElement& parent) const {
|
|||
|
||||
void Fragment::buildPageHTML(QDomElement& parent) const {
|
||||
auto syntax_access = this->accessPeers();
|
||||
auto fragment_inst = std::dynamic_pointer_cast<const FragmentDefine>(syntax_access->element());
|
||||
auto fragment_inst = std::dynamic_pointer_cast<const PointDefines>(syntax_access->element());
|
||||
|
||||
auto doc = parent.ownerDocument();
|
||||
auto dom_fragment = doc.createElement("div");
|
||||
|
@ -437,7 +437,7 @@ QString printer::tools_printer::storylines_paint(const QList<std::shared_ptr<Sto
|
|||
for (auto &frag : story->elements()) {
|
||||
auto fragment_peers = frag->accessPeers()->element();
|
||||
if (fragment_peers->typeMark() == (int)example_novel::NovelNode::PointDefines) {
|
||||
auto fragment_elem = std::dynamic_pointer_cast<const example_novel::FragmentDefine>(fragment_peers);
|
||||
auto fragment_elem = std::dynamic_pointer_cast<const example_novel::PointDefines>(fragment_peers);
|
||||
auto node_name = fragment_elem->signature();
|
||||
node_records[node_name] = frag;
|
||||
|
||||
|
@ -480,7 +480,7 @@ QString printer::tools_printer::volumes_paint(const QList<std::shared_ptr<StoryV
|
|||
for (auto &frag : story->elements()) {
|
||||
auto fragment_peers = frag->accessPeers()->element();
|
||||
if (fragment_peers->typeMark() == (int)example_novel::NovelNode::PointDefines) {
|
||||
auto fragment_elem = std::dynamic_pointer_cast<const example_novel::FragmentDefine>(fragment_peers);
|
||||
auto fragment_elem = std::dynamic_pointer_cast<const example_novel::PointDefines>(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());
|
||||
}
|
||||
|
@ -761,7 +761,7 @@ bool printer::AstGenerate::visit(std::shared_ptr<const ast_gen::ElementAccess> s
|
|||
}
|
||||
|
||||
auto current_story = element_stack.last();
|
||||
auto fragment_node = std::dynamic_pointer_cast<const example_novel::FragmentDefine>(syntax_element->element());
|
||||
auto fragment_node = std::dynamic_pointer_cast<const example_novel::PointDefines>(syntax_element->element());
|
||||
auto dom_fragment = doc.createElement(u8"fragment");
|
||||
current_story.appendChild(dom_fragment);
|
||||
element_stack.append(dom_fragment);
|
||||
|
|
|
@ -126,7 +126,7 @@ void FragmentGraphCheck::validCheck(std::shared_ptr<const ElementAccess> root) c
|
|||
for (auto frag_primitive : fragment_items) {
|
||||
switch (frag_primitive->element()->typeMark()) {
|
||||
case (int)NovelNode::PointDefines: {
|
||||
auto target_node = std::dynamic_pointer_cast<const FragmentDefine>(frag_primitive->element());
|
||||
auto target_node = std::dynamic_pointer_cast<const PointDefines>(frag_primitive->element());
|
||||
auto finst = std::make_shared<FragmentGraphHelper>(target_node);
|
||||
|
||||
self->setElement(finst);
|
||||
|
@ -158,7 +158,7 @@ void FragmentGraphCheck::validCheck(std::shared_ptr<const ElementAccess> root) c
|
|||
auto get_name = [](std::shared_ptr<const ElementAccess> node)->QString {
|
||||
switch (node->element()->typeMark()) {
|
||||
case (int)NovelNode::PointDefines: {
|
||||
auto def_node = std::dynamic_pointer_cast<const FragmentDefine>(node->element());
|
||||
auto def_node = std::dynamic_pointer_cast<const PointDefines>(node->element());
|
||||
return def_node->signature();
|
||||
}break;
|
||||
case (int)NovelNode::PointRefers: {
|
||||
|
@ -215,9 +215,9 @@ QString FragmentGraphCheck::name() const {
|
|||
return u8"Çé½ÚÍøÂçÓÐЧÐÔ¼ì²éÆ÷";
|
||||
}
|
||||
|
||||
FragmentGraphHelper::FragmentGraphHelper(std::shared_ptr<const FragmentDefine> node) : node_peer(node) {}
|
||||
FragmentGraphHelper::FragmentGraphHelper(std::shared_ptr<const PointDefines> node) : node_peer(node) {}
|
||||
|
||||
std::shared_ptr<const FragmentDefine> FragmentGraphHelper::nodePeer() const
|
||||
std::shared_ptr<const PointDefines> FragmentGraphHelper::nodePeer() const
|
||||
{
|
||||
return this->node_peer;
|
||||
}
|
||||
|
|
|
@ -41,14 +41,14 @@ namespace example_novel {
|
|||
|
||||
class FragmentGraphHelper : public std::enable_shared_from_this<FragmentGraphHelper> {
|
||||
private:
|
||||
std::shared_ptr<const example_novel::FragmentDefine> node_peer;
|
||||
std::shared_ptr<const example_novel::PointDefines> node_peer;
|
||||
QList<std::shared_ptr<FragmentGraphHelper>> next_nodes;
|
||||
uint indegree = 0;
|
||||
|
||||
public:
|
||||
FragmentGraphHelper(std::shared_ptr<const example_novel::FragmentDefine> node);
|
||||
FragmentGraphHelper(std::shared_ptr<const example_novel::PointDefines> node);
|
||||
|
||||
std::shared_ptr<const example_novel::FragmentDefine> nodePeer() const;
|
||||
std::shared_ptr<const example_novel::PointDefines> nodePeer() const;
|
||||
|
||||
void appendNext(std::shared_ptr<FragmentGraphHelper> node);
|
||||
QList<std::shared_ptr<FragmentGraphHelper>> nextList() const;
|
||||
|
|
|
@ -57,24 +57,24 @@ QString PointRefers::signature() const {
|
|||
}
|
||||
|
||||
|
||||
FragmentDefine::FragmentDefine(std::shared_ptr<const ExprRule> rule_bind)
|
||||
PointDefines::PointDefines(std::shared_ptr<const ExprRule> rule_bind)
|
||||
: AbstractImpl(rule_bind) {}
|
||||
|
||||
QString FragmentDefine::name() const { return name_store; }
|
||||
QString PointDefines::name() const { return name_store; }
|
||||
|
||||
void example_novel::FragmentDefine::setName(const QString& nm)
|
||||
void example_novel::PointDefines::setName(const QString& nm)
|
||||
{
|
||||
this->name_store = nm;
|
||||
}
|
||||
|
||||
int FragmentDefine::typeMark() const { return (int)NovelNode::PointDefines; }
|
||||
int PointDefines::typeMark() const { return (int)NovelNode::PointDefines; }
|
||||
|
||||
bool FragmentDefine::isAnonymous() const
|
||||
bool PointDefines::isAnonymous() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
QString FragmentDefine::signature() const { return parent()->signature() + u8"&" + name(); }
|
||||
QString PointDefines::signature() const { return parent()->signature() + u8"&" + name(); }
|
||||
|
||||
|
||||
StoryDefine::StoryDefine(std::shared_ptr<const ExprRule> rule_bind)
|
||||
|
|
|
@ -67,9 +67,9 @@ namespace example_novel {
|
|||
QString story_refs, fragment_ref;
|
||||
};
|
||||
|
||||
class LIBSYNTAX_EXPORT FragmentDefine : public AbstractImpl {
|
||||
class LIBSYNTAX_EXPORT PointDefines : public AbstractImpl {
|
||||
public:
|
||||
FragmentDefine(std::shared_ptr<const lib_syntax::ExprRule> rule_bind);
|
||||
PointDefines(std::shared_ptr<const lib_syntax::ExprRule> rule_bind);
|
||||
|
||||
QString name() const;
|
||||
void setName(const QString& nm);
|
||||
|
|
|
@ -47,14 +47,14 @@ auto decl_expr = ElementRule<TextSection>(u8"decl_section", (int)NovelExprs::DES
|
|||
}))
|
||||
);
|
||||
|
||||
void frags_nmset(std::shared_ptr<FragmentDefine> inst, std::shared_ptr<const lib_token::IToken> token) {
|
||||
void frags_nmset(std::shared_ptr<PointDefines> inst, std::shared_ptr<const lib_token::IToken> token) {
|
||||
inst->setName(token->content());
|
||||
}
|
||||
auto fragment_decl = ElementRule<FragmentDefine>(u8"fragment_define", (int)NovelExprs::FRAG_DEFINES).reloadRule(
|
||||
auto fragment_decl = ElementRule<PointDefines>(u8"fragment_define", (int)NovelExprs::FRAG_DEFINES).reloadRule(
|
||||
std::make_shared<const Seqs>(Rules{
|
||||
MR(FragmentDefine, leftb), MR(FragmentDefine, frag_key), MER(FragmentDefine, frags_nmset, name_text) } <<
|
||||
MR(PointDefines, leftb), MR(PointDefines, frag_key), MER(PointDefines, frags_nmset, name_text) } <<
|
||||
OptR(decl_expr) <<
|
||||
MR(FragmentDefine, rightb)
|
||||
MR(PointDefines, rightb)
|
||||
));
|
||||
|
||||
void frags_snm_set(std::shared_ptr<PointRefers> inst, std::shared_ptr<const lib_token::IToken> token) {
|
||||
|
|
Loading…
Reference in New Issue