实现了语法树cache机制
This commit is contained in:
parent
8404719d26
commit
ac99860469
|
@ -117,7 +117,7 @@ void example_novel::Document::cacheLoad()
|
|||
}
|
||||
|
||||
example_novel::AbstractImpl::AbstractImpl(std::shared_ptr<const lib_syntax::ExpressionRule> rule_bind)
|
||||
: ExpressionElement(rule_bind) {}
|
||||
: ExpressionElement(rule_bind) { parent_store.reset(); }
|
||||
|
||||
QList<std::shared_ptr<const ast_gen::TokenAccess> > AbstractImpl::selfTokens() const {
|
||||
auto tokensx = ast_basic::ExpressionElement::tokens();
|
||||
|
@ -131,7 +131,7 @@ QList<std::shared_ptr<const ast_gen::TokenAccess> > AbstractImpl::selfTokens() c
|
|||
|
||||
std::shared_ptr<const ast_gen::SyntaxElement> example_novel::AbstractImpl::parent() const
|
||||
{
|
||||
return this->parent_store;
|
||||
return this->parent_store.lock();
|
||||
}
|
||||
|
||||
void example_novel::AbstractImpl::setParent(std::shared_ptr<const ast_gen::SyntaxElement> inst)
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace example_novel
|
|||
class LIBSYNTAX_EXPORT AbstractImpl :
|
||||
public ast_basic::ExpressionElement, public ast_gen::SyntaxElement {
|
||||
private:
|
||||
std::shared_ptr<const SyntaxElement> parent_store = nullptr;
|
||||
std::weak_ptr<const SyntaxElement> parent_store;
|
||||
|
||||
public:
|
||||
explicit AbstractImpl(std::shared_ptr<const lib_syntax::ExpressionRule> rule_bind);
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue