2012-05-10 29 views
2

所以我寫了所有我想要的語法,一切都很順利。 遇到語法時,我絕對不會採取任何行動。如何使用yyerror告訴更多關於解析錯誤的信息

這是我的yyerror功能

int yyerror (const char *s) 
{              
    printf("parser error %s \n ",s); 
    return 0; 
} 

井的定義,我讀的地方,我需要添加%的誤差,詳細,如果我想獲得我的語法分析器中遇到的錯誤的詳細信息;當我嘗試添加它,我得到這個錯誤消息

error: unrecognized: %error_verbose

考慮,我使用Flex,野牛,並已與VS2010連接他們
編輯帳戶:即使錯誤error_verbose提到,我確信我傳遞錯誤的詳細信息,用短劃線代替下劃線。

回答

0

奇怪的是,當我嘗試了Linux上最新的野牛版本的%error-verbose時,它工作得很好,但沒有適用於Windows版本。
不知道這是我在Windows上使用的版本中的錯誤,還是僅僅是不支持的功能。

+0

也許只是在Windows上有一個古老版本的野牛。命令行上的「bison --version」會告訴你它是什麼版本。 –

1

它是%error-verbose,帶有短劃線,但是您的錯誤消息會顯示下劃線。

+0

儘管我已經添加了它,但確實已經添加了%error-verbose 野牛提到它遇到了%error_verbose ... – Fingolfin

相關問題