update
This commit is contained in:
parent
351c061479
commit
956bc5c85c
|
@ -49,7 +49,7 @@ void rank_set(std::shared_ptr<RankDeclare> inst, std::shared_ptr<const lib_token
|
||||||
inst->setRank(token->content().toInt());
|
inst->setRank(token->content().toInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
using TextDeclsSyntaxDef = lib_composit::Multi<AnyR<TokenRn<TextSection, Numbers>, TokenRn<TextSection, NormalText>, TokenRn<TextSection, ReferMk>, TokenRn<TextSection, SplitMk>>>;
|
using TextDeclsSyntaxDef = lib_composit::Multi<AnyR<TMate<TextSection, Numbers>, TMate<TextSection, NormalText>, TMate<TextSection, ReferMk>, TMate<TextSection, SplitMk>>>;
|
||||||
class DeclSyntax : public ElementRule<TextSection, (int) NovelNode::TextSection, TextDeclsSyntaxDef> {
|
class DeclSyntax : public ElementRule<TextSection, (int) NovelNode::TextSection, TextDeclsSyntaxDef> {
|
||||||
public:
|
public:
|
||||||
DeclSyntax() : ElementRule<TextSection, (int) NovelNode::TextSection, TextDeclsSyntaxDef>("decl_section") { }
|
DeclSyntax() : ElementRule<TextSection, (int) NovelNode::TextSection, TextDeclsSyntaxDef>("decl_section") { }
|
||||||
|
@ -62,9 +62,9 @@ public:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
using PointSyntaxDef = lib_composit::SeqsR<TokenRn<PointDefines, LBracket>, TokenRn<PointDefines, PointWord>, TokenR<PointDefines, NameSection, point_nmset>,
|
using PointSyntaxDef = lib_composit::SeqsR<TMate<PointDefines, LBracket>, TMate<PointDefines, PointWord>, TAct<PointDefines, NameText, point_nmset>,
|
||||||
Opt<DeclSyntax>,
|
Opt<DeclSyntax>,
|
||||||
TokenRn<PointDefines, RBracket>>;
|
TMate<PointDefines, RBracket>>;
|
||||||
class PointSyntax : public ElementRule<PointDefines, (int) NovelNode::PointDefines, PointSyntaxDef> {
|
class PointSyntax : public ElementRule<PointDefines, (int) NovelNode::PointDefines, PointSyntaxDef> {
|
||||||
public:
|
public:
|
||||||
PointSyntax() : ElementRule<PointDefines, (int) NovelNode::PointDefines, PointSyntaxDef>("point_define") { }
|
PointSyntax() : ElementRule<PointDefines, (int) NovelNode::PointDefines, PointSyntaxDef>("point_define") { }
|
||||||
|
@ -77,9 +77,9 @@ public:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
using ReferSyntaxDef = lib_composit::SeqsR<TokenRn<PointRefers, LBracket>, TokenRn<PointRefers, ReferMk>, TokenRn<PointRefers, PointWord>, TokenR<PointRefers, NameSection, ref_story_set>, TokenRn<PointRefers, ReferMk>, TokenR<PointRefers, NameSection, ref_slice_set>, TokenRn<PointRefers, ReferMk>, TokenR<PointRefers, NameSection, ref_point_set>,
|
using ReferSyntaxDef = lib_composit::SeqsR<TMate<PointRefers, LBracket>, TMate<PointRefers, ReferMk>, TMate<PointRefers, PointWord>, TAct<PointRefers, NameText, ref_story_set>, TMate<PointRefers, ReferMk>, TAct<PointRefers, NameText, ref_slice_set>, TMate<PointRefers, ReferMk>, TAct<PointRefers, NameText, ref_point_set>,
|
||||||
Opt<DeclSyntax>,
|
Opt<DeclSyntax>,
|
||||||
TokenRn<PointDefines, RBracket>>;
|
TMate<PointDefines, RBracket>>;
|
||||||
class ReferSyntax : public ElementRule<PointRefers, (int) NovelNode::PointRefers, ReferSyntaxDef> {
|
class ReferSyntax : public ElementRule<PointRefers, (int) NovelNode::PointRefers, ReferSyntaxDef> {
|
||||||
public:
|
public:
|
||||||
ReferSyntax() : ElementRule < PointRefers, (int) NovelNode::PointRefers, ReferSyntaxDef>("point_refer") { }
|
ReferSyntax() : ElementRule < PointRefers, (int) NovelNode::PointRefers, ReferSyntaxDef>("point_refer") { }
|
||||||
|
@ -92,9 +92,9 @@ public:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
using SliceSyntaxDef = lib_composit::SeqsR<TokenRn<FragmentSlice, LBracket>, TokenRn<FragmentSlice, SliceWord>, TokenR<FragmentSlice, NameSection, slice_nm_set>,
|
using SliceSyntaxDef = lib_composit::SeqsR<TMate<FragmentSlice, LBracket>, TMate<FragmentSlice, SliceWord>, TAct<FragmentSlice, NameText, slice_nm_set>,
|
||||||
lib_composit::OptMulti<AnyR<PointSyntax, ReferSyntax, DeclSyntax>>,
|
lib_composit::OptMulti<AnyR<PointSyntax, ReferSyntax, DeclSyntax>>,
|
||||||
TokenRn<FragmentSlice, RBracket>>;
|
TMate<FragmentSlice, RBracket>>;
|
||||||
class SliceSyntax : public ElementRule<FragmentSlice, (int) NovelNode::FragmentSlice, SliceSyntaxDef> {
|
class SliceSyntax : public ElementRule<FragmentSlice, (int) NovelNode::FragmentSlice, SliceSyntaxDef> {
|
||||||
public:
|
public:
|
||||||
SliceSyntax() : ElementRule<FragmentSlice, (int) NovelNode::FragmentSlice, SliceSyntaxDef>("slice_define") { }
|
SliceSyntax() : ElementRule<FragmentSlice, (int) NovelNode::FragmentSlice, SliceSyntaxDef>("slice_define") { }
|
||||||
|
@ -107,9 +107,9 @@ public:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
using StorySyntaxDef = lib_composit::SeqsR<TokenRn<StoryDefine, LBracket>, TokenRn<StoryDefine, StoryWord>, TokenR<StoryDefine, NameSection, story_nmset>,
|
using StorySyntaxDef = lib_composit::SeqsR<TMate<StoryDefine, LBracket>, TMate<StoryDefine, StoryWord>, TAct<StoryDefine, NameText, story_nmset>,
|
||||||
lib_composit::OptMulti<AnyR<SliceSyntax, DeclSyntax>>,
|
lib_composit::OptMulti<AnyR<SliceSyntax, DeclSyntax>>,
|
||||||
TokenRn<StoryDefine, RBracket>>;
|
TMate<StoryDefine, RBracket>>;
|
||||||
class StorySyntax : public ElementRule<StoryDefine, (int) NovelNode::StoryDefine, StorySyntaxDef> {
|
class StorySyntax : public ElementRule<StoryDefine, (int) NovelNode::StoryDefine, StorySyntaxDef> {
|
||||||
public:
|
public:
|
||||||
StorySyntax() : ElementRule<StoryDefine, (int) NovelNode::StoryDefine, StorySyntaxDef>("story_define") { }
|
StorySyntax() : ElementRule<StoryDefine, (int) NovelNode::StoryDefine, StorySyntaxDef>("story_define") { }
|
||||||
|
@ -122,9 +122,9 @@ public:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
using ArticleSyntaxDef = lib_composit::SeqsR<TokenRn<ArticleDefine, LBracket>, TokenRn<ArticleDefine, ArticleWord>, TokenR<ArticleDefine, NameSection, article_nset>,
|
using ArticleSyntaxDef = lib_composit::SeqsR<TMate<ArticleDefine, LBracket>, TMate<ArticleDefine, ArticleWord>, TAct<ArticleDefine, NameText, article_nset>,
|
||||||
lib_composit::OptMulti<AnyR<ReferSyntax, DeclSyntax>>,
|
lib_composit::OptMulti<AnyR<ReferSyntax, DeclSyntax>>,
|
||||||
TokenRn<ArticleDefine, RBracket>>;
|
TMate<ArticleDefine, RBracket>>;
|
||||||
class ArticleSyntax : public ElementRule<ArticleDefine, (int) NovelNode::ArticleDefine, ArticleSyntaxDef> {
|
class ArticleSyntax : public ElementRule<ArticleDefine, (int) NovelNode::ArticleDefine, ArticleSyntaxDef> {
|
||||||
public:
|
public:
|
||||||
ArticleSyntax() : ElementRule<ArticleDefine, (int) NovelNode::ArticleDefine, ArticleSyntaxDef>("article_define") { }
|
ArticleSyntax() : ElementRule<ArticleDefine, (int) NovelNode::ArticleDefine, ArticleSyntaxDef>("article_define") { }
|
||||||
|
@ -137,9 +137,9 @@ public:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
using VolumeSyntaxDef = lib_composit::SeqsR<TokenRn<VolumeDefine, LBracket>, TokenRn<VolumeDefine, VolumeWord>, TokenR<VolumeDefine, NameSection, volume_nset>,
|
using VolumeSyntaxDef = lib_composit::SeqsR<TMate<VolumeDefine, LBracket>, TMate<VolumeDefine, VolumeWord>, TAct<VolumeDefine, NameText, volume_nset>,
|
||||||
lib_composit::OptMulti<AnyR<ArticleSyntax, DeclSyntax>>,
|
lib_composit::OptMulti<AnyR<ArticleSyntax, DeclSyntax>>,
|
||||||
TokenRn<VolumeDefine, RBracket>>;
|
TMate<VolumeDefine, RBracket>>;
|
||||||
class VolumeSyntax : public ElementRule<VolumeDefine, (int) NovelNode::VolumeDefine, VolumeSyntaxDef> {
|
class VolumeSyntax : public ElementRule<VolumeDefine, (int) NovelNode::VolumeDefine, VolumeSyntaxDef> {
|
||||||
public:
|
public:
|
||||||
VolumeSyntax() : ElementRule<VolumeDefine, (int) NovelNode::VolumeDefine, VolumeSyntaxDef>("volume_define") { }
|
VolumeSyntax() : ElementRule<VolumeDefine, (int) NovelNode::VolumeDefine, VolumeSyntaxDef>("volume_define") { }
|
||||||
|
@ -152,7 +152,7 @@ public:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
using RankSyntaxDef = lib_composit::SeqsR<TokenRn<RankDeclare, DeclareSymbo>, TokenRn<RankDeclare, RankWord>, TokenR<RankDeclare, Numbers, rank_set>>;
|
using RankSyntaxDef = lib_composit::SeqsR<TMate<RankDeclare, DeclareSymbo>, TMate<RankDeclare, RankWord>, TAct<RankDeclare, Numbers, rank_set>>;
|
||||||
class RankSyntax : public ElementRule<RankDeclare, (int) NovelNode::RankDeclaration, RankSyntaxDef> {
|
class RankSyntax : public ElementRule<RankDeclare, (int) NovelNode::RankDeclaration, RankSyntaxDef> {
|
||||||
public:
|
public:
|
||||||
RankSyntax() : ElementRule<RankDeclare, (int) NovelNode::RankDeclaration, RankSyntaxDef>("rank_define") { }
|
RankSyntax() : ElementRule<RankDeclare, (int) NovelNode::RankDeclaration, RankSyntaxDef>("rank_define") { }
|
||||||
|
|
|
@ -48,9 +48,9 @@ namespace lib_composit {
|
||||||
|
|
||||||
template<typename E, typename T, lib_token::TokenProc<E> p = nullptr>
|
template<typename E, typename T, lib_token::TokenProc<E> p = nullptr>
|
||||||
requires std::derived_from<E, ast_basic::IExprInstance>&& std::derived_from<T, lib_token::ITokenProcess>
|
requires std::derived_from<E, ast_basic::IExprInstance>&& std::derived_from<T, lib_token::ITokenProcess>
|
||||||
class TokenR : public lib_syntax::TokenMatch<E, p> {
|
class TAct : public lib_syntax::TokenMatch<E, p> {
|
||||||
public:
|
public:
|
||||||
TokenR() : TokenMatch<E, p>(std::make_shared<T>()) { }
|
TAct() : TokenMatch<E, p>(std::make_shared<T>()) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename ExprT> requires std::derived_from<ExprT, ast_basic::IExprInstance>
|
template<typename ExprT> requires std::derived_from<ExprT, ast_basic::IExprInstance>
|
||||||
|
@ -59,5 +59,5 @@ namespace lib_composit {
|
||||||
}
|
}
|
||||||
template<typename E, typename T>
|
template<typename E, typename T>
|
||||||
requires std::derived_from<E, ast_basic::IExprInstance>&& std::derived_from<T, lib_token::ITokenProcess>
|
requires std::derived_from<E, ast_basic::IExprInstance>&& std::derived_from<T, lib_token::ITokenProcess>
|
||||||
class TokenRn : public TokenR<E, T, apntk> { };
|
class TMate : public TAct<E, T, apntk> { };
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,17 +134,17 @@ int SplitMk::typeMark() const
|
||||||
|
|
||||||
QString SplitMk::regex() const { return "&"; }
|
QString SplitMk::regex() const { return "&"; }
|
||||||
|
|
||||||
QString NameSection::reviseWords() const { return "名称"; }
|
QString NameText::reviseWords() const { return "名称"; }
|
||||||
|
|
||||||
int NameSection::typeMark() const
|
int NameText::typeMark() const
|
||||||
{
|
{
|
||||||
return 0x08000000;
|
return 0x08000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString NameSection::regex() const { return "^([^\\{\\}@&]+)"; }
|
QString NameText::regex() const { return "^([^\\{\\}@&]+)"; }
|
||||||
|
|
||||||
std::tuple<std::shared_ptr<const IToken>, std::shared_ptr<const IPrimitiveWord> >
|
std::tuple<std::shared_ptr<const IToken>, std::shared_ptr<const IPrimitiveWord> >
|
||||||
NameSection::analysis(std::shared_ptr<const IPrimitiveWord> content) const
|
NameText::analysis(std::shared_ptr<const IPrimitiveWord> content) const
|
||||||
{
|
{
|
||||||
auto text = content->content();
|
auto text = content->content();
|
||||||
QRegExp regx(regex());
|
QRegExp regx(regex());
|
||||||
|
|
|
@ -91,7 +91,7 @@ namespace example_novel {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class LIBSYNTAX_EXPORT NameSection : public lib_token::ITokenProcess, public std::enable_shared_from_this<NameSection> {
|
class LIBSYNTAX_EXPORT NameText : public lib_token::ITokenProcess, public std::enable_shared_from_this<NameText> {
|
||||||
// TokenDefine interface
|
// TokenDefine interface
|
||||||
public:
|
public:
|
||||||
virtual QString reviseWords() const override;
|
virtual QString reviseWords() const override;
|
||||||
|
|
Loading…
Reference in New Issue