121 lines
4.6 KiB
C++
121 lines
4.6 KiB
C++
#pragma once
|
|
|
|
#include "libtokens.h"
|
|
#include <QString>
|
|
#include <memory>
|
|
#include <tuple>
|
|
|
|
|
|
namespace example_novel {
|
|
class LIBSYNTAX_EXPORT LBracket : public lib_token::ITokenProcess, public std::enable_shared_from_this<LBracket> {
|
|
// TokenDefine interface
|
|
public:
|
|
virtual QString reviseWords() const override;
|
|
virtual int typeMark() const override;
|
|
virtual QString regex() const override;
|
|
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;
|
|
};
|
|
|
|
class LIBSYNTAX_EXPORT RBracket : public LBracket {
|
|
public:
|
|
virtual QString reviseWords() const override;
|
|
virtual int typeMark() const override;
|
|
virtual QString regex() const override;
|
|
};
|
|
|
|
class LIBSYNTAX_EXPORT ReferMk : public LBracket {
|
|
public:
|
|
virtual QString reviseWords() const override;
|
|
virtual int typeMark() const override;
|
|
virtual QString regex() const override;
|
|
};
|
|
|
|
class LIBSYNTAX_EXPORT SplitMk : public LBracket {
|
|
public:
|
|
virtual QString reviseWords() const override;
|
|
virtual int typeMark() const override;
|
|
virtual QString regex() const override;
|
|
};
|
|
|
|
class LIBSYNTAX_EXPORT __keywords : public lib_token::ITokenProcess, public std::enable_shared_from_this<__keywords> {
|
|
private:
|
|
QString means_store;
|
|
int type_code;
|
|
|
|
public:
|
|
__keywords(const QString& val, uint type_code);
|
|
|
|
// TokenDefine interface
|
|
public:
|
|
virtual QString reviseWords() const override;
|
|
virtual int typeMark() const override;
|
|
virtual QString regex() const override;
|
|
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;
|
|
};
|
|
class LIBSYNTAX_EXPORT RankWord : public __keywords {
|
|
public:
|
|
RankWord();
|
|
};
|
|
class LIBSYNTAX_EXPORT StoryWord : public __keywords {
|
|
public:
|
|
StoryWord();
|
|
};
|
|
class LIBSYNTAX_EXPORT SliceWord : public __keywords {
|
|
public:
|
|
SliceWord();
|
|
};
|
|
class LIBSYNTAX_EXPORT VolumeWord : public __keywords {
|
|
public:
|
|
VolumeWord();
|
|
};
|
|
class LIBSYNTAX_EXPORT ArticleWord : public __keywords {
|
|
public:
|
|
ArticleWord();
|
|
};
|
|
|
|
|
|
class LIBSYNTAX_EXPORT Numbers : public lib_token::ITokenProcess, public std::enable_shared_from_this<Numbers> {
|
|
// TokenDefine interface
|
|
public:
|
|
virtual QString reviseWords() const override;
|
|
virtual int typeMark() const override;
|
|
virtual QString regex() const override;
|
|
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;
|
|
};
|
|
|
|
|
|
class LIBSYNTAX_EXPORT NameText : public lib_token::ITokenProcess, public std::enable_shared_from_this<NameText> {
|
|
// TokenDefine interface
|
|
public:
|
|
virtual QString reviseWords() const override;
|
|
virtual int typeMark() const override;
|
|
virtual QString regex() const override;
|
|
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;
|
|
};
|
|
|
|
class LIBSYNTAX_EXPORT NormalText : public lib_token::ITokenProcess, public std::enable_shared_from_this<NormalText> {
|
|
// TokenDefine interface
|
|
public:
|
|
virtual QString reviseWords() const override;
|
|
virtual int typeMark() const override;
|
|
virtual QString regex() const override;
|
|
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;
|
|
};
|
|
|
|
class LIBSYNTAX_EXPORT DeclareSymbo : public lib_token::ITokenProcess, public std::enable_shared_from_this<DeclareSymbo> {
|
|
public:
|
|
// 通过 TokenDefine 继承
|
|
virtual QString reviseWords() const override;
|
|
virtual int typeMark() const override;
|
|
virtual QString regex() const override;
|
|
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;
|
|
|
|
};
|
|
} // namespace example_novel
|