Parboiled2
Fast Parse
Our great sponsors
Parboiled2 | Fast Parse | |
---|---|---|
1 | 2 | |
685 | 990 | |
- | 0.2% | |
8.6 | 3.8 | |
20 days ago | 26 days ago | |
Scala | Scala | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Parboiled2
-
Play Framework: first release based at Open Collective
and porting Parboiled to Scala 3 looks like an ongoing blocker.
Fast Parse
-
-🎄- 2021 Day 18 Solutions -🎄-
Mostly a mess of pattern matching. I really need to make some generic tree utilities. Haven't been able to find a decent parser combinator that works in Scala 3 (I usually use fastparse which depends heavily on Scala 2 macros, and scala-parser-combinators works in Scala 3, but I've had a lot of trouble getting it to not be too greedy), so I used the state monad from cats to parse at the bottom of the file, which I think turned out fairly nice.
-
Parser generators vs. handwritten parsers: surveying major languages in 2021
Agreed! I would say that parser combinators are the sweet spot and the right choice in most cases.
Scala has them as well, e.g.: https://com-lihaoyi.github.io/fastparse/
And the good thing is, you don't have to learn a completely new language/syntax, you can use the host language's syntax and you have full IDE support as well.
What are some alternatives?
Scala Parser Combinators - simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module
atto - friendly little parsers
Kaitai Struct - Kaitai Struct: declarative language to generate binary data parsers in C++ / C# / Go / Java / JavaScript / Lua / Perl / PHP / Python / Ruby
Scopt - command line options parsing for Scala
Scallop - a simple Scala CLI parsing library
Lark - Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity.
decline - A composable command-line parser for Scala.
CLIST - Command Line Interface Scala Toolkit