gpt4 book ai didi

parsing - Bison语法错误处理

转载 作者:行者123 更新时间:2023-12-03 08:10:29 26 4
gpt4 key购买 nike

我最近开始研究野牛解析器,
以下是解析器文件的一部分,该文件将在循环中执行。

      Program:  Start statement Stop
{
...
...
...
}

如果发生语法错误,如何跳过当前案例的执行
在声明部分?并再次使用循环继续执行?
    Program:  Start statement Stop
{

I want to skip execution of this part ..if any syntax error occurs in
any of the rule section ( Start, statement and Stop)
}

我尝试添加如下所示的错误规则,但无法正常工作。
        Program:  Start statement Stop
{
....
...
...
}

| Program error Stop (// skip until Stop)
{
yyerrok;
}

在这种情况下处理语法错误的正确方法是什么?并继续解析?

这里需要帮助。

最佳答案

我不确定我是否真的了解您的需求,但是类似以下的内容应该可以工作:

test_cases : %empty
| test_cases test_case
test_case : START statements STOP
| error STOP { yyerrok; }

那不是很复杂。特别是,如果 STARTSTOP之间存在 token ,并且对丢失的 STOP token 的处理欠佳,将产生不幸的后果。 (理想的解决方案是也重新同步 START token ,但随后您必须安排扫描仪再次发送 START token ,这很丑陋。)

关于parsing - Bison语法错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51739556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com