summary refs log tree commit diff
diff options
context:
space:
mode:
authorPierre Neidhardt <ambrevar@gmail.com>2018-08-24 11:19:24 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2018-10-19 17:54:10 +0200
commitef091e91552dc849dcf454334449045333af9811 (patch)
tree18750c46aa453ffcc44afad2d8043bde9fc0a2dd
parent2d418bfa39149df75b3975ad677d3c9b696d1954 (diff)
downloadguix-ef091e91552dc849dcf454334449045333af9811.tar.gz
gnu: Add cl-yacc.
* gnu/packages/lisp.scm (cl-cl-yacc, ecl-cl-yacc, sbcl-cl-yacc): New variables.
-rw-r--r--gnu/packages/lisp.scm35
1 files changed, 35 insertions, 0 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index f5c0b90946..d9a2cce260 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1675,3 +1675,38 @@ GNU libiconv, but completely written in Common Lisp.")
 
 (define-public ecl-babel
   (sbcl-package->ecl-package sbcl-babel))
+
+(define-public sbcl-cl-yacc
+  (package
+    (name "sbcl-cl-yacc")
+    (version "0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jech/cl-yacc")
+             (commit (string-append "cl-yacc-" version))))
+       (sha256
+        (base32
+         "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib"))
+       (file-name (string-append "cl-yacc-" version "-checkout"))))
+    (build-system asdf-build-system/sbcl)
+    (arguments
+     `(#:asd-file "yacc.asd"
+       #:asd-system-name "yacc"))
+    (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc")
+    (description
+     "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit
+to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm.
+
+CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used
+by AT&T Yacc, Berkeley Yacc and Zebu.  It does not use the faster algorithm due
+to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
+    (home-page "https://www.irif.fr/~jch//software/cl-yacc/")
+    (license license:expat)))
+
+(define-public cl-yacc
+  (sbcl-package->cl-source-package sbcl-cl-yacc))
+
+(define-public ecl-cl-yacc
+  (sbcl-package->ecl-package sbcl-cl-yacc))