#pragma once #include #include #include "SyntaxBase.h" namespace Syntax { /** * 基础解析器框架. */ class ParseFrame { public: explicit ParseFrame(); virtual ~ParseFrame() = default; QList analysis(Parse::Result::DocCore *doc, const QString &path); protected: void appendTokensDefine(QList seqs, const QString &unknown_token); void appendParser(Syntax::SyntaxParser* u); private: QString unknown_token; QList token_seqs; QList cascade_parsers; ParseResult ParseFrame::inner_parse(QList &lex_seqence, QList parsers, QList &nodes_out); }; }