2010-07-24 83 views
0

昨天我開始使用spirit。我必須爲小語言編寫解析器並形成中間數據結構。我遵循Pascal Parser示例Boost Repository。這個例子很好,因爲它支持簡單的調試。這個例子使用了Classic Spirit。從Boost Spirit Classic到Qi的翻譯

  • 我是否應該翻譯使用氣(至今我還沒有遇到任何關於氣的問題)?
  • 這樣的轉換有一個簡單的例子嗎?我現在主要使用經典::語法類,就像在這個例子中一樣。

回答

2

如果你開始一個新的項目,我絕對建議堅持Spirit.Qi。 Spirit.Classic只有在Spirit.Qi正在積極開發的情況下才處於維護模式。另外,Qi生成的解析器比舊的解析器要快得多。

從Spirit.Classic到Spirit.Qi的轉換並不簡單,因爲API已經改變。雖然有一些started documentation on this。但是,如果你從一個新項目開始,這無關緊要,因爲無論如何你都必須習慣使用新的庫。

所以我建議你嘗試閱讀introductory documentation,看看Spirit附帶的例子和測試,最重要的是試着理解Spirit如何處理解析器屬性。根據我的經驗,解析器屬性及其傳播規則是最難理解的概念,同時它們對於Spirit的做事方式至關重要,而且它們使Spirit更加強大和靈活。

+0

我已閱讀介紹文檔。現成的Pascal解析器的例子也非常有用,特別是調試模式。我通過修改Pascal解析器編寫了自己的解析器,通過命中和試用瞭解了傳播規則和解析器屬性。具體而言,我瞭解到替代運算符會採用成功並且不會回溯的第一個快捷方式。但問題是Pascal解析器使用Spirit.Classic。我想在Spirit.Qi中工作,但如果有類似於Qi的Pascal解析器的例子,它將非常有用。 – 2010-07-27 03:23:14

+0

第二次看,我認爲移植指南會非常有用:boost.org/doc/libs/1_43_0/libs/spirit/doc/html/...我將嘗試提供一個基於Qi的Pascal解析器示例。順便說一下,非常感謝你對Spirit的巨大貢獻。 – 2010-07-27 03:48:18

相關問題