Alex Rivera | Logout

How to parse a C header file?

Asked 2009-12-23T08:36:07.163
23

Does anyone know a spiffy way to use C header files in Python? For example I have a C program that includes a global variable:

typedef struct ImageInfo
{
    uint8_t revisionMajor;
    uint8_t revisionMinor;
    uint16_t checksum;    

} ImageInfo;

ImageInfo gImageInfo;   /* Placed at a specific address by the linker */

I would like to be able to take the binary generated by the C compiler/linker and parse this structure (and possibly modify it) with a Python script.

Edit
Report

2 Answers

17

Have a look at this C++ header parser written in Python. You can also write your own parser using any of these tools:

answered 2009-12-23T08:47:35.063
7

For the same purpose I'm considering pyclibrary, it is not a complete C parser but it is aimed at parsing C header files, so it is much easier to use than pycparser or some gccxml-based parser: although weakly documented, just try CParser.py testHeader.h and you'll see how it works.

Depends on pyparsing and, as far as I understand, it is pure python.

answered 2012-03-12T13:56:54.430

Your Answer