WsParser_VS/WsNovelParser/novelparser.h

28 lines
916 B
C++

#pragma once
#include <QFileInfoList>
#include <ast_gen.h>
#include <libsyntax.h>
#include <libparse.h>
namespace example_novel {
class FragmentGraphHelper;
}
class NovelParser
{
private:
std::shared_ptr<ast_gen::GlobalElement> context = nullptr;
std::shared_ptr<const lib_syntax::ExprRule> syntax_defines;
QList<std::shared_ptr<const lib_parse::CheckProvider>> checker_list;
std::shared_ptr<const lib_parse::Analyzer> analyzer_ref;
public:
NovelParser();
QList<std::shared_ptr<const example_novel::FragmentGraphHelper>> fragmentsSorted() const;
virtual QString version() const;
std::shared_ptr<lib_syntax::IContext> parserContext() const;
QList<std::shared_ptr<const ast_basic::IExprInst>> parse(const QFileInfoList souurce_list) const;
std::shared_ptr<const ast_gen::ElementAccess> validsApply(QList<std::shared_ptr<const ast_basic::IExprInst>> docs_list) const;
};