{"id":20077183,"url":"https://github.com/boostorg/parser","last_synced_at":"2025-04-05T03:03:48.859Z","repository":{"id":49037100,"uuid":"291169456","full_name":"boostorg/parser","owner":"boostorg","description":"A C++ parser combinator library.","archived":false,"fork":false,"pushed_at":"2025-03-15T16:57:49.000Z","size":12332,"stargazers_count":126,"open_issues_count":9,"forks_count":17,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2025-03-29T02:02:59.135Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boostorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_1_0.txt","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":"2020-08-29T00:08:02.000Z","updated_at":"2025-03-20T16:13:44.000Z","dependencies_parsed_at":"2023-12-02T05:37:23.511Z","dependency_job_id":"41952301-0dbd-4b85-bb46-af53d1ce8fec","html_url":"https://github.com/boostorg/parser","commit_stats":{"total_commits":1001,"total_committers":14,"mean_commits":71.5,"dds":0.09390609390609395,"last_synced_commit":"42c9d82419c420acdce57305477f785f1b31a31c"},"previous_names":["boostorg/parser"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fparser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fparser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fparser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fparser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boostorg","download_url":"https://codeload.github.com/boostorg/parser/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280262,"owners_count":20912967,"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-11-13T15:06:27.649Z","updated_at":"2025-04-05T03:03:47.250Z","avatar_url":"https://github.com/boostorg.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# parser\n\nThis is a parser combinator library for C++.  As a quick example of use, here\nis a complete program that parses one or more `double`s separated by commas,\nignoring whitespace:\n\n```c++\n#include \u003cboost/parser/parser.hpp\u003e\n\n#include \u003ciostream\u003e\n#include \u003cstring\u003e\n\n\nnamespace bp = boost::parser;\n\nint main()\n{\n    std::cout \u003c\u003c \"Enter a list of doubles, separated by commas.  No pressure. \";\n    std::string input;\n    std::getline(std::cin, input);\n\n    auto const result = bp::parse(\n        input, bp::double_ \u003e\u003e *(',' \u003e\u003e bp::double_), bp::ws);\n\n    if (result) {\n        std::cout \u003c\u003c \"Great! It looks like you entered:\\n\";\n        for (double x : *result) {\n            std::cout \u003c\u003c x \u003c\u003c \"\\n\";\n        }\n    } else {\n        std::cout\n            \u003c\u003c \"Good job!  Please proceed to the recovery annex for cake.\\n\";\n    }\n}\n```\n\nThis library is header-only, and has no Boost dependencies by default.\n\nFeatures:\n\n- Parsers that parse a variety of things.\n- Combining operations that make complex parsers out of simpler ones.\n- Multiple ways of getting data out of the parse, including via callbacks.\n- Sentinel- and range-friendly.\n- Very Unicode friendliness.\n- Excellent error reporting, via diagnostics like those produced by GCC and Clang.\n- Trace support for debugging your parsers.\n- Clever hacks to make compile time errors easier to deal with.  (These are totally optional.)\n\nThis library first appeared in Boost 1.87.0\n\nMaster status:\n\n[![Ubuntu](https://github.com/tzlaine/parser/actions/workflows/ubuntu.yml/badge.svg?branch=master)](https://github.com/tzlaine/parser/actions/workflows/ubuntu.yml)\n\n[![Fedora](https://github.com/tzlaine/parser/actions/workflows/fedora.yml/badge.svg?branch=master)](https://github.com/tzlaine/parser/actions/workflows/fedora.yml)\n\n[![Windows MSVC](https://github.com/tzlaine/parser/actions/workflows/windows.yml/badge.svg?branch=master)](https://github.com/tzlaine/parser/actions/workflows/windows.yml)\n\n[![macos-13 - Clang 14](https://github.com/tzlaine/parser/actions/workflows/macos-13.yml/badge.svg?branch=master)](https://github.com/tzlaine/parser/actions/workflows/macos-13.yml)\n\nDevelop status:\n\n[![Ubuntu](https://github.com/tzlaine/parser/actions/workflows/ubuntu.yml/badge.svg?branch=develop)](https://github.com/tzlaine/parser/actions/workflows/ubuntu.yml)\n\n[![Fedora](https://github.com/tzlaine/parser/actions/workflows/fedora.yml/badge.svg?branch=develop)](https://github.com/tzlaine/parser/actions/workflows/fedora.yml)\n\n[![Windows MSVC](https://github.com/tzlaine/parser/actions/workflows/windows.yml/badge.svg?branch=develop)](https://github.com/tzlaine/parser/actions/workflows/windows.yml)\n\n[![macos-13 - Clang 14](https://github.com/tzlaine/parser/actions/workflows/macos-13.yml/badge.svg?branch=develop)](https://github.com/tzlaine/parser/actions/workflows/macos-13.yml)\n\n[![License](https://img.shields.io/badge/license-boost-brightgreen.svg)](LICENSE_1_0.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostorg%2Fparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboostorg%2Fparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostorg%2Fparser/lists"}