[英]How to parse a C header file?
有誰知道在Python中使用C頭文件的巧妙方法? 例如,我有一個包含全局變量的C程序:
typedef struct ImageInfo
{
uint8_t revisionMajor;
uint8_t revisionMinor;
uint16_t checksum;
} ImageInfo;
ImageInfo gImageInfo; /* Placed at a specific address by the linker */
我希望能夠采用C編譯器/鏈接器生成的二進制文件,並使用Python腳本解析此結構(並可能對其進行修改)。
昨天在SO上提到過; 我還沒有機會進行更徹底的檢查,但是我的意思是。 pycparser
,“用Python編寫的C解析器和AST生成器”。
看一下用Python編寫的C ++標頭解析器 。 您還可以使用以下任何一種工具編寫自己的解析器:
看看pygccxml 。 我用它來構建我的C / C ++源代碼的內存圖,可以將其用作許多代碼生成任務的基礎。
PS:當我剛開始使用基於Python的代碼生成時,我實際上試圖自己編寫一個解析器:為自己省去麻煩,甚至不要去那里! (盡管看起來您已經被搞定了……)pygccxml是您想要的一切,以及更多:)
出於相同的目的,我正在考慮pyclibrary ,它不是一個完整的C解析器,但它旨在解析C頭文件,因此它比pycparser或某些基於gccxml的解析器更容易使用:盡管文檔薄弱,但是請嘗試CParser.py testHeader.h
,您將看到其工作原理。
取決於pyparsing,據我了解,它是純python。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.