{"id":24987694,"url":"https://github.com/soniex2/pp","last_synced_at":"2026-01-27T02:34:15.049Z","repository":{"id":26255419,"uuid":"29702588","full_name":"SoniEx2/PP","owner":"SoniEx2","description":"Pretty Parser / Parser Processor. A C program that lets you parse while you parse.","archived":false,"fork":false,"pushed_at":"2015-01-22T22:05:15.000Z","size":172,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-05T01:41:04.710Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SoniEx2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-22T22:00:57.000Z","updated_at":"2015-01-22T22:00:57.000Z","dependencies_parsed_at":"2022-08-26T17:23:04.178Z","dependency_job_id":null,"html_url":"https://github.com/SoniEx2/PP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SoniEx2/PP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoniEx2%2FPP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoniEx2%2FPP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoniEx2%2FPP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoniEx2%2FPP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SoniEx2","download_url":"https://codeload.github.com/SoniEx2/PP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoniEx2%2FPP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28796977,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T01:07:07.743Z","status":"online","status_checked_at":"2026-01-27T02:00:07.755Z","response_time":168,"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":"2025-02-04T11:48:34.462Z","updated_at":"2026-01-27T02:34:15.032Z","avatar_url":"https://github.com/SoniEx2.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# PP\nPretty Parser / Parser Processor. A C program that lets you parse while you parse.\n\nThe basic idea is that you can write macros just like a macro preprocessor, but you can also write parsers, that is, you can modify the syntax rules while you macro. This means you can write an x86 compiler with it, but not just that, you can also write a Forth compiler using the x86 compiler, or a C89 compiler with the Forth compiler with the x86 compiler!\n\nObviously it isn't able to do _everything_, and many times it'll probably get stuck in an infinite loop, but that can happen with normal parsers too so nothing wrong there. :P\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoniex2%2Fpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoniex2%2Fpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoniex2%2Fpp/lists"}