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

Decide on parsing library #1

Open
Wardrop opened this issue Oct 28, 2014 · 2 comments
Open

Decide on parsing library #1

Wardrop opened this issue Oct 28, 2014 · 2 comments

Comments

@Wardrop
Copy link
Owner

Wardrop commented Oct 28, 2014

Rack Next is going to rely heavily on parsers. A decision needs to be made on what parsing library to use. Performance is most critical, but I'm willing to prioritise the readability and maintainability of one library, over marginal performance gains of another.

Also to consider, the parsing library should support compilation to plain Ruby to avoid it being a runtime dependancy.

@Wardrop Wardrop added question and removed question labels Oct 28, 2014
@Wardrop Wardrop changed the title Decide on Parsing Library Decide on parsing library Oct 28, 2014
@bwl21
Copy link

bwl21 commented Apr 5, 2015

I propose to provide the use cases (a list oft entities) to parse in order to derive requirements. Then we could see if one of the following meets the needs:

  • handcrofted by regex
  • treetop
  • citrus
  • antlr
  • parselet
  • racc

@Wardrop
Copy link
Owner Author

Wardrop commented Apr 5, 2015

I've used treetop and parslet, and dabbled in racc which kind of scared me off as it doesn't look very "fun" to use, but iI acknowledged it's quite performant and compile to plain-old dependancy-free Ruby. Regex can certainly be used for simple things, but whenever I've seen it used in place of a parser, it's normally been harder to maintain, and often you need to take shortcuts which don't meet the spec for the grammar you're parsing.

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

2 participants