2011-07-07 88 views
10

其他人遇到以下問題,但我無法找到任何已報告解決方案的人..讓Flex找到EOF(文件末尾)。我需要Flex來查找EOF並返回一個表明它已經找到它的標記,這樣它可以告訴Yacc/Bison它已經到達輸入源文件的末尾並且可以報告成功的解析。Lex/Flex - 掃描EOF字符

請注意,this question是不一樣的,因爲這是關於Lex/Flex。

任何幫助都會很棒。謝謝。

+1

這裏有點問題。你通常不需要這樣做。只要在你的語法中寫入一個目標符號,這一切都會被照顧到。 – EJP

+0

@EJP:你能舉個小例子嗎?我是Flex/Bison的新手。如何實現這個作爲一個簡單的語法規則? Thankyou – Andry

+0

@EJP,當從真正的鍵盤輸入時,Ctrl-Z被傳遞給程序,導致語法錯誤。我無法使用/ x1a,但使用<>作品。 – user34660

回答

21

Flex有 <<EOF>> 只匹配文件結束的模式。 可能你可以返回一些表示文件結束的令牌給解析器 ,如下所示。

<<EOF>>  return END_OF_FILE;