summaryrefslogtreecommitdiff
path: root/lisp/org/ob-ebnf.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/org/ob-ebnf.el')
-rw-r--r--lisp/org/ob-ebnf.el81
1 files changed, 0 insertions, 81 deletions
diff --git a/lisp/org/ob-ebnf.el b/lisp/org/ob-ebnf.el
deleted file mode 100644
index 58666a4ded0..00000000000
--- a/lisp/org/ob-ebnf.el
+++ /dev/null
@@ -1,81 +0,0 @@
-;;; ob-ebnf.el --- Babel Functions for EBNF -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2013-2021 Free Software Foundation, Inc.
-
-;; Author: Michael Gauland
-;; Keywords: literate programming, reproducible research
-;; Homepage: https://orgmode.org
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs 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 Emacs 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 Emacs. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; Org-Babel support for using ebnf2ps to generate encapsulated postscript
-;; railroad diagrams. It recognizes these arguments:
-;;
-;; :file is required; it must include the extension '.eps.' All the rules
-;; in the block will be drawn in the same file. This is done by
-;; inserting a '[<file>' comment at the start of the block (see the
-;; documentation for ebnf-eps-buffer for more information).
-;;
-;; :style specifies a value in ebnf-style-database. This provides the
-;; ability to customize the output. The style can also specify the
-;; grammar syntax (by setting ebnf-syntax); note that only ebnf,
-;; iso-ebnf, and yacc are supported by this file.
-
-;;; Requirements:
-
-;;; Code:
-(require 'ob)
-(require 'ebnf2ps)
-
-;; optionally declare default header arguments for this language
-(defvar org-babel-default-header-args:ebnf '((:style . nil)))
-
-;; Use ebnf-eps-buffer to produce an encapsulated postscript file.
-;;
-(defun org-babel-execute:ebnf (body params)
- "Execute a block of Ebnf code with org-babel.
-This function is called by `org-babel-execute-src-block'."
- (save-excursion
- (let* ((dest-file (cdr (assq :file params)))
- (dest-dir (file-name-directory dest-file))
- (dest-root (file-name-sans-extension
- (file-name-nondirectory dest-file)))
- (style (cdr (assq :style params)))
- (result nil))
- (with-temp-buffer
- (when style (ebnf-push-style style))
- (let ((comment-format
- (cond ((string= ebnf-syntax 'yacc) "/*%s*/")
- ((string= ebnf-syntax 'ebnf) ";%s")
- ((string= ebnf-syntax 'iso-ebnf) "(*%s*)")
- (t (setq result
- (format "EBNF error: format %s not supported."
- ebnf-syntax))))))
- (setq ebnf-eps-prefix dest-dir)
- (insert (format comment-format (format "[%s" dest-root)))
- (newline)
- (insert body)
- (newline)
- (insert (format comment-format (format "]%s" dest-root)))
- (ebnf-eps-buffer)
- (when style (ebnf-pop-style))))
- result)))
-
-(provide 'ob-ebnf)
-
-;;; ob-ebnf.el ends here