cheader2json


Namecheader2json JSON
Version 0.0.0rc2 PyPI version JSON
download
home_pageNone
SummaryParse C header file and output JSON ast + types
upload_time2024-10-17 21:26:46
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseBSD License
keywords libclang clang c header parser json conversion
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```shell
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:

```shell
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):

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

Do a diff of two dumped AST JSON files:

```shell
cheader2json diff <JSON_AST_FILE_OLD> <JSON_AST_FILE_NEW>
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cheader2json",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Ryan Mast <mast9@llnl.gov>",
    "keywords": "libclang, clang, c, header, parser, json, conversion",
    "author": null,
    "author_email": "Ryan Mast <mast9@llnl.gov>, Andy Fisher <andrew.fisher@pnnl.gov>",
    "download_url": "https://files.pythonhosted.org/packages/82/af/7b478e62a455ac34238bd11cd10db69c1c263381bb196563eab46b89e2e6/cheader2json-0.0.0rc2.tar.gz",
    "platform": null,
    "description": "# cheader2json\n\nTake 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\ntools. This code was originally from the libclang based Python/Matlab binding generator for HELICS, but has been split out\nto make it more reusable. Functionality is also provided to do a diff of two JSON files, that can be used to get a quick\noverview of what has changed between releases.\n\n## Installation\n\n```shell\npip install cheader2json\n```\n\nRecommended: Install in a Python virtual environment.\n\n## Usage\n\nConvert a c header file to a JSON file with a subset of the AST (excluding function bodies) and a JSON file with type information:\n\n```shell\ncheader2json convert <HEADER_FILE>\n```\n\nDump a pair of JSON files named `example.ast.json` and `example.types.json` for multiple header files, and ignore `DO_SOMETHING` macro\n(the ignore macro option can be given more than once, or IGNORED_MACROS environment variable can be set to a space separated list of\nmacro names to ignore):\n\n```shell\ncheader2json convert <HEADER_FILE1> <HEADER_FILE2> --prefix=example --ignore-macro=DO_SOMETHING\n```\n\nDo a diff of two dumped AST JSON files:\n\n```shell\ncheader2json diff <JSON_AST_FILE_OLD> <JSON_AST_FILE_NEW>\n```\n",
    "bugtrack_url": null,
    "license": "BSD License",
    "summary": "Parse C header file and output JSON ast + types",
    "version": "0.0.0rc2",
    "project_urls": {
        "Homepage": "https://github.com/GMLC-TDC/cheader2json",
        "Issue Tracker": "https://github.com/GMLC-TDC/cheader2json/issues",
        "Source Code": "https://github.com/GMLC-TDC/cheader2json"
    },
    "split_keywords": [
        "libclang",
        " clang",
        " c",
        " header",
        " parser",
        " json",
        " conversion"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f53a40fb4f20d5d5e660796f7fa5f27c03bb869eba7516c180c91338ebe6105a",
                "md5": "9bf17c6d2b0947844d7ef779689ac596",
                "sha256": "657e02d9a50846a2773ae2a6b2ad6d4c7fccef27255e6a98a46eaa1b9180e3c8"
            },
            "downloads": -1,
            "filename": "cheader2json-0.0.0rc2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9bf17c6d2b0947844d7ef779689ac596",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 9061,
            "upload_time": "2024-10-17T21:26:44",
            "upload_time_iso_8601": "2024-10-17T21:26:44.949409Z",
            "url": "https://files.pythonhosted.org/packages/f5/3a/40fb4f20d5d5e660796f7fa5f27c03bb869eba7516c180c91338ebe6105a/cheader2json-0.0.0rc2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "82af7b478e62a455ac34238bd11cd10db69c1c263381bb196563eab46b89e2e6",
                "md5": "f78dd0f367365dce98336a439385f536",
                "sha256": "5e8f29780013bde315960f6c0cde23fc72b3a0e66eaaed9a0e24f0763336c592"
            },
            "downloads": -1,
            "filename": "cheader2json-0.0.0rc2.tar.gz",
            "has_sig": false,
            "md5_digest": "f78dd0f367365dce98336a439385f536",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 13275,
            "upload_time": "2024-10-17T21:26:46",
            "upload_time_iso_8601": "2024-10-17T21:26:46.491042Z",
            "url": "https://files.pythonhosted.org/packages/82/af/7b478e62a455ac34238bd11cd10db69c1c263381bb196563eab46b89e2e6/cheader2json-0.0.0rc2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-17 21:26:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "GMLC-TDC",
    "github_project": "cheader2json",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cheader2json"
}
        
Elapsed time: 0.37889s