GNU bug report logs - #38986
[PATCH] gnu: Add peg.

Previous Next

Package: guix-patches;

Reported by: Josh Holland <josh <at> inv.alid.pw>

Date: Mon, 6 Jan 2020 11:32:02 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 38986 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#38986; Package guix-patches. (Mon, 06 Jan 2020 11:32:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Josh Holland <josh <at> inv.alid.pw>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 06 Jan 2020 11:32:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Josh Holland <josh <at> inv.alid.pw>
To: guix-patches <at> gnu.org
Cc: Josh Holland <josh <at> inv.alid.pw>
Subject: [PATCH] gnu: Add peg.
Date: Mon,  6 Jan 2020 11:30:43 +0000
* gnu/packages/parser.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk            |  2 ++
 gnu/packages/parser.scm | 55 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 gnu/packages/parser.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index b7fa503257..c4f75ec775 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -26,6 +26,7 @@
 # Copyright © 2019 Evan Straw <evan.straw99 <at> gmail.com>
 # Copyright © 2019 Brett Gilio <brettg <at> gnu.org>
 # Copyright © 2019 Amin Bandali <bandali <at> gnu.org>
+# Copyright © 2020 Josh Holland <josh <at> inv.alid.pw>
 #
 # This file is part of GNU Guix.
 #
@@ -384,6 +385,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/ots.scm				\
   %D%/packages/package-management.scm		\
   %D%/packages/parallel.scm			\
+  %D%/packages/parser.scm			\
   %D%/packages/password-utils.scm		\
   %D%/packages/patchutils.scm			\
   %D%/packages/pciutils.scm			\
diff --git a/gnu/packages/parser.scm b/gnu/packages/parser.scm
new file mode 100644
index 0000000000..40a16915df
--- /dev/null
+++ b/gnu/packages/parser.scm
@@ -0,0 +1,55 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Josh Holland <josh <at> inv.alid.pw>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages parser)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix licenses)
+  #:use-module (guix packages))
+
+(define-public peg
+  (package
+    (name "peg")
+    (version "0.1.18")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://www.piumarta.com/software/peg/peg-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "114h1y4k8fwcq9m0hfk33dsp7ah8zxzjjzlk71x4iirzczfkn690"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "CC=gcc"
+                          (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure))))
+    (synopsis "Parser generators for Parsing Expression Grammars (PEGs)")
+    (description "peg and leg are tools for generating recursive-descent
+parsers: programs that perform pattern matching on text.  They processes a
+Parsing Expression Grammar (PEG) [Ford 2004] to produce a program that
+recognises legal sentences of that grammar.  peg processes PEGs written using
+the original syntax described by Ford; leg processes PEGs written using
+slightly different syntax and conventions that are intended to make it an
+attractive replacement for parsers built with lex and yacc.  Unlike lex and
+yacc, peg and leg support unlimited backtracking, provide ordered choice as a
+means for disambiguation, and can combine scanning (lexical analysis) and
+parsing (syntactic analysis) into a single activity.")
+    (home-page "https://www.piumarta.com/software/peg/")
+    (license (x11-style "file://LICENSE.txt"))))
-- 
2.24.1





Information forwarded to guix-patches <at> gnu.org:
bug#38986; Package guix-patches. (Mon, 06 Jan 2020 11:35:01 GMT) Full text and rfc822 format available.

Message #8 received at 38986 <at> debbugs.gnu.org (full text, mbox):

From: Josh Holland <josh <at> inv.alid.pw>
To: 38986 <at> debbugs.gnu.org
Subject: Re: bug#38986: Acknowledgement ([PATCH] gnu: Add peg.)
Date: Mon, 06 Jan 2020 11:34:21 +0000
FWIW, if maintainers prefer, this package could also justifiably be
named `pegleg`.  I stuck with the upstream tarball name for now.

--
Josh Holland




Information forwarded to guix-patches <at> gnu.org:
bug#38986; Package guix-patches. (Sat, 15 Feb 2020 11:08:01 GMT) Full text and rfc822 format available.

Message #11 received at 38986 <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: Josh Holland <josh <at> inv.alid.pw>
Cc: 38986 <at> debbugs.gnu.org
Subject: Re: [PATCH] gnu: Add peg.
Date: Sat, 15 Feb 2020 12:07:44 +0100
[Message part 1 (text/plain, inline)]
On Mon, Jan 06, 2020 at 11:30:43AM +0000, Josh Holland wrote:
> * gnu/packages/parser.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> ---
>  gnu/local.mk            |  2 ++
>  gnu/packages/parser.scm | 55 +++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 57 insertions(+)
>  create mode 100644 gnu/packages/parser.scm

Hi Josh,
it seems that PEG doesn't build fully from source, src/peg.peg-c is a
pre-generated file that's pretty much not human-readable. While
bootstrapping fully from source is not a hard requirement, sidestepping
it is usually reserved to highly-desirable packages. Could you take a
look at the possibility of generating src/peg.peg-c during build?

Meanwhile, I have fixed up the description a bit (texinfo markup,
grammar):

    (description "@command{peg} and @command{leg} are tools for generating
recursive-descent parsers: programs that perform pattern matching on text.
They process a Parsing Expression Grammar (PEG) to produce a program that
recognises legal sentences of that grammar.  @command{peg} processes PEGs
written using the original syntax described by Ford; @command{leg} processes
PEGs written using slightly different syntax and conventions that are intended
to make it an attractive replacement for parsers built with @command{lex}
and @command{yacc}.  Unlike @command{lex} and @command{yacc}, @command{peg}
and @command{leg} support unlimited backtracking, provide ordered choice
as a means for disambiguation, and can combine scanning (lexical analysis) and
parsing (syntactic analysis) into a single activity.")

Regards,
Jakub Kądziołka
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 4 years and 69 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.