2009-11-03 70 views
3

我已經看過下面的工具軟件C++代碼:產生BNF語法

ANTLR似乎是最直接的,但其文檔缺乏。 Ragel看起來也是可能的,但我沒有看到一種簡單的方法將BNF轉換成它的語法。

還有哪些其他工具可以使用BNF輸入並生成相應的,Unicode友好的跨平臺獨立C++解析器?

非常感謝所有的建議。

編輯:將Objective-C要求更改爲C++。

+0

您還應該在選擇工具時考慮時間表現。 – sand 2010-01-25 04:24:49

+0

你應該看看:http://stackoverflow.com/questions/1961604/how-much-time-would-it-take-to-write-ac-compiler-using-flex-yacc/ – kyoryu 2010-01-25 07:08:05

回答

5

嘗試boost.spirit 2

助推精神用戶列表非常活躍,作者的答案很快。

3

TDParseKit! (最具體地說,用BNF語法生成Objective-C語法分析器時的this page

+1

從BNF轉換到格式解析器生成器所需的格式通常是一項微不足道的任務,甚至是手動的。 – 2009-11-03 17:58:04

+0

夠公平的。彼得,我會再給拉格爾看。 – 2009-11-03 18:47:17

+0

看起來與操作系統相關;該工具應該是跨平臺的。 – 2009-12-04 01:39:05

1

你看過QLALR?這是來自QtDF的創意週五項目。我沒有親自嘗試過,但巨魔似乎對解決問題的態度很實際,所以我想這也是。

+0

看起來它對Qt有依賴性。 – 2010-01-25 17:06:58

1

你可以試試GOLD Parser!這是解析和生成的好工具。使用簡單的用戶界面,你需要做的就是提供一個有效的語法文件,併爲你的輸出代碼選擇你喜歡的編程語言。