[英]Parsing c++ function headers from a file using GNU toolchain
我需要解析SWIG使用的.i文件中的函數頭,其中包含函數頭旁邊的各種垃圾。 (最終輸出將是函數聲明列表)
對我來說最好的選擇是使用GNU工具鏈(GCC,Binutils等)這樣做,但我可能會錯過一個簡單的方法來使用SWIG。 如果我請告訴我!
謝謝 :]
編輯:我也不知道如何使用GCC工具鏈,如果你有一個想法它會很棒。
我們的DMS軟件再造工具包提供通用程序解析,分析和轉換功能。 它有各種語言的前端,包括C ++。
它已被用於分析和轉換非常復雜的C ++程序及其頭文件。
在“解析函數頭”之后,您不清楚將要執行的操作; 通常人們想要提取一些信息或制作另一件神器。 DMS及其C ++前端可以進行解析; 您可以配置DMS來執行自定義操作。
實際上,這通常不是下午的練習; DMS是一個復雜的野獸,因為它必須處理復雜的野獸,如C ++。 而且我希望你能為任何可以處理C ++的工具面對同樣的復雜性。 GCC工具鏈可以清楚地處理C ++,所以你可以用它來做(在相同的復雜程度)但GCC被設計成一個編譯器,恕我直言你會覺得它是一個讓它做你想做的事情的斗爭。
您的“輸出函數聲明”目標尚不清楚。 你只想要功能名稱? 你想要一個功能簽名? 您想要函數所依賴的所有類型聲明嗎? 您想要函數所依賴的所有類型聲明,如果它們尚未存在於您打算使用的現有包含文件中?
從作為C頭文件的垃圾中提取函數的最佳方法是替換掉構成最臭的垃圾:宏。 你可以這樣做:
cpp - The C Preprocessor
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.