Skip to main content

Parse C header file and output JSON ast + types

Project description

cheader2json

Take one or more c header files as input, and do a JSON dump of a portion of the libclang AST for easier processing by other tools. This code was originally from the libclang based Python/Matlab binding generator for HELICS, but has been split out to make it more reusable. Functionality is also provided to do a diff of two JSON files, that can be used to get a quick overview of what has changed between releases.

Installation

pip install cheader2json

Recommended: Install in a Python virtual environment.

Usage

Convert a c header file to a JSON file with a subset of the AST (excluding function bodies) and a JSON file with type information:

cheader2json convert <HEADER_FILE>

Dump a pair of JSON files named example.ast.json and example.types.json for multiple header files, and ignore DO_SOMETHING macro (the ignore macro option can be given more than once, or IGNORED_MACROS environment variable can be set to a space separated list of macro names to ignore):

cheader2json convert <HEADER_FILE1> <HEADER_FILE2> --prefix=example --ignore-macro=DO_SOMETHING

Do a diff of two dumped AST JSON files:

cheader2json diff <JSON_AST_FILE_OLD> <JSON_AST_FILE_NEW>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cheader2json-0.0.0rc1.tar.gz (12.5 kB view hashes)

Uploaded Source

Built Distribution

cheader2json-0.0.0rc1-py3-none-any.whl (8.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page