Skip to content

Commit 2ccc71a

Browse files
committed
Better docs regarding other projects.
1 parent 38a65c4 commit 2ccc71a

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

docs/overview.rst

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,29 @@ To learn how to use parsy, you should continue with:
7979
Other Python projects
8080
=====================
8181

82-
* `pyparsing <http://pyparsing.wikispaces.com/>`_. Also a combinator approach,
83-
but in general much less cleanly implemented, and rather scattered
84-
documentation, although it has more builtin functionality in terms
85-
of provided utilities for certain parsing tasks.
82+
This library isn’t for everyone or for every project. It excels at quickly
83+
writing easy-to-read parsers for relatively small languages, and it’s great if
84+
you are a relative newcomer to the subject of parsing but want something better
85+
than ``str.split``. If you have demanding needs in terms of performance, or
86+
producing good error messages, you may need to look elsewhere. Below are some
87+
other Python libraries you might consider:
8688

8789
* `PLY <http://www.dabeaz.com/ply/>`_. A pure Python implementation of
8890
the classic lex/yacc parsing tools. It is well suited to large grammars
8991
that would be found in typical programming languages.
9092

93+
* `Lark <https://github.com/erezsh/lark>`_. With Lark you write a grammar
94+
definition in a separate mini-language as a string, and have a parser
95+
generated for you, rather than writing the grammar in Python. It has the
96+
advantage of speed and being able to use different parsing algorithms.
97+
98+
* `pyparsing <https://pypi.org/project/pyparsing/>`_. Also a combinator approach,
99+
but in general much less cleanly implemented, and rather scattered
100+
documentation, although it has more builtin functionality in terms
101+
of provided utilities for certain parsing tasks.
102+
91103
* `funcparserlib <https://github.com/vlasovskikh/funcparserlib>`_ - the most
92104
similar to parsy. It differs from parsy mainly in normally using a separate
93105
tokenization phase, lacking the convenience of the :func:`generate` method for
94106
creating parsers, and documentation that relies on understanding Haskell type
95107
annotations.
96-
97-
* `Lark <https://github.com/erezsh/lark>`_. With Lark you write a grammar
98-
definition in a separate mini-language as a string, and have a parser
99-
generated for you, rather than writing the grammar in Python. It has the
100-
advantage of speed and being able to use different parsing algorithms.

0 commit comments

Comments
 (0)