{"id":17214453,"url":"https://github.com/suzannesoy/extensible-parser-specifications","last_synced_at":"2026-03-19T00:03:54.728Z","repository":{"id":62424153,"uuid":"66682233","full_name":"SuzanneSoy/extensible-parser-specifications","owner":"SuzanneSoy","description":"Like https://github.com/AlexKnauth/seq-no-order, but provides global constraints. AlexKnauth's implementation allows dotted \"rest\" pattern which we do not support.","archived":false,"fork":false,"pushed_at":"2021-04-04T15:33:43.000Z","size":85,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-19T00:02:31.345Z","etag":null,"topics":["racket-library"],"latest_commit_sha":null,"homepage":"http://docs.racket-lang.org/extensible-parser-specifications/","language":"Racket","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SuzanneSoy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-more.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-26T22:08:13.000Z","updated_at":"2023-07-25T14:03:37.000Z","dependencies_parsed_at":"2022-11-01T18:01:02.150Z","dependency_job_id":null,"html_url":"https://github.com/SuzanneSoy/extensible-parser-specifications","commit_stats":null,"previous_names":["jsmaniac/extensible-parser-specifications"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuzanneSoy%2Fextensible-parser-specifications","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuzanneSoy%2Fextensible-parser-specifications/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuzanneSoy%2Fextensible-parser-specifications/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuzanneSoy%2Fextensible-parser-specifications/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SuzanneSoy","download_url":"https://codeload.github.com/SuzanneSoy/extensible-parser-specifications/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245467226,"owners_count":20620210,"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":["racket-library"],"created_at":"2024-10-15T03:03:11.261Z","updated_at":"2026-01-06T06:06:01.169Z","avatar_url":"https://github.com/SuzanneSoy.png","language":"Racket","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status,](https://img.shields.io/travis/jsmaniac/extensible-parser-specifications/main.svg)](https://travis-ci.org/jsmaniac/extensible-parser-specifications)\n[![Coverage Status,](https://img.shields.io/codecov/c/github/jsmaniac/extensible-parser-specifications/main.svg)](https://codecov.io/gh/jsmaniac/extensible-parser-specifications)\n[![Build Stats,](https://img.shields.io/badge/build-stats-blue.svg)](http://jsmaniac.github.io/travis-stats/#jsmaniac/extensible-parser-specifications)\n[![Online Documentation,](https://img.shields.io/badge/docs-online-blue.svg)](http://docs.racket-lang.org/extensible-parser-specifications/)\n[![Unmaintained as of 2017 because syntax-parse is ill-fitted for this use,](https://img.shields.io/badge/maintained-no%20as%20of%202017%20%28syntax--parse%20is%20ill--fitted%20for%20this%20use%29-red.svg)](https://github.com/jsmaniac/extensible-parser-specifications/issues)\n[![License: CC0 v1.0.](https://img.shields.io/badge/license-CC0-blue.svg)](https://creativecommons.org/publicdomain/zero/1.0/)\n\nextensible-parser-specifications\n================================\n\n\nCaveat: the mixins defined with `define-eh-alternative-mixin` cannot be\nprovided and used in a separate module. Unfortunately, I cannot think of an\nacceptable fix for this problem, as solving this would require extracting\nparts of the mixin while preserving the bindings of some identifiers, but\naltering the bindings of others. This means that for the foreseeable future,\nonce a mixin is defined, can only be used via `~mixin` (or by directly\ninvoking it) within the same module.\n\nThe regular and splicing syntax classes defined with `#:define-syntax-class`\nand `#:define-splicing-syntax-class` will work fine across module boundaries,\nhowever. Manually defined syntax classes, splicing syntax classes or\nellipsis-head syntax classes will also work fine across module boundaries,\neven if they contain uses of `~no-order` and `~seq-no-order`, and even if\nthose special forms contain uses of mixins defined within the same module. In\nother words, as long as a definition of a mixin and all its uses via `~mixin`\nare within the same module, everything else should work without surprises.\n\n----------\n\nLike https://github.com/AlexKnauth/seq-no-order, but provides global\nconstraints.  AlexKnauth's implementation allows dotted \"rest\" pattern which\nthis implementation does not support.\n\nThis package is unstable, and its API may change at any moment. Once it is\nstable enough, it may be merged into [Alex Knauth's\nimplementation](https://github.com/AlexKnauth/seq-no-order).\n\nThe following pattern expanders (and mixin expanders, see the docs) for `syntax/parse` are defined:\n* ~seq-no-order\n* ~no-order\n* ~post-check\n* ~post-fail\n* ~nop\n* ~optional/else\n* ~global-or\n* ~global-and\n* ~global-counter\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuzannesoy%2Fextensible-parser-specifications","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuzannesoy%2Fextensible-parser-specifications","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuzannesoy%2Fextensible-parser-specifications/lists"}