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.0rc2.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

cheader2json-0.0.0rc2-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file cheader2json-0.0.0rc2.tar.gz.

File metadata

  • Download URL: cheader2json-0.0.0rc2.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for cheader2json-0.0.0rc2.tar.gz
Algorithm Hash digest
SHA256 5e8f29780013bde315960f6c0cde23fc72b3a0e66eaaed9a0e24f0763336c592
MD5 f78dd0f367365dce98336a439385f536
BLAKE2b-256 82af7b478e62a455ac34238bd11cd10db69c1c263381bb196563eab46b89e2e6

See more details on using hashes here.

File details

Details for the file cheader2json-0.0.0rc2-py3-none-any.whl.

File metadata

File hashes

Hashes for cheader2json-0.0.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 657e02d9a50846a2773ae2a6b2ad6d4c7fccef27255e6a98a46eaa1b9180e3c8
MD5 9bf17c6d2b0947844d7ef779689ac596
BLAKE2b-256 f53a40fb4f20d5d5e660796f7fa5f27c03bb869eba7516c180c91338ebe6105a

See more details on using hashes here.

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