{"id":20325650,"url":"https://github.com/tessarin/cdecl","last_synced_at":"2026-05-11T10:31:22.456Z","repository":{"id":259419596,"uuid":"105447020","full_name":"tessarin/cdecl","owner":"tessarin","description":"Translate any C declaration to plain English. Written using parsing algorithm by Peter van der Linden.","archived":false,"fork":false,"pushed_at":"2017-10-02T01:59:46.000Z","size":10,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-04T10:33:58.086Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tessarin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-01T14:12:58.000Z","updated_at":"2024-09-26T20:48:01.000Z","dependencies_parsed_at":"2024-10-25T12:36:59.308Z","dependency_job_id":null,"html_url":"https://github.com/tessarin/cdecl","commit_stats":null,"previous_names":["tessarin/cdecl"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tessarin/cdecl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tessarin%2Fcdecl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tessarin%2Fcdecl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tessarin%2Fcdecl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tessarin%2Fcdecl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tessarin","download_url":"https://codeload.github.com/tessarin/cdecl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tessarin%2Fcdecl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32890635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T19:41:02.761Z","updated_at":"2026-05-11T10:31:22.439Z","avatar_url":"https://github.com/tessarin.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cdecl - C Declarations Translator\n\n`cdecl` translates C declarations to plain English.\n\nThroughout the history of the C language, this program has been written many\ntimes in different versions with varying levels of complexity and features.\nThis one in particular uses an algorithm developed by Peter van der Linden,\npresented in his book *Expert C Programming*\u003csup\u003e[1]\u003c/sup\u003e. Writing the\nprogram is given as an exercise in his book.\n\n## Installing\n\n#### On macOS with [Homebrew][brw]\n\n    $ brew install tessarin/core/cdecl\n\n#### Manual Installation\n\nRun `make` to compile the program and generate the manual page. Then, move the\nfiles to your desired and appropriate locations on your system:\n\n    $ make\n    $ mv cdecl ~/bin\n    $ mv cdecl.1 ~/man/man1\n\n## Usage\n\nCall `cdecl` passing the declaration or write it directly in your terminal.\nThe program will process the declaration and exit at the end of the first\nline.\n\n    $ cdecl\n\nFor more information including the types and features recognized by the\nprogram check the [manual][man].\n\n## Examples\n\n    $ cdecl\n    long * const c\n    c is readonly pointer to long\n\n    $ cdecl\n    int *(*fn())()\n    fn is function returning pointer to function returning pointer to int\n\n    $ cdecl\n    short *(*(* const x)[3])()\n    x is readonly pointer to array with size 3 of pointer to function returning pointer to short\n\n---\n\n\u003csup\u003e[1]\u003c/sup\u003e **Expert C Programming - Deep C Secrets**, 1st edition  \n  Peter van der Linden  \n  © 1994 Sun Microsystems, Inc.  \n  ISBN 978-0-131-77429-2\n\n [brw]: https://brew.sh\n [man]: cdecl.pod\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftessarin%2Fcdecl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftessarin%2Fcdecl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftessarin%2Fcdecl/lists"}