2011-08-16 61 views
2

AFAIK LR語法分析器全部由基於表格的YACC工具書寫。gcc是基於表的編譯器嗎?

雖然LL語法分析器可以通過遞歸自頂向下的後代算法手動寫入。

這是gcc的情況,還是使用完全不同的解決方案?

回答

1

對於C gcc使用bison,這是一個yacc重寫。它似乎今天有一個遞歸下降解析器。

+0

谷歌似乎沒有顯示gcc c前端的遞歸下降解析器,你有什麼參考? –

0

對於gcc中的前端實現沒有具體的策略,前端作者選擇他們認爲最適合他們正在實現的語言的方法。 C++前端使用手寫的遞歸下降解析器。

+0

'C++前端使用手寫的遞歸下降解析器',你能提供一個鏈接到相關的源文章嗎? – asker

+0

我實際上在gcc郵件列表上閱讀它,但它也在[Wikipedia for gcc](http://en.wikipedia.org/wiki/GNU_Compiler_Collection)中提及。 –