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