WsParser_VS/libSyntax/tokens_novel.h

126 lines
4.7 KiB
C
Raw Normal View History

2024-03-17 07:58:28 +00:00
#pragma once
2025-02-02 12:54:32 +00:00
#include "libtokens.h"
2024-03-17 07:58:28 +00:00
#include <QString>
#include <memory>
#include <tuple>
2024-06-20 04:49:26 +00:00
2024-03-17 07:58:28 +00:00
namespace example_novel {
2025-02-11 15:36:30 +00:00
class LIBSYNTAX_EXPORT LBracket : public lib_token::ITokenProcess, public std::enable_shared_from_this<LBracket> {
2024-03-17 07:58:28 +00:00
// TokenDefine interface
public:
2024-07-12 22:16:11 +00:00
virtual QString reviseWords() const override;
2024-06-19 04:05:43 +00:00
virtual int typeMark() const override;
2024-03-17 07:58:28 +00:00
virtual QString regex() const override;
2025-02-04 14:26:34 +00:00
virtual std::tuple<std::shared_ptr<const lib_token::IToken>, std::shared_ptr<const lib_words::IPrimitiveWord>>
analysis(std::shared_ptr<const lib_words::IPrimitiveWord> content) const override;
2024-03-17 07:58:28 +00:00
};
2025-02-11 15:36:30 +00:00
class LIBSYNTAX_EXPORT RBracket : public LBracket {
2024-03-17 07:58:28 +00:00
public:
2024-07-12 22:16:11 +00:00
virtual QString reviseWords() const override;
2024-06-19 04:05:43 +00:00
virtual int typeMark() const override;
2024-03-17 07:58:28 +00:00
virtual QString regex() const override;
};
2025-02-11 15:36:30 +00:00
class LIBSYNTAX_EXPORT ReferMk : public LBracket {
2024-03-17 07:58:28 +00:00
public:
2024-07-12 22:16:11 +00:00
virtual QString reviseWords() const override;
2024-06-19 04:05:43 +00:00
virtual int typeMark() const override;
2024-03-17 07:58:28 +00:00
virtual QString regex() const override;
};
2025-02-11 15:36:30 +00:00
class LIBSYNTAX_EXPORT SplitMk : public LBracket {
2024-03-17 07:58:28 +00:00
public:
2024-07-12 22:16:11 +00:00
virtual QString reviseWords() const override;
2024-06-19 04:05:43 +00:00
virtual int typeMark() const override;
2024-03-17 07:58:28 +00:00
virtual QString regex() const override;
};
2025-02-12 02:15:26 +00:00
class LIBSYNTAX_EXPORT __keywords : public lib_token::ITokenProcess, public std::enable_shared_from_this<__keywords> {
2024-03-17 07:58:28 +00:00
private:
2024-07-12 22:16:11 +00:00
QString means_store;
2024-06-19 04:05:43 +00:00
int type_code;
2024-03-17 07:58:28 +00:00
public:
2025-02-12 02:15:26 +00:00
__keywords(const QString& val, uint type_code);
2024-03-17 07:58:28 +00:00
// TokenDefine interface
public:
2024-07-12 22:16:11 +00:00
virtual QString reviseWords() const override;
2024-06-19 04:05:43 +00:00
virtual int typeMark() const override;
2024-03-17 07:58:28 +00:00
virtual QString regex() const override;
2025-02-04 14:26:34 +00:00
virtual std::tuple<std::shared_ptr<const lib_token::IToken>, std::shared_ptr<const lib_words::IPrimitiveWord>>
analysis(std::shared_ptr<const lib_words::IPrimitiveWord> content) const override;
2024-03-17 07:58:28 +00:00
};
2025-02-12 02:15:26 +00:00
class LIBSYNTAX_EXPORT RankWord : public __keywords {
2025-02-11 15:36:30 +00:00
public:
RankWord();
};
2025-02-12 02:15:26 +00:00
class LIBSYNTAX_EXPORT StoryWord : public __keywords {
2025-02-11 15:36:30 +00:00
public:
StoryWord();
};
2025-02-12 02:15:26 +00:00
class LIBSYNTAX_EXPORT SliceWord : public __keywords {
2025-02-11 15:36:30 +00:00
public:
SliceWord();
};
2025-02-12 02:15:26 +00:00
class LIBSYNTAX_EXPORT PointWord : public __keywords {
2025-02-11 15:36:30 +00:00
public:
PointWord();
};
2025-02-12 02:15:26 +00:00
class LIBSYNTAX_EXPORT VolumeWord : public __keywords {
2025-02-11 15:36:30 +00:00
public:
VolumeWord();
};
2025-02-12 02:15:26 +00:00
class LIBSYNTAX_EXPORT ArticleWord : public __keywords {
2025-02-11 15:36:30 +00:00
public:
ArticleWord();
};
2025-02-04 14:26:34 +00:00
class LIBSYNTAX_EXPORT Numbers : public lib_token::ITokenProcess, public std::enable_shared_from_this<Numbers> {
2024-03-17 07:58:28 +00:00
// TokenDefine interface
public:
2024-07-12 22:16:11 +00:00
virtual QString reviseWords() const override;
2024-06-19 04:05:43 +00:00
virtual int typeMark() const override;
2024-03-17 07:58:28 +00:00
virtual QString regex() const override;
2025-02-04 14:26:34 +00:00
virtual std::tuple<std::shared_ptr<const lib_token::IToken>, std::shared_ptr<const lib_words::IPrimitiveWord>>
analysis(std::shared_ptr<const lib_words::IPrimitiveWord> content) const override;
2024-03-17 07:58:28 +00:00
};
2025-02-04 14:26:34 +00:00
class LIBSYNTAX_EXPORT NameSection : public lib_token::ITokenProcess, public std::enable_shared_from_this<NameSection> {
2024-03-17 07:58:28 +00:00
// TokenDefine interface
public:
2024-07-12 22:16:11 +00:00
virtual QString reviseWords() const override;
2024-06-19 04:05:43 +00:00
virtual int typeMark() const override;
2024-03-17 07:58:28 +00:00
virtual QString regex() const override;
2025-02-04 14:26:34 +00:00
virtual std::tuple<std::shared_ptr<const lib_token::IToken>, std::shared_ptr<const lib_words::IPrimitiveWord>>
analysis(std::shared_ptr<const lib_words::IPrimitiveWord> content) const override;
2024-03-17 07:58:28 +00:00
};
2025-02-11 15:36:30 +00:00
class LIBSYNTAX_EXPORT NormalText : public lib_token::ITokenProcess, public std::enable_shared_from_this<NormalText> {
2024-03-17 07:58:28 +00:00
// TokenDefine interface
public:
2024-07-12 22:16:11 +00:00
virtual QString reviseWords() const override;
2024-06-19 04:05:43 +00:00
virtual int typeMark() const override;
2024-03-17 07:58:28 +00:00
virtual QString regex() const override;
2025-02-04 14:26:34 +00:00
virtual std::tuple<std::shared_ptr<const lib_token::IToken>, std::shared_ptr<const lib_words::IPrimitiveWord>>
analysis(std::shared_ptr<const lib_words::IPrimitiveWord> content) const override;
2024-06-20 04:49:26 +00:00
};
2025-02-04 14:26:34 +00:00
class LIBSYNTAX_EXPORT DeclareSymbo : public lib_token::ITokenProcess, public std::enable_shared_from_this<DeclareSymbo> {
2024-06-20 04:49:26 +00:00
public:
2025-02-11 14:32:10 +00:00
// 通过 TokenDefine 继承
2024-07-12 22:16:11 +00:00
virtual QString reviseWords() const override;
2024-06-20 04:49:26 +00:00
virtual int typeMark() const override;
virtual QString regex() const override;
2025-02-04 14:26:34 +00:00
virtual std::tuple<std::shared_ptr<const lib_token::IToken>, std::shared_ptr<const lib_words::IPrimitiveWord>>
analysis(std::shared_ptr<const lib_words::IPrimitiveWord> content) const override;
2024-06-20 04:49:26 +00:00
2024-03-17 07:58:28 +00:00
};
} // namespace example_novel