1{
2 lib,
3 buildPythonPackage,
4 colorama,
5 fetchFromGitHub,
6 pytestCheckHook,
7 regex,
8 setuptools,
9}:
10
11buildPythonPackage rec {
12 pname = "tatsu-lts";
13 version = "5.13.1";
14 pyproject = true;
15
16 src = fetchFromGitHub {
17 owner = "dnicolodi";
18 repo = "TatSu-LTS";
19 tag = "v${version}-LTS";
20 hash = "sha256-cfGAWZDAnoD3ddhVIkOHyiv7gUDgnAWu1ZBvDEiQ2AQ=";
21 };
22
23 build-system = [ setuptools ];
24
25 dependencies = [
26 colorama
27 regex
28 ];
29
30 nativeCheckInputs = [ pytestCheckHook ];
31
32 pythonImportsCheck = [ "tatsu" ];
33
34 meta = {
35 description = "Generates Python parsers from grammars in a variation of EBNF";
36 longDescription = ''
37 TatSu (the successor to Grako) is a tool that takes grammars in a
38 variation of EBNF as input, and outputs memoizing (Packrat) PEG parsers in
39 Python.
40 '';
41 homepage = "https://tatsu.readthedocs.io/";
42 changelog = "https://github.com/dnicolodi/TatSu-LTS/releases/tag/${src.tag}";
43 license = lib.licenses.bsd2;
44 maintainers = with lib.maintainers; [ alapshin ];
45 };
46}