詞法/語法分析框架 chrysanthemum
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