Function: wisent--make-parser-1
wisent--make-parser-1 is a byte-compiled function defined in
grammar.el.gz.
Signature
(wisent--make-parser-1 INFILE &optional OUTDIR)
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/wisent/grammar.el.gz
;; Cf bovine--make-parser-1.
(defun wisent--make-parser-1 (infile &optional outdir)
(if outdir (setq outdir (file-name-directory (expand-file-name outdir))))
(let ((packagename
;; This is with-demoted-errors.
(condition-case err
(with-current-buffer (find-file-noselect infile)
(if outdir (setq default-directory outdir))
(semantic-grammar-create-package t t))
(error (message "%s" (error-message-string err)) nil)))
output-data)
(when (setq output-data (assoc packagename wisent-make-parsers--parser-file-name))
(let ((additional-copyright (nth 1 output-data))
(additional-license (nth 2 output-data))
(filename (expand-file-name
(progn (string-match ".*/\\(.*\\)" packagename)
(match-string 1 packagename))
outdir))
copyright-end)
;; Touch up the generated parsers for Emacs integration.
(with-temp-file filename
(insert-file-contents filename)
;; Fix copyright header:
(goto-char (point-min))
(when additional-copyright
(re-search-forward "Copyright (C).*$")
(insert "\n;; " additional-copyright))
(re-search-forward "^;; Author:")
(setq copyright-end (match-beginning 0))
(re-search-forward "^;;; Code:\n")
(delete-region copyright-end (match-end 0))
(goto-char copyright-end)
(insert wisent-make-parsers--emacs-license)
(insert "\n\n;;; Commentary:
;;
;; This file was generated from admin/grammars/"
(file-name-nondirectory infile) ".")
(when additional-license
(insert "\n" additional-license))
(insert "\n\n;;; Code:\n")
(goto-char (point-min))
(delete-region (point-min) (line-end-position))
(insert ";;; " packagename
" --- Generated parser support file "
"-*- lexical-binding:t -*-")
(re-search-forward ";;; \\(.*\\) ends here")
(replace-match packagename nil nil nil 1)
(delete-trailing-whitespace))))))