LispLang / lisplang.github.io

Common Lisp homepage
https://lisp-lang.org/
160 stars 30 forks source link

Parsing: esrap, cl-parsec #52

Closed eugeneia closed 7 years ago

eugeneia commented 7 years ago

In the list of recommended libraries contains esrap and cl-parsec which should be replaced by MaxPC. Disclaimer: I am the author of the latter.

  1. Esrap implements a scientific paper, whose practical application is dubious. Esrap itself is well documented and maintained but its practicality is doubtful (performance for most parsers will be artificially encumbered). In (unverified) theory Esrap (Packrat) is useful in edge cases where you have huge, massively backtracking grammars. This is rarely the case in practice.

  2. cl-parsec is marked experimental and not ready for production, lacks documentation.

MaxPC is a sensible recommendation as a general purpose parser generator: its reasonably fast given its expressiveness, well documented, tested, stable, and supports a variety of use cases. More importantly, its capabilities and limitations are well documented, so the user can make an informed decision.

eudoxia0 commented 7 years ago

Hi,

While a replacement for Esrap (mostly for performance reasons) is something I've wanted for a long time I haven't had the chance to fully try your library. I did make an attempt at a simple parser some months back but didn't have the time to finish it then.

Despite this having looked at your blog post about it and the documentation I agree with you that it's the better choice. I'll make the change.

eudoxia0 commented 7 years ago

https://github.com/LispLang/lisplang.github.io/commit/21cad3ff2257dd0df8d35882ca73bf071aa2df4e