詞法/語法分析框架 chrysanthemum

openkk 12年前發布 | 66K 次閱讀 語法/詞法分析器 C/C++

chrysanthemum (中文名“菊花”)是一個由C++寫成的小巧靈活、高度可伸縮、模塊化、高性能的詞法/語法分析框架。
chrysanthemum 是一個純模板庫,包含頭文件即可使用,且無任何第三方依賴。

chrysanthemum 不同于YACC和ANLTR等詞法/語法分析工具(根據文法文件生成解析器代碼),它是一個純模板庫,利用
C++的表達式模板,模板元編程等技術,使用一系列簡介、小巧、靈活的核心類,自動推導并構建出任意復雜的文本解析對象,
而且chrysanthemum 允許靈活的嵌入C++函數對象作為語義動作,因此具有很好的靈活性和伸縮性。

chrysanthemum 能夠極大的簡化語法分析器的編寫工作,使用戶可以在C++環境中“書寫”BNF范式從而
快速的構造出對應的詞法/文法分析器。同時chrysanthemum盡最大努力保證分析器的性能,力求達到
近似于純手工代碼的效率。

chrysanthemum 大量使用使用表達式模板技術、模板元編程、C++0X新標準 和 函數式編程思想。


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
chrysanthemum 完全以C++0X新標準寫成,因此只能用于對C++0X支持比較好的編譯器中,MSVC系列因沒有提供可變模板參數的支持,////
無法使用。目前僅在GCC4.5和GCC4.6環境下測試通過,WINDOWS環境可以選擇使用MINGW。                                     ////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////
注意:編譯時請加上 -std=c++0x 參數以打開C++0X支持//////////////
////////////////////////////////////////////////////////////////

chrysanthemum 很大程度上受到 Joel de Guzman 所編寫的boost.spirit庫的啟發,但是力求更靈活,更高效,且更具收縮性。

本版本(V 0.2.1版)是chrysanthemum第一個正式對外發布的版本,必然存在許多不足和缺陷。如果您有好的建議或問題請發送至ioriiod0@gmail.com

項目主頁:http://www.baiduhome.net/lib/view/home/1325293970796

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!