QtNovelUI/libParse/token_impls.h

105 lines
3.8 KiB
C
Raw Normal View History

#ifndef TOKEN_IMPLS_H
#define TOKEN_IMPLS_H
#include "lex_foundation.h"
namespace Lex {
/**
* \brief */
class TokenWord : public WordBase {
public:
virtual ~TokenWord() = default;
/**
* \brief * \param file_path */
explicit TokenWord(const QString &file_path);
/**
* \brief
*/
virtual QString content() const override;
/**
* \brief */
virtual QString filePath() const override;
/**
* \brief */
virtual int row() const override;
/**
* \brief */
virtual int column() const override;
/**
* @brief у * @param other
* @return
*/
// virtual WordBase &operator=(const WordBase &other) override;
/**
* \brief /// <param name="word">鐠囧秷顕㈤弬鍥ㄦ拱</param>
/// <param name="row">鐞涘苯鐣炬稊/param>
/// <param name="col">閸掓鐣炬稊/param>
*/
void reset(const QString &word, int row, int col);
private:
QString content_val;
QString filepath_val;
int row_val, column_val;
};
/**
* @brief
*/
class TokenResult : public Token {
private:
TokenDef *const def_store;
WordBase *remains_store;
QString content_store;
QString filepath_store;
int row_store, col_store;
public:
/**
* @brief oken鐟欙絾鐎界紒鎾寸亯鐎圭偘绶 * @param def * @param word
* @param length
*/
TokenResult(TokenDef *def, const WordBase &word, int length);
virtual ~TokenResult() = default;
/**
* @brief Token鐟欙絾鐎界 * @return */
virtual TokenDef *def() const override;
/**
* @brief * @return */
virtual WordBase *remains() const override;
/**
* \brief oken閸栧懎鎯堥崘鍛
* \return */
virtual QString content() const override;
/**
* \brief oken缂佹垵鐣鹃惃鍕 * \return */
virtual QString filePath() const override;
/**
* \brief oken濠ф劒鍞 * \return */
virtual int row() const override;
/**
* \brief oken濠ф劒鍞稿 * \return */
virtual int column() const override;
/**
* @brief * @param other
* @return
*/
// virtual WordBase &operator=(const WordBase &other);
};
} // namespace Lex
#endif // TOKEN_IMPLS_H