0
我正在編譯器實現上工作並希望檢查是否已達到文件末尾?語法實現中文件描述符的結尾
我知道這可以在lex文件中使用yywrap()函數來完成,但需求是我們希望如果EOF明確定義爲十六進制值0x1a,那麼我們如何引用它。
實施例:
主() { 的printf( 「檢查EOF標記\ n」); '0x1a'< - 實際的EOF標記。
我想上述不是一個語法錯誤,但要報告爲錯誤 不平衡的括號,或者是錯誤地定義。
以上可以完成嗎?我的要求是在解析器中使用EOF標記,但不幸的是,直到日期我還沒有做到這一點: - ((其餘的工作將很容易完成,我只需要給出一個規則如:
print : print_stmt '(' stmt_valid ')' colon '\n'
{
OK do the rest
}
| print_stmt '(' stmt_valid ')' colon end_indicator
{
print error message and close application.
}
你的配置是什麼?我知道你使用lex掃描和yacc解析。爲什麼不讓lex讀取EOF字符並返回yacc一個專門的EOF標記? – 2008-12-08 06:37:23