unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Alex Vong <alexvong1995@gmail.com>
To: 33215@debbugs.gnu.org
Cc: alexvong1995@gmail.com
Subject: [bug#33215] [PATCH 07/11] gnu: Add clojure-instaparse.
Date: Wed, 31 Oct 2018 14:11:03 +0800	[thread overview]
Message-ID: <87sh0mfxxk.fsf@gmail.com> (raw)
In-Reply-To: <87muquhcw3.fsf@gmail.com>


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.1: 0007-gnu-Add-clojure-instaparse.patch --]
[-- Type: text/x-diff, Size: 3133 bytes --]

From 835b431224da203bfefc984019529679495a64b5 Mon Sep 17 00:00:00 2001
From: Alex Vong <alexvong1995@gmail.com>
Date: Sun, 14 Oct 2018 04:17:14 +0800
Subject: [PATCH 07/11] gnu: Add clojure-instaparse.

* gnu/packages/lisp.scm (clojure-instaparse): New public variable.
---
 gnu/packages/lisp.scm | 53 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index ee43e5abf..3bb70c692 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -36,6 +36,7 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system ant)
+  #:use-module (guix build-system clojure)
   #:use-module (guix build-system asdf)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages admin)
@@ -1603,6 +1604,58 @@ compressor.  It works on data produced by @code{parse-js} to generate a
        ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js)))
     (synopsis "JavaScript compressor")))
 
+(define-public clojure-instaparse
+  (let ((commit "dcfffad5b065e750f0f5835f017cdd8188b8ca2e")
+        (version "1.4.9")) ; upstream forget to tag this release
+    (package
+      (name "clojure-instaparse")
+      (version version)
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Engelberg/instaparse.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "002mrgin4z3dqy88r1lak7smd0m7x8d22vmliw0m6w6mh5pa17lk"))))
+      (build-system clojure-build-system)
+      (arguments
+       '(#:doc-dirs '("docs/")))
+      (synopsis "No grammar left behind")
+      (description
+       "Instaparse aims to be the simplest way to build parsers in Clojure.
+
+@itemize
+@item Turns @emph{standard EBNF or ABNF notation} for context-free grammars
+into an executable parser that takes a string as an input and produces a parse
+tree for that string.
+
+@item @dfn{No Grammar Left Behind}: Works for @emph{any} context-free grammar,
+including @emph{left-recursive}, @emph{right-recursive}, and @emph{ambiguous}
+grammars.
+
+@item Extends the power of context-free grammars with PEG-like syntax for
+lookahead and negative lookahead.
+
+@item Supports both of Clojure's most popular tree formats (hiccup and enlive)
+as output targets
+
+@item Detailed reporting of parse errors.
+
+@item Optionally produces lazy sequence of all parses (especially useful for
+diagnosing and debugging ambiguous grammars).
+
+@item ``Total parsing'' mode where leftover string is embedded in the parse
+tree.
+
+@item Optional combinator library for building grammars programmatically.
+
+@item Performant.
+@end itemize")
+      (home-page "https://github.com/Engelberg/instaparse")
+      (license license:epl1.0))))
+
 (define-public confusion-mdl
   (let* ((commit "12a055581fc262225272df43287dae48281900f5"))
     (package
-- 
2.19.1


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

  parent reply	other threads:[~2018-10-31  6:12 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-31  6:02 [bug#33215] [PATCH 00/11] build-system: Add 'clojure-build-system' Alex Vong
2018-10-31  6:05 ` [bug#33215] [PATCH 01/11] gnu: clojure: Move from java to lisp Alex Vong
2018-10-31  6:06 ` [bug#33215] [PATCH 02/11] gnu: clojure: Remove 'remove-archives' snippet Alex Vong
2018-10-31  6:07 ` [bug#33215] [PATCH 03/11] gnu: clojure: Refactor to ensure there's a single list of libraries Alex Vong
2018-10-31  6:08 ` [bug#33215] [PATCH 04/11] gnu: clojure: Use (guix build java-utils) to simplify build phases Alex Vong
2018-10-31  6:09 ` [bug#33215] [PATCH 05/11] guix: Add clojure-utils Alex Vong
2018-11-20 21:55   ` Ludovic Courtès
2018-11-21 14:35     ` Alex Vong
2018-11-21 22:12       ` Ludovic Courtès
2018-10-31  6:10 ` [bug#33215] [PATCH 06/11] build-system: Add 'clojure-build-system' Alex Vong
2018-11-20 22:03   ` Ludovic Courtès
2018-10-31  6:11 ` Alex Vong [this message]
2018-10-31  6:11 ` [bug#33215] [PATCH 08/11] gnu: Add clojure-core-match Alex Vong
2018-10-31  6:12 ` [bug#33215] [PATCH 09/11] gnu: Add clojure-algo-generic Alex Vong
2018-10-31  6:13 ` [bug#33215] [PATCH 10/11] gnu: Add clojure-tools-macro Alex Vong
2018-10-31  6:14 ` [bug#33215] [PATCH 11/11] gnu: Add clojure-algo-monads Alex Vong
2018-11-19 12:53 ` bug#33215: [PATCH 00/11] build-system: Add 'clojure-build-system' Danny Milosavljevic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sh0mfxxk.fsf@gmail.com \
    --to=alexvong1995@gmail.com \
    --cc=33215@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).