3 ms·
Gotta love Parsec for Haskell and pyparsing for Python. Some other awesome parsing libs: PEGTL - C++ Parsing Expression Grammar Template Library https://githu
by Cieplak 9y ago
Gotta love Parsec for Haskell and pyparsing for Python. Some other awesome parsing libs:
PEGTL - C++ Parsing Expression Grammar Template Library
https://github.com/taocpp/PEGTL https://github.com/taocpp/PEGTL
Parboiled - Java & Scala PEG Library
https://github.com/sirthias/parboiled https://github.com/sirthias/parboiled
Nom - Rust parser combinator framework
https://github.com/Geal/nom https://github.com/Geal/nom
Nearley - JavaScript parser toolkit
https://github.com/Hardmath123/nearley https://github.com/Hardmath123/nearley
Neotoma - Erlang library and packrat parser-generator for PEGs
https://github.com/seancribbs/neotoma https://github.com/seancribbs/neotoma
- DominoTree 9y agoI've used Nom to parse a couple RFC-based protocols now, and I'm amazed at how easy and performant the result ends up being. There's a great walk-through of using it here, including fuzzing your parsers to make sure they're solid. https://github.com/Geal/langsec-2017-hackathon-code https://github.com/Geal/langsec-2017-hackathon-code
- beefsack 9y agoGeal is very helpful too, he pops up around the place in the Rust community and is responsive on the nom Gitter channel.
- tommikaikkonen 9y agoI haven't tried pyparsing, but I enjoyed implementing a simple DSL with funcparserlib having no previous experience with parser combinators: https://github.com/vlasovskikh/funcparserlib https://github.com/vlasovskikh/funcparserlib The library has a well-written tutorial that doesn't require previous knowledge about parser combinators.
- dwenzek 9y agoangstrom - OCaml parser combinators built for speed and memory efficiency https://github.com/inhabitedtype/angstrom https://github.com/inhabitedtype/angstrom
- jjwiseman 9y agoInstaparse - Clojure/Clojurescript https://github.com/Engelberg/instaparse https://github.com/Engelberg/instaparse
- skocznymroczny 9y agoPegged - PEG generator implemented in the D programming language https://github.com/PhilippeSigaud/Pegged https://github.com/PhilippeSigaud/Pegged , works in run-time or compile-time
- leeoniya 9y agoNearly is pretty slow. check out Chevrotain http://sap.github.io/chevrotain/performance/ http://sap.github.io/chevrotain/performance/
- Matthias247 9y agoAdd fparsec for F#/.Net http://www.quanttec.com/fparsec/ http://www.quanttec.com/fparsec/ I used that 2 times and found it pretty easy to use, once I had grasped all the operators (like .>>, .>>., <|>, etc.)