Skip to content

Parsector and more#24

Merged
echatav merged 108 commits intomainfrom
0.4
Apr 11, 2026
Merged

Parsector and more#24
echatav merged 108 commits intomainfrom
0.4

Conversation

@echatav
Copy link
Copy Markdown
Contributor

@echatav echatav commented Apr 10, 2026

  • Adds the Parsector profunctor, an invertible LL(1) parser.
  • Adds MonadTry interface used to include LL(k) grammar failure handling semantics with CtxGrammar.
  • RegEx terms & grammar refactored to remove ambiguities.
  • Property tests for algebraic invariants of RegEx and TokenClass.
  • option removed in favor of bidirectional combinators optionP
  • pureP combinator and P.return added
  • bugfixes and some renaming
  • Data.Profunctor.Separator & Data.Traversable.Homogeneous separated into modules

echatav and others added 30 commits February 6, 2026 16:00
Notes that some definitions are more powerful than name implies (bad for RegGrammar and good for CtxGrammar)

Thanks to @mniip for bringing the latter to my awareness.
unfortunately it's quite slow for most of the grammars with a lot of monoidal sequencing on large example strings

I only enabled testing for regexGrammar and arithGrammar.
Co-authored-by: echatav <2265940+echatav@users.noreply.github.com>
Co-authored-by: echatav <2265940+echatav@users.noreply.github.com>
@echatav echatav merged commit 0f08aaa into main Apr 11, 2026
1 check passed
@echatav echatav deleted the 0.4 branch April 11, 2026 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants