Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1 milestone #10

Closed
strblr opened this issue Oct 15, 2021 · 0 comments
Closed

v1 milestone #10

strblr opened this issue Oct 15, 2021 · 0 comments

Comments

@strblr
Copy link
Owner

strblr commented Oct 15, 2021

Pegase v1 is underway. There will be some major changes compared to the current pre-release API.

  • The underlying parsing strategy will change: instead of parsing directly in class methods on Parser derivatives, a Function instance will be generated for the root Parser. This Function is a compiled and optimized version of the parsing process. This allows for some interesting tricks, and is also roughly two times faster. (Done)
  • The Parser classes will be entirely rewritten (obviously). Instead of an exec member, they will have a generate member to generate source code for the compiled Function. The source code will be recursively generated via parser.compile(). This method will not have to be called explicitly, it'll be done in the peg tag. (Done)
  • Parametrized rules will be a thing. (Done)
  • Warnings and failures might be collected directly on the options object, not logger which might be removed in favor of a smaller indexer or at method. (Done)
  • Captures will be handled differently. Right now, there are some scope issues. (Done)
@strblr strblr closed this as completed Oct 11, 2022
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

No branches or pull requests

1 participant