100 lines
4.1 KiB
C++
100 lines
4.1 KiB
C++
#pragma once
|
||
|
||
#include "libtokens.h"
|
||
#include <QString>
|
||
#include <memory>
|
||
#include <tuple>
|
||
|
||
|
||
namespace example_novel {
|
||
class LIBSYNTAX_EXPORT LeftBracket : public lib_token::ITokenProcess, public std::enable_shared_from_this<LeftBracket> {
|
||
// 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 RightBracket : public LeftBracket {
|
||
public:
|
||
virtual QString reviseWords() const override;
|
||
virtual int typeMark() const override;
|
||
virtual QString regex() const override;
|
||
};
|
||
|
||
class LIBSYNTAX_EXPORT ReferMark : public LeftBracket {
|
||
public:
|
||
virtual QString reviseWords() const override;
|
||
virtual int typeMark() const override;
|
||
virtual QString regex() const override;
|
||
};
|
||
|
||
class LIBSYNTAX_EXPORT Split : public LeftBracket {
|
||
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 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 NameSection : public lib_token::ITokenProcess, public std::enable_shared_from_this<NameSection> {
|
||
// 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 VTextSection : public lib_token::ITokenProcess, public std::enable_shared_from_this<VTextSection> {
|
||
// 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:
|
||
// ͨ<><CDA8> TokenDefine <20>̳<EFBFBD>
|
||
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
|