簡體   English   中英

如何解析C頭文件?

[英]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生成器”。

https://github.com/eliben/pycparser

看一下用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM