cheader2json

Parse C header file and output JSON ast + types


Keywords
libclang, clang, c, header, parser, json, conversion
License
BSD-3-Clause
Install
pip install cheader2json==0.0.0rc1

Documentation

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>