2014-12-04 53 views
2

我在C++實現的反射引擎,我可以構建類型,並將它們添加到反射數據庫,像這樣:生成的類型列表從C++頭文件

TypeInfo* spark_math_Vector2_type = new TypeInfo(); 
spark_math_Vector2_type->setName("Vector2"); 
spark_math_Vector2_type->setFullName("::spark::math::Vector2"); 
spark_math_Vector2_type->setHash(typeid(spark::math::Vector2).hash_code()); 
spark_math_Vector2_type->setSize(sizeof(spark::math::Vector2)); 
Reflection::getInstance().registerType(spark_math_Vector2_type); 

不過,我現在想自動化生成類型數據庫。爲此,我需要一種獲取C++頭文件中創建的所有類型以及類型的構造函數/方法/字段的方法。

我發現gccxml,但它有各種缺點(太慢等)。有沒有其他可用的工具/框架?或者也許有更好的方法來做到這一點? (我真的不希望有寫一個解析器...)

+1

太慢...?怎麼會這樣?是的,你是對的,你不想爲C++編寫解析器。 – 2014-12-05 00:01:21

回答

0

基本上你的選擇是:

  • 愛迪生設計集團前端
  • GCC(GCCXML即源於此)
  • (我們)DMS軟件再造工具包與它的C++ 14的前端

EDG是商業,但我想免費爲研究目的秒。海灣合作委員會希望成爲一個編譯器,並會傾向於與你試圖將其用於其他目的。 Clang似乎很適合這樣的任務。我們認爲DMS(也是商業)爲此設計得很好。