gnu: python-deepmerge: Use pyproject-build-system.
[jackhill/guix/guix.git] / gnu / packages / re2c.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2017, 2020 Sergei Trofimovich <slyfox@inbox.ru>
3 ;;; Copyright © 2021 Sergei Trofimovich <slyich@gmail.com>
4 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
5 ;;;
6 ;;; This file is part of GNU Guix.
7 ;;;
8 ;;; GNU Guix is free software; you can redistribute it and/or modify it
9 ;;; under the terms of the GNU General Public License as published by
10 ;;; the Free Software Foundation; either version 3 of the License, or (at
11 ;;; your option) any later version.
12 ;;;
13 ;;; GNU Guix is distributed in the hope that it will be useful, but
14 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ;;; GNU General Public License for more details.
17 ;;;
18 ;;; You should have received a copy of the GNU General Public License
19 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21 (define-module (gnu packages re2c)
22 #:use-module (guix licenses)
23 #:use-module (guix packages)
24 #:use-module (gnu packages python)
25 #:use-module (guix download)
26 #:use-module (guix build-system gnu))
27
28 (define-public re2c
29 (package
30 (name "re2c")
31 (version "2.2")
32 (source (origin
33 (method url-fetch)
34 (uri (string-append "https://github.com/skvadrik/" name
35 "/releases/download/" version "/"
36 name "-" version ".tar.xz"))
37 (sha256
38 (base32
39 "1nkbv3bxz1kwwql1pdlnj3lxy5h2vsaif393ivb5b9d8610mxi0g"))))
40 (build-system gnu-build-system)
41 (home-page "https://re2c.org/")
42 (native-inputs
43 (list python)) ; for the test driver
44 (synopsis "Lexer generator for C/C++")
45 (description
46 "@code{re2c} generates minimalistic hard-coded state machine (as opposed
47 to full-featured table-based lexers). Flexible API allows generated code
48 to be wired into virtually any environment. Instead of exposing traditional
49 @code{yylex()} style API, re2c exposes its internals. Be sure to take a look
50 at examples, they cover a lot of real-world cases and shed some light on dark
51 corners of re2c API.")
52 (license public-domain)))