This commit is contained in:
codeboss 2025-02-02 22:06:49 +08:00
parent fea231dec8
commit 823f8d08ae
1 changed files with 34 additions and 33 deletions

View File

@ -2,8 +2,7 @@
#include "ast_gen.h" #include "ast_gen.h"
namespace example_novel namespace example_novel {
{
enum class NovelNode { enum class NovelNode {
GlobalElement = 0, GlobalElement = 0,
TextSection = 1, TextSection = 1,
@ -184,6 +183,7 @@ namespace lib_syntax {
virtual std::tuple<IBasicRule::MatchResult, std::shared_ptr<const lib_words::IWordBase>> virtual std::tuple<IBasicRule::MatchResult, std::shared_ptr<const lib_words::IWordBase>>
parse(std::shared_ptr<IContext> rt_inst, std::shared_ptr<const lib_words::IWordBase> head) const override { parse(std::shared_ptr<IContext> rt_inst, std::shared_ptr<const lib_words::IWordBase> head) const override {
std::shared_ptr<ast_basic::IExprInst> elm_ast = this->newEmptyInstance(); std::shared_ptr<ast_basic::IExprInst> elm_ast = this->newEmptyInstance();
auto text_present = this->token_present(); auto text_present = this->token_present();
@ -199,7 +199,8 @@ namespace lib_syntax {
rt_inst->popExprInst(); rt_inst->popExprInst();
rt_inst->popExprRule(); rt_inst->popExprRule();
break; break;
case IBasicRule::MatchResult::Success: { case IBasicRule::MatchResult::Success:
{
if (!std::dynamic_pointer_cast<example_novel::Document>(elm_ast)) { if (!std::dynamic_pointer_cast<example_novel::Document>(elm_ast)) {
auto start_pos = tokens_decl.first()->position(); auto start_pos = tokens_decl.first()->position();
rt_inst->clearErrors(rt_inst->currentFile(), start_pos); rt_inst->clearErrors(rt_inst->currentFile(), start_pos);