{"id":17537676,"url":"https://github.com/zenhack/c-ast","last_synced_at":"2026-01-07T16:40:05.778Z","repository":{"id":21960985,"uuid":"25285655","full_name":"zenhack/c-ast","owner":"zenhack","description":"GNU Guile library for generating/outputing ANSI C ASTs.","archived":false,"fork":false,"pushed_at":"2014-12-05T02:10:34.000Z","size":232,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-03T13:45:06.973Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scheme","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zenhack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-16T03:57:54.000Z","updated_at":"2022-02-14T12:24:28.000Z","dependencies_parsed_at":"2022-08-20T02:51:24.281Z","dependency_job_id":null,"html_url":"https://github.com/zenhack/c-ast","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Fc-ast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Fc-ast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Fc-ast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Fc-ast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zenhack","download_url":"https://codeload.github.com/zenhack/c-ast/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246135739,"owners_count":20729056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-10-20T20:42:26.217Z","updated_at":"2026-01-07T16:40:05.727Z","avatar_url":"https://github.com/zenhack.png","language":"Scheme","readme":"C-Ast is a GNU Guile library for generating C code. There are some\nexamples in the example directory, but briefly, it lets you turn\ns-expresions like:\n\n    (for ((= i 0) (\u003c i limit) (+= i 1))\n        (call printf \"i = %d\\n\" i))\n\nInto C source code:\n\n    for (i = 0; i \u003c limit; i += 1) {\n        printf(\"i = %d\\n\", i);\n    }\n\n...which can then be fed through a C compiler.\n\nThis is interesting because it allows use of scheme to easily manipulate\nC programs -- many the same benefits of a proper lisp-style macro system\ncan be used to write low-level code.\n\nThe intention is for this to be a building block for building other\ntools.\n\nC-Ast is still in a *very* early stage of development -- you can write\nhello world, but it's missing a lot of important features and some\ndocumentation, and probably isn't packaged the way a guile library\nshould be -- I'm still very new to the language.\n\n# Requirements\n\nTo run the test suite, you will need an implementation of srfi-64. The\none I use is: \u003chttps://gitorious.org/srfi-64-port\u003e.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenhack%2Fc-ast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzenhack%2Fc-ast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenhack%2Fc-ast/lists"}