This commit is contained in:
parent
ddd88463a8
commit
ea760da50f
|
@ -5,12 +5,12 @@
|
|||
using namespace lib_words;
|
||||
|
||||
|
||||
std::shared_ptr<const IWordBase> WordReader::wordsFrom(const QString& path) const {
|
||||
std::shared_ptr<const IPrimitiveWord> WordReader::wordsFrom(const QString& path) const {
|
||||
auto primary_words = extract_primary(path);
|
||||
if (!primary_words.size())
|
||||
return nullptr;
|
||||
|
||||
std::shared_ptr<const IWordBase> prev_ptr = std::make_shared<const WordImpl>(primary_words.last(), nullptr);
|
||||
std::shared_ptr<const IPrimitiveWord> prev_ptr = std::make_shared<const WordImpl>(primary_words.last(), nullptr);
|
||||
for (auto idx = primary_words.size() - 2; idx >= 0; --idx) {
|
||||
auto content_ptr = primary_words[idx];
|
||||
prev_ptr = std::make_shared<const WordImpl>(content_ptr, prev_ptr);
|
||||
|
@ -58,7 +58,7 @@ QList<std::shared_ptr<const IWordBase>> WordReader::parse_line(uint64_t start_po
|
|||
return primary_words;
|
||||
}
|
||||
|
||||
WordImpl::WordImpl(std::shared_ptr<const IWordBase> content, std::shared_ptr<const IWordBase> next)
|
||||
WordImpl::WordImpl(std::shared_ptr<const IWordBase> content, std::shared_ptr<const IPrimitiveWord> next)
|
||||
: content_ptr(content), next_ptr(next) { }
|
||||
|
||||
QString WordImpl::file() const {
|
||||
|
@ -81,7 +81,7 @@ int WordImpl::column() const {
|
|||
return content_ptr->column();
|
||||
}
|
||||
|
||||
std::shared_ptr<const IWordBase> WordImpl::nextWord() const {
|
||||
std::shared_ptr<const IPrimitiveWord> WordImpl::nextWord() const {
|
||||
return next_ptr;
|
||||
}
|
||||
|
||||
|
@ -116,6 +116,6 @@ int WordContent::column() const {
|
|||
return col_n;
|
||||
}
|
||||
|
||||
std::shared_ptr<const IWordBase> WordContent::nextWord() const {
|
||||
std::shared_ptr<const IPrimitiveWord> WordContent::nextWord() const {
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ namespace lib_words {
|
|||
*
|
||||
* \return
|
||||
*/
|
||||
virtual std::shared_ptr<const IWordBase> nextWord() const = 0;
|
||||
virtual std::shared_ptr<const IPrimitiveWord> nextWord() const = 0;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -67,16 +67,16 @@ namespace lib_words {
|
|||
virtual QString content() const override;
|
||||
virtual int row() const override;
|
||||
virtual int column() const override;
|
||||
virtual std::shared_ptr<const IWordBase> nextWord() const override;
|
||||
virtual std::shared_ptr<const IPrimitiveWord> nextWord() const override;
|
||||
};
|
||||
|
||||
class LIBWORDS_EXPORT WordImpl : public IPrimitiveWord {
|
||||
private:
|
||||
std::shared_ptr<const IWordBase> content_ptr;
|
||||
std::shared_ptr<const IWordBase> next_ptr;
|
||||
std::shared_ptr<const IPrimitiveWord> next_ptr;
|
||||
|
||||
public:
|
||||
WordImpl(std::shared_ptr<const IWordBase> content, std::shared_ptr<const IWordBase> next);
|
||||
WordImpl(std::shared_ptr<const IWordBase> content, std::shared_ptr<const IPrimitiveWord> next);
|
||||
|
||||
// 通过 IWordBase 继承
|
||||
QString file() const override;
|
||||
|
@ -84,7 +84,7 @@ namespace lib_words {
|
|||
QString content() const override;
|
||||
int row() const override;
|
||||
int column() const override;
|
||||
std::shared_ptr<const IWordBase> nextWord() const override;
|
||||
std::shared_ptr<const IPrimitiveWord> nextWord() const override;
|
||||
};
|
||||
|
||||
|
||||
|
@ -100,7 +100,7 @@ namespace lib_words {
|
|||
/**
|
||||
* @brief 提取源码中所有的词语
|
||||
*/
|
||||
std::shared_ptr<const IWordBase> wordsFrom(const QString& path) const;
|
||||
std::shared_ptr<const IPrimitiveWord> wordsFrom(const QString& path) const;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue