1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 python,
6}:
7
8buildPythonPackage rec {
9 pname = "ply";
10 version = "3.11";
11 format = "setuptools";
12
13 src = fetchPypi {
14 inherit pname version;
15 sha256 = "00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3";
16 };
17
18 checkPhase = ''
19 ${python.interpreter} test/testlex.py
20 ${python.interpreter} test/testyacc.py
21 '';
22
23 # Test suite appears broken
24 doCheck = false;
25
26 meta = {
27 homepage = "http://www.dabeaz.com/ply/";
28 description = "PLY (Python Lex-Yacc), an implementation of the lex and yacc parsing tools for Python";
29 longDescription = ''
30 PLY is an implementation of lex and yacc parsing tools for Python.
31 In a nutshell, PLY is nothing more than a straightforward lex/yacc
32 implementation. Here is a list of its essential features: It's
33 implemented entirely in Python; It uses LR-parsing which is
34 reasonably efficient and well suited for larger grammars; PLY
35 provides most of the standard lex/yacc features including support for
36 empty productions, precedence rules, error recovery, and support for
37 ambiguous grammars; PLY is straightforward to use and provides very
38 extensive error checking; PLY doesn't try to do anything more or less
39 than provide the basic lex/yacc functionality. In other words, it's
40 not a large parsing framework or a component of some larger system.
41 '';
42 license = lib.licenses.bsd3;
43 };
44}