2013-12-10 34 views
0

我已經用Flex構建了一個詞法分析器。有一個主要問題,但:Flex的默認生成此錯誤方法:如何更改Flex詞法分析器的錯誤行爲?

void yyFlexLexer::LexerError(yyconst char msg[]) 
{ 
    std::cerr << msg << std::endl; 
    exit(YY_EXIT_FAILURE); 
} 

這意味着,在每一個語法錯誤,我的應用程序只是退出。當然,這不是我想要的,因爲即使輸入錯誤,我也需要一遍又一遍地調用詞法分析器。

有沒有辦法改變Flex的行爲呢?

回答

1

解決了!我只是在我的.l文件的頂部添加了一個簡單的「#define YY_FATAL_ERROR」。 這將確保Flex不會調用LexerError方法,因此應用程序不會退出。

相關問題