簡體   English   中英

如何讓野牛返回所有語法錯誤?

[英]How can I make bison return all the syntax errors?

我試圖讓野牛返回給定測試文件中的所有語法錯誤。 但是問題是解析器在遇到語法錯誤時就會停止並報告它有沒有辦法直接報告所有語法錯誤?

為了在語法錯誤后繼續解析,您需要在語法中添加錯誤恢復規則。 了解錯誤恢復的工作原理確實需要了解 bison 的 shift/reduce 解析器的工作原理。 野牛手冊有一個關於錯誤恢復的合理部分,您應該從那里開始。

有了良好的錯誤恢復規則,解析器可以在語法錯誤后繼續,並(可能)找到更多的語法錯誤。 您確實需要注意錯誤恢復后yyparse的返回值——如果錯誤恢復“成功”並且能夠繼續解析,並且沒有進一步的錯誤,yyparse 將返回 0(成功)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM