渐进修改
This commit is contained in:
parent
3a08bb270d
commit
ff8eb5a8d5
|
@ -218,7 +218,7 @@ QVariant StorylineModel::data(const QModelIndex& index, int role) const {
|
||||||
auto node = dynamic_pointer_cast<FragmentDefine>(curr_node);
|
auto node = dynamic_pointer_cast<FragmentDefine>(curr_node);
|
||||||
return node->getTextNode()->getLines();
|
return node->getTextNode()->getLines();
|
||||||
}
|
}
|
||||||
case SliceType::FragmentRefers:
|
case SliceType::PointRefers:
|
||||||
{
|
{
|
||||||
auto node = dynamic_pointer_cast<FragmentRefer>(curr_node);
|
auto node = dynamic_pointer_cast<FragmentRefer>(curr_node);
|
||||||
return node->getTextNode()->getLines();
|
return node->getTextNode()->getLines();
|
||||||
|
@ -260,7 +260,7 @@ bool StorylineModel::setData(const QModelIndex& index, const QVariant& value, in
|
||||||
auto defnode = dynamic_pointer_cast<FragmentDefine>(curr_node);
|
auto defnode = dynamic_pointer_cast<FragmentDefine>(curr_node);
|
||||||
defnode->getTextNode()->setLines(value.toString());
|
defnode->getTextNode()->setLines(value.toString());
|
||||||
}break;
|
}break;
|
||||||
case SliceType::FragmentRefers:
|
case SliceType::PointRefers:
|
||||||
{
|
{
|
||||||
auto refnode = dynamic_pointer_cast<FragmentRefer>(curr_node);
|
auto refnode = dynamic_pointer_cast<FragmentRefer>(curr_node);
|
||||||
refnode->getTextNode()->setLines(value.toString());
|
refnode->getTextNode()->setLines(value.toString());
|
||||||
|
|
|
@ -131,7 +131,7 @@ bool Compare::upstream_check(std::shared_ptr<IElementSlice> a, std::shared_ptr<I
|
||||||
desc_a = std::dynamic_pointer_cast<TextParagraph>(prev_slice_a)->getLines();
|
desc_a = std::dynamic_pointer_cast<TextParagraph>(prev_slice_a)->getLines();
|
||||||
desc_b = std::dynamic_pointer_cast<TextParagraph>(prev_slice_b)->getLines();
|
desc_b = std::dynamic_pointer_cast<TextParagraph>(prev_slice_b)->getLines();
|
||||||
}break;
|
}break;
|
||||||
case SliceType::FragmentRefers:
|
case SliceType::PointRefers:
|
||||||
{
|
{
|
||||||
desc_a = std::dynamic_pointer_cast<FragmentRefer>(prev_slice_a)->getTextNode()->getLines();
|
desc_a = std::dynamic_pointer_cast<FragmentRefer>(prev_slice_a)->getTextNode()->getLines();
|
||||||
desc_b = std::dynamic_pointer_cast<FragmentRefer>(prev_slice_b)->getTextNode()->getLines();
|
desc_b = std::dynamic_pointer_cast<FragmentRefer>(prev_slice_b)->getTextNode()->getLines();
|
||||||
|
|
|
@ -54,7 +54,7 @@ void StoryPresent::loadXAST(const QString& ast_path)
|
||||||
arrows << graph_data::Arrow(arrow_start, arrow_tail);
|
arrows << graph_data::Arrow(arrow_start, arrow_tail);
|
||||||
arrow_start = arrow_tail;
|
arrow_start = arrow_tail;
|
||||||
}break;
|
}break;
|
||||||
case SliceType::FragmentRefers:
|
case SliceType::PointRefers:
|
||||||
{
|
{
|
||||||
auto conv_refer = std::dynamic_pointer_cast<FragmentRefer>(frag_temp);
|
auto conv_refer = std::dynamic_pointer_cast<FragmentRefer>(frag_temp);
|
||||||
auto arrow_tail = conv_refer->fragmentRefer() + u8"@" + conv_refer->storyRefer();
|
auto arrow_tail = conv_refer->fragmentRefer() + u8"@" + conv_refer->storyRefer();
|
||||||
|
@ -88,7 +88,7 @@ void StoryPresent::nodeClickAccept(const QPointF& pos, const QString& node_name)
|
||||||
auto fragm = std::dynamic_pointer_cast<FragmentDefine>(temp_node);
|
auto fragm = std::dynamic_pointer_cast<FragmentDefine>(temp_node);
|
||||||
node_names << QString(u8"%1@%2").arg(fragm->name(), node_name);
|
node_names << QString(u8"%1@%2").arg(fragm->name(), node_name);
|
||||||
}break;
|
}break;
|
||||||
case SliceType::FragmentRefers:
|
case SliceType::PointRefers:
|
||||||
{
|
{
|
||||||
auto frefer = std::dynamic_pointer_cast<FragmentRefer>(temp_node);
|
auto frefer = std::dynamic_pointer_cast<FragmentRefer>(temp_node);
|
||||||
node_names << QString(u8"%1@%2").arg(frefer->fragmentRefer(), frefer->storyRefer());
|
node_names << QString(u8"%1@%2").arg(frefer->fragmentRefer(), frefer->storyRefer());
|
||||||
|
|
|
@ -141,7 +141,7 @@ shared_ptr<TextParagraph> __DesElement::getTextNode() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
FragmentRefer::FragmentRefer(const QString& story, const QString& fragm, shared_ptr<IElementSlice> pnode)
|
FragmentRefer::FragmentRefer(const QString& story, const QString& fragm, shared_ptr<IElementSlice> pnode)
|
||||||
: __DesElement(SliceType::FragmentRefers, pnode), story_refers(story), fragment_refers(fragm) { }
|
: __DesElement(SliceType::PointRefers, pnode), story_refers(story), fragment_refers(fragm) { }
|
||||||
|
|
||||||
QString FragmentRefer::storyRefer() const {
|
QString FragmentRefer::storyRefer() const {
|
||||||
return this->story_refers;
|
return this->story_refers;
|
||||||
|
@ -376,7 +376,7 @@ shared_ptr<FragmentRefer> XAST_Parser::fragment_refer_build(shared_ptr<__Collect
|
||||||
void XAST_Parser::fragments_plait(QHash<QString, shared_ptr<StoryDefine>> story_map, shared_ptr<ICollection> reflist) {
|
void XAST_Parser::fragments_plait(QHash<QString, shared_ptr<StoryDefine>> story_map, shared_ptr<ICollection> reflist) {
|
||||||
auto slice = reflist->firstChild();
|
auto slice = reflist->firstChild();
|
||||||
while (slice) {
|
while (slice) {
|
||||||
if (slice->type() == SliceType::FragmentRefers) {
|
if (slice->type() == SliceType::PointRefers) {
|
||||||
auto refer_inst = static_pointer_cast<FragmentRefer>(slice);
|
auto refer_inst = static_pointer_cast<FragmentRefer>(slice);
|
||||||
auto story_target = story_map[refer_inst->storyRefer()];
|
auto story_target = story_map[refer_inst->storyRefer()];
|
||||||
auto fragm_target = story_target->getFragment(refer_inst->fragmentRefer());
|
auto fragm_target = story_target->getFragment(refer_inst->fragmentRefer());
|
||||||
|
@ -509,7 +509,7 @@ void xast_parse::XAST_Parser::write_story(std::shared_ptr<StoryDefine> inst, con
|
||||||
case SliceType::FragmentDefines:
|
case SliceType::FragmentDefines:
|
||||||
this->write_fragmdef(1, std::dynamic_pointer_cast<FragmentDefine>(temp), o);
|
this->write_fragmdef(1, std::dynamic_pointer_cast<FragmentDefine>(temp), o);
|
||||||
break;
|
break;
|
||||||
case SliceType::FragmentRefers:
|
case SliceType::PointRefers:
|
||||||
this->write_fragmref(1, std::dynamic_pointer_cast<FragmentRefer>(temp), o);
|
this->write_fragmref(1, std::dynamic_pointer_cast<FragmentRefer>(temp), o);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -582,7 +582,7 @@ void xast_parse::XAST_Parser::write_article(int dep, std::shared_ptr<ArticleDefi
|
||||||
case SliceType::TextPragraph:
|
case SliceType::TextPragraph:
|
||||||
this->write_text(dep + 1, std::dynamic_pointer_cast<TextParagraph>(temp), out);
|
this->write_text(dep + 1, std::dynamic_pointer_cast<TextParagraph>(temp), out);
|
||||||
break;
|
break;
|
||||||
case SliceType::FragmentRefers:
|
case SliceType::PointRefers:
|
||||||
this->write_fragmref(dep + 1, std::dynamic_pointer_cast<FragmentRefer>(temp), out);
|
this->write_fragmref(dep + 1, std::dynamic_pointer_cast<FragmentRefer>(temp), out);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace xast_parse {
|
||||||
StoryDefines, // 故事线定义
|
StoryDefines, // 故事线定义
|
||||||
TextPragraph, // 文字段落
|
TextPragraph, // 文字段落
|
||||||
FragmentDefines, // 情节定义
|
FragmentDefines, // 情节定义
|
||||||
FragmentRefers, // 情节引用
|
PointRefers, // 情节引用
|
||||||
VolumeDefines, // 卷宗定义
|
VolumeDefines, // 卷宗定义
|
||||||
ArticleDefines, // 章节定义
|
ArticleDefines, // 章节定义
|
||||||
};
|
};
|
||||||
|
|
|
@ -115,7 +115,7 @@ void StoryVolume::buildPageHTML(QDomElement& parent) const {
|
||||||
parent_element.appendChild(article_group);
|
parent_element.appendChild(article_group);
|
||||||
}break;
|
}break;
|
||||||
case NovelNode::PointRefers:{
|
case NovelNode::PointRefers:{
|
||||||
auto fragment_inst = std::dynamic_pointer_cast<const FragmentRefers>(child->element());
|
auto fragment_inst = std::dynamic_pointer_cast<const PointRefers>(child->element());
|
||||||
auto refer_inst = this->getElement(fragment_inst->signature());
|
auto refer_inst = this->getElement(fragment_inst->signature());
|
||||||
refer_inst->buildSliceHTML(parent_element);
|
refer_inst->buildSliceHTML(parent_element);
|
||||||
}break;
|
}break;
|
||||||
|
@ -142,7 +142,7 @@ std::shared_ptr<Fragment> printer::FragmentRef::hostFragment() const
|
||||||
|
|
||||||
void FragmentRef::buildSliceHTML(QDomElement& dom_parent) const {
|
void FragmentRef::buildSliceHTML(QDomElement& dom_parent) const {
|
||||||
auto syntax_access = this->accessPeers();
|
auto syntax_access = this->accessPeers();
|
||||||
auto refer_element = std::dynamic_pointer_cast<const FragmentRefers>(syntax_access->element());
|
auto refer_element = std::dynamic_pointer_cast<const PointRefers>(syntax_access->element());
|
||||||
|
|
||||||
auto jump_to_host = this->hostFragment()->pageRefers();
|
auto jump_to_host = this->hostFragment()->pageRefers();
|
||||||
auto doc = dom_parent.ownerDocument();
|
auto doc = dom_parent.ownerDocument();
|
||||||
|
@ -191,7 +191,7 @@ void FragmentRef::buildSliceHTML(QDomElement& dom_parent) const {
|
||||||
|
|
||||||
void FragmentRef::buildPageHTML(QDomElement& parent) const {
|
void FragmentRef::buildPageHTML(QDomElement& parent) const {
|
||||||
auto syntax_access = this->accessPeers();
|
auto syntax_access = this->accessPeers();
|
||||||
auto refer_element = std::dynamic_pointer_cast<const FragmentRefers>(syntax_access->element());
|
auto refer_element = std::dynamic_pointer_cast<const PointRefers>(syntax_access->element());
|
||||||
|
|
||||||
auto doc = parent.ownerDocument();
|
auto doc = parent.ownerDocument();
|
||||||
|
|
||||||
|
@ -340,7 +340,7 @@ void tools_printer::build_storyline(std::shared_ptr<StoryLine> line, std::shared
|
||||||
line->append(inst);
|
line->append(inst);
|
||||||
}return;
|
}return;
|
||||||
case NovelNode::PointRefers: {
|
case NovelNode::PointRefers: {
|
||||||
auto refer_node = std::dynamic_pointer_cast<const FragmentRefers>(novel_node->element());
|
auto refer_node = std::dynamic_pointer_cast<const PointRefers>(novel_node->element());
|
||||||
auto refer_fragment = this->fragment_defines[refer_node->referSignature()];
|
auto refer_fragment = this->fragment_defines[refer_node->referSignature()];
|
||||||
auto inst = std::make_shared<FragmentRef>(novel_node);
|
auto inst = std::make_shared<FragmentRef>(novel_node);
|
||||||
refer_fragment->appendRefers(inst);
|
refer_fragment->appendRefers(inst);
|
||||||
|
@ -361,7 +361,7 @@ void tools_printer::build_volumeline(std::shared_ptr<StoryVolume> volume, std::s
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (NovelNode::PointRefers == (NovelNode)novel_node->element()->typeMark()) {
|
if (NovelNode::PointRefers == (NovelNode)novel_node->element()->typeMark()) {
|
||||||
auto refer_node = std::dynamic_pointer_cast<const FragmentRefers>(novel_node->element());
|
auto refer_node = std::dynamic_pointer_cast<const PointRefers>(novel_node->element());
|
||||||
auto refer_fragment = this->fragment_defines[refer_node->referSignature()];
|
auto refer_fragment = this->fragment_defines[refer_node->referSignature()];
|
||||||
auto inst = std::make_shared<FragmentRef>(novel_node);
|
auto inst = std::make_shared<FragmentRef>(novel_node);
|
||||||
refer_fragment->appendRefers(inst);
|
refer_fragment->appendRefers(inst);
|
||||||
|
@ -459,7 +459,7 @@ QString printer::tools_printer::storylines_paint(const QList<std::shared_ptr<Sto
|
||||||
previous_node = get_node_name(frag);
|
previous_node = get_node_name(frag);
|
||||||
}
|
}
|
||||||
else if (example_novel::NovelNode::PointRefers == (example_novel::NovelNode)frag->accessPeers()->element()->typeMark()) {
|
else if (example_novel::NovelNode::PointRefers == (example_novel::NovelNode)frag->accessPeers()->element()->typeMark()) {
|
||||||
auto frag_refer = std::dynamic_pointer_cast<const example_novel::FragmentRefers>(frag->accessPeers()->element());
|
auto frag_refer = std::dynamic_pointer_cast<const example_novel::PointRefers>(frag->accessPeers()->element());
|
||||||
auto frag_src = node_records[frag_refer->referSignature()];
|
auto frag_src = node_records[frag_refer->referSignature()];
|
||||||
arrows_link += previous_node + u8"->" + get_node_name(frag_src) + QString(u8"[label=\"%1{%2}\"]\n")
|
arrows_link += previous_node + u8"->" + get_node_name(frag_src) + QString(u8"[label=\"%1{%2}\"]\n")
|
||||||
.arg(story_elem->name()).arg(story_elem->sort());
|
.arg(story_elem->name()).arg(story_elem->sort());
|
||||||
|
@ -497,7 +497,7 @@ QString printer::tools_printer::volumes_paint(const QList<std::shared_ptr<StoryV
|
||||||
QString nodes_description;
|
QString nodes_description;
|
||||||
for (auto& fragment_access : article_access->children()) {
|
for (auto& fragment_access : article_access->children()) {
|
||||||
if (fragment_access->element()->typeMark() == (int)example_novel::NovelNode::PointRefers) {
|
if (fragment_access->element()->typeMark() == (int)example_novel::NovelNode::PointRefers) {
|
||||||
auto refer_fragment = std::dynamic_pointer_cast<const example_novel::FragmentRefers>(fragment_access->element());
|
auto refer_fragment = std::dynamic_pointer_cast<const example_novel::PointRefers>(fragment_access->element());
|
||||||
nodes_description += QString(u8"fragment_%1[label=\"%2\",shape=\"plaintext\"]\n")
|
nodes_description += QString(u8"fragment_%1[label=\"%2\",shape=\"plaintext\"]\n")
|
||||||
.arg((qulonglong)refer_fragment.get()).arg(refer_fragment->fragmentRefer());
|
.arg((qulonglong)refer_fragment.get()).arg(refer_fragment->fragmentRefer());
|
||||||
auto symbo_refer = node_records[refer_fragment->referSignature()];
|
auto symbo_refer = node_records[refer_fragment->referSignature()];
|
||||||
|
@ -789,7 +789,7 @@ bool printer::AstGenerate::visit(std::shared_ptr<const ast_gen::ElementAccess> s
|
||||||
}
|
}
|
||||||
|
|
||||||
auto current_pnode = element_stack.last();
|
auto current_pnode = element_stack.last();
|
||||||
auto refer_node = std::dynamic_pointer_cast<const example_novel::FragmentRefers>(syntax_element->element());
|
auto refer_node = std::dynamic_pointer_cast<const example_novel::PointRefers>(syntax_element->element());
|
||||||
auto dom_refer = doc.createElement(u8"refer");
|
auto dom_refer = doc.createElement(u8"refer");
|
||||||
element_stack.append(dom_refer);
|
element_stack.append(dom_refer);
|
||||||
current_pnode.appendChild(dom_refer);
|
current_pnode.appendChild(dom_refer);
|
||||||
|
|
|
@ -14,7 +14,7 @@ using namespace example_novel;
|
||||||
void FragmentExistsCheck::exists_check(std::shared_ptr<const GlobalElement> root,
|
void FragmentExistsCheck::exists_check(std::shared_ptr<const GlobalElement> root,
|
||||||
std::shared_ptr<const ElementAccess> target) const {
|
std::shared_ptr<const ElementAccess> target) const {
|
||||||
if (target->element()->typeMark() == (int)NovelNode::PointRefers) {
|
if (target->element()->typeMark() == (int)NovelNode::PointRefers) {
|
||||||
auto refer = std::dynamic_pointer_cast<const FragmentRefers>(target->element());
|
auto refer = std::dynamic_pointer_cast<const PointRefers>(target->element());
|
||||||
auto signature = refer->storyRefer() + u8"&" + refer->fragmentRefer();
|
auto signature = refer->storyRefer() + u8"&" + refer->fragmentRefer();
|
||||||
if (!root->getNamedNodeBy((int)NovelNode::PointDefines, signature))
|
if (!root->getNamedNodeBy((int)NovelNode::PointDefines, signature))
|
||||||
throw new SyntaxException(QString(u8"CheckError[0x0005]系统中不包含指定签名的节点:%1<type:%2>{%3:(%4)}")
|
throw new SyntaxException(QString(u8"CheckError[0x0005]系统中不包含指定签名的节点:%1<type:%2>{%3:(%4)}")
|
||||||
|
@ -162,7 +162,7 @@ void FragmentGraphCheck::validCheck(std::shared_ptr<const ElementAccess> root) c
|
||||||
return def_node->signature();
|
return def_node->signature();
|
||||||
}break;
|
}break;
|
||||||
case (int)NovelNode::PointRefers: {
|
case (int)NovelNode::PointRefers: {
|
||||||
auto ref_node = std::dynamic_pointer_cast<const FragmentRefers>(node->element());
|
auto ref_node = std::dynamic_pointer_cast<const PointRefers>(node->element());
|
||||||
return ref_node->referSignature();
|
return ref_node->referSignature();
|
||||||
}break;
|
}break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,33 +25,33 @@ bool TextSection::isAnonymous() const
|
||||||
|
|
||||||
QString TextSection::signature() const { return u8"::section"; }
|
QString TextSection::signature() const { return u8"::section"; }
|
||||||
|
|
||||||
FragmentRefers::FragmentRefers(std::shared_ptr<const ExprRule> rule_bind)
|
PointRefers::PointRefers(std::shared_ptr<const ExprRule> rule_bind)
|
||||||
: AbstractImpl(rule_bind) {}
|
: AbstractImpl(rule_bind) {}
|
||||||
|
|
||||||
QString FragmentRefers::storyRefer() const { return story_refs; }
|
QString PointRefers::storyRefer() const { return story_refs; }
|
||||||
|
|
||||||
void example_novel::FragmentRefers::setStoryRefer(const QString& refer) {
|
void example_novel::PointRefers::setStoryRefer(const QString& refer) {
|
||||||
this->story_refs = refer;
|
this->story_refs = refer;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FragmentRefers::fragmentRefer() const { return fragment_ref; }
|
QString PointRefers::fragmentRefer() const { return fragment_ref; }
|
||||||
|
|
||||||
void example_novel::FragmentRefers::setFragmentRefer(const QString& refer) {
|
void example_novel::PointRefers::setFragmentRefer(const QString& refer) {
|
||||||
this->fragment_ref = refer;
|
this->fragment_ref = refer;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FragmentRefers::referSignature() const {
|
QString PointRefers::referSignature() const {
|
||||||
return storyRefer() + u8"&" + fragmentRefer();
|
return storyRefer() + u8"&" + fragmentRefer();
|
||||||
}
|
}
|
||||||
|
|
||||||
int FragmentRefers::typeMark() const { return (int)NovelNode::PointRefers; }
|
int PointRefers::typeMark() const { return (int)NovelNode::PointRefers; }
|
||||||
|
|
||||||
bool FragmentRefers::isAnonymous() const
|
bool PointRefers::isAnonymous() const
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FragmentRefers::signature() const {
|
QString PointRefers::signature() const {
|
||||||
QString signature = u8"@" + storyRefer() + u8"&" + fragmentRefer();
|
QString signature = u8"@" + storyRefer() + u8"&" + fragmentRefer();
|
||||||
return parent()->signature() + signature;
|
return parent()->signature() + signature;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace example_novel {
|
||||||
ArticleDefine = 6,
|
ArticleDefine = 6,
|
||||||
VolumeDefine = 7,
|
VolumeDefine = 7,
|
||||||
RankDeclaration = 8,
|
RankDeclaration = 8,
|
||||||
|
FragmentSlice = 9,
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIBSYNTAX_EXPORT AbstractImpl : public ast_basic::ExprElement, public ast_gen::SyntaxElement {
|
class LIBSYNTAX_EXPORT AbstractImpl : public ast_basic::ExprElement, public ast_gen::SyntaxElement {
|
||||||
|
@ -44,9 +45,9 @@ namespace example_novel {
|
||||||
virtual QString signature() const override;
|
virtual QString signature() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
class LIBSYNTAX_EXPORT FragmentRefers : public AbstractImpl {
|
class LIBSYNTAX_EXPORT PointRefers : public AbstractImpl {
|
||||||
public:
|
public:
|
||||||
FragmentRefers(std::shared_ptr<const lib_syntax::ExprRule> rule_bind);
|
PointRefers(std::shared_ptr<const lib_syntax::ExprRule> rule_bind);
|
||||||
|
|
||||||
QString storyRefer() const;
|
QString storyRefer() const;
|
||||||
void setStoryRefer(const QString& refer);
|
void setStoryRefer(const QString& refer);
|
||||||
|
|
|
@ -57,18 +57,18 @@ auto fragment_decl = ElementRule<FragmentDefine>(u8"fragment_define", (int)Novel
|
||||||
MR(FragmentDefine, rightb)
|
MR(FragmentDefine, rightb)
|
||||||
));
|
));
|
||||||
|
|
||||||
void frags_snm_set(std::shared_ptr<FragmentRefers> inst, std::shared_ptr<const lib_token::IToken> token) {
|
void frags_snm_set(std::shared_ptr<PointRefers> inst, std::shared_ptr<const lib_token::IToken> token) {
|
||||||
inst->setStoryRefer(token->content());
|
inst->setStoryRefer(token->content());
|
||||||
}
|
}
|
||||||
void frags_fnm_set(std::shared_ptr<FragmentRefers> inst, std::shared_ptr<const lib_token::IToken> token) {
|
void frags_fnm_set(std::shared_ptr<PointRefers> inst, std::shared_ptr<const lib_token::IToken> token) {
|
||||||
inst->setFragmentRefer(token->content());
|
inst->setFragmentRefer(token->content());
|
||||||
}
|
}
|
||||||
auto fragment_refer = ElementRule<FragmentRefers>(u8"fragment_refer", (int)NovelExprs::FRAG_REFERS).reloadRule(
|
auto fragment_refer = ElementRule<PointRefers>(u8"fragment_refer", (int)NovelExprs::FRAG_REFERS).reloadRule(
|
||||||
std::make_shared<const Seqs>(Rules{
|
std::make_shared<const Seqs>(Rules{
|
||||||
MR(FragmentRefers, leftb), MR(FragmentRefers, refers), MR(FragmentRefers, frag_key),
|
MR(PointRefers, leftb), MR(PointRefers, refers), MR(PointRefers, frag_key),
|
||||||
MER(FragmentRefers, frags_fnm_set, name_text), MR(FragmentRefers, split_mark), MER(FragmentRefers, frags_snm_set, name_text) } <<
|
MER(PointRefers, frags_fnm_set, name_text), MR(PointRefers, split_mark), MER(PointRefers, frags_snm_set, name_text) } <<
|
||||||
OptR(decl_expr) <<
|
OptR(decl_expr) <<
|
||||||
MR(FragmentRefers, rightb)
|
MR(PointRefers, rightb)
|
||||||
));
|
));
|
||||||
|
|
||||||
void story_nmset(std::shared_ptr<StoryDefine> inst, std::shared_ptr<const lib_token::IToken> token) {
|
void story_nmset(std::shared_ptr<StoryDefine> inst, std::shared_ptr<const lib_token::IToken> token) {
|
||||||
|
|
Loading…
Reference in New Issue