#pragma once #include #include #include #include #include #include namespace printer { /** * @brief Ast输出构建器. */ class AstGenerate : public lib_parse::TreeVisitor { private: QDir src_root; QDomDocument doc; QList element_stack; void append_tokens(QDomElement _elm, std::shared_ptr inst); public: AstGenerate(const QDir &src_root); QString content() const; // 通过 TreeVisitor 继承 lib_parse::VisitMode mode() const override; bool visit(std::shared_ptr ast_element) override; }; }