{"id":28778647,"url":"https://github.com/thyeem/s","last_synced_at":"2025-07-23T18:05:44.833Z","repository":{"id":82386675,"uuid":"512068764","full_name":"thyeem/s","owner":"thyeem","description":"A generalized parser combinator super-readable","archived":false,"fork":false,"pushed_at":"2024-05-24T01:02:45.000Z","size":4121,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-17T16:51:57.956Z","etag":null,"topics":["haskell-library","parser","parser-combinators"],"latest_commit_sha":null,"homepage":"","language":"Haskell","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/thyeem.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2022-07-09T01:48:54.000Z","updated_at":"2025-01-30T18:48:45.000Z","dependencies_parsed_at":"2024-05-07T23:30:12.531Z","dependency_job_id":"8bdcecf8-c357-49f9-8318-8412201a073f","html_url":"https://github.com/thyeem/s","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thyeem/s","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thyeem%2Fs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thyeem%2Fs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thyeem%2Fs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thyeem%2Fs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thyeem","download_url":"https://codeload.github.com/thyeem/s/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thyeem%2Fs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266726627,"owners_count":23974927,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["haskell-library","parser","parser-combinators"],"created_at":"2025-06-17T16:42:30.115Z","updated_at":"2025-07-23T18:05:44.826Z","avatar_url":"https://github.com/thyeem.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# s\n\n`s` is a generalized parser combinator *extremely easy to use*. The letter `s` symbolizes _simplicity_.\n\nThis project is heavily inspired by [`Parsec`](https://hackage.haskell.org/package/parsec), but has a completely **different goal**.   \n`s` focuses more on the essentials so that it helps _usability_ and _extensibility_.\n\n### Build\n```bash\n# not uploaded to the hackage yet\n$ git clone https://github.com/thyeem/s.git    \n$ stack build\n\n# doctest\n$ stack test\n\n# generate/open doc\n$ stack haddock --open s\n```\n\n### Examples\n\n#### sLISP \nSee [`sLISP`](https://github.com/thyeem/slisp), which is a pure-functional `LISP` implementation in `Haskell`.   \n`s` is used in the parsing part of _S-expression_ in `sLISP`.\n\n#### CSV parser\n_See `src/Text/S/Example/CSV.hs`_\n\n#### JSON parser\n_See `src/Text/S/Example/JSON.hs`_\n\n#### Generalized calculator\n_See `src/Text/S/Example/Calc.hs`_\n\n##### calculator REPL\n```haskell\n\u003e\u003e\u003e import Text.S.Example.Calc (calc)\n\u003e\u003e\u003e calc\nChoose an Expr Calculators [infixl, infixr, prefix, postfix]: \n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthyeem%2Fs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthyeem%2Fs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthyeem%2Fs/lists"}