QtNovelUI/DesParser/ParseFrame.h

33 lines
879 B
C
Raw Normal View History

2022-11-06 00:37:50 +00:00
#pragma once
#include <QString>
#include <QList>
#include "SyntaxBase.h"
2022-11-06 11:40:11 +00:00
namespace Syntax
2022-11-06 00:37:50 +00:00
{
/**
* .
*/
class ParseFrame
{
public:
explicit ParseFrame();
virtual ~ParseFrame() = default;
2022-11-06 11:40:11 +00:00
QList<Parse::Result::DesNode*> analysis(Parse::Result::DocCore *doc, const QString &path);
2022-11-06 00:37:50 +00:00
protected:
2022-11-06 11:40:11 +00:00
void appendTokensDefine(QList<Lex::LexDef> seqs, const QString &unknown_token);
void appendParser(Syntax::SyntaxParser* u);
2022-11-06 00:37:50 +00:00
private:
QString unknown_token;
2022-11-06 11:40:11 +00:00
QList<Lex::LexDef> token_seqs;
QList<SyntaxParser*> cascade_parsers;
2022-11-06 00:37:50 +00:00
2022-11-06 11:40:11 +00:00
ParseResult ParseFrame::inner_parse(QList<Lex::LexResult> &lex_seqence,
QList<Syntax::SyntaxParser*> parsers,
QList<Parse::Result::DesNode*> &nodes_out);
2022-11-06 00:37:50 +00:00
};
}