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-04 14:26:34 +00:00
|
|
|
class LIBSYNTAX_EXPORT LeftBracket : public lib_token::ITokenProcess, public std::enable_shared_from_this<LeftBracket> {
|
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-02 12:54:32 +00:00
|
|
|
class LIBSYNTAX_EXPORT RightBracket : public LeftBracket {
|
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-02 12:54:32 +00:00
|
|
|
class LIBSYNTAX_EXPORT ReferMark : public LeftBracket {
|
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-02 12:54:32 +00:00
|
|
|
class LIBSYNTAX_EXPORT Split : public LeftBracket {
|
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-04 14:26:34 +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:
|
2024-07-12 22:16:11 +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-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-04 14:26:34 +00:00
|
|
|
class LIBSYNTAX_EXPORT VTextSection : public lib_token::ITokenProcess, public std::enable_shared_from_this<VTextSection> {
|
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
|