Commit 72b8747b authored by David Engster's avatar David Engster Committed by Chong Yidong
Browse files

* admin/grammars/bovine-grammar.el: Avoid using old-style backquotes.

parent 84bd6e9e
2011-10-31 David Engster <deng@randomsample.de>
* grammars/bovine-grammar.el: Avoid using old-style backquotes.
2011-10-28 Eli Zaretskii <eliz@gnu.org> 2011-10-28 Eli Zaretskii <eliz@gnu.org>
* nt/README-ftp-server: Mention UNICOWS.DLL as prerequisite for * nt/README-ftp-server: Mention UNICOWS.DLL as prerequisite for
......
...@@ -109,6 +109,14 @@ NAME, ALIASCLASS, DEFINITION and ATTRIBUTES." ...@@ -109,6 +109,14 @@ NAME, ALIASCLASS, DEFINITION and ATTRIBUTES."
;; Cache of macro definitions currently in use. ;; Cache of macro definitions currently in use.
(defvar bovine--grammar-macros nil) (defvar bovine--grammar-macros nil)
;; Detect if we have an Emacs with newstyle unquotes allowed outside
;; of backquote.
;; This should probably be changed to a test to (= emacs-major-version 24)
;; when it is released, but at the moment it might be possible that people
;; are using an older snapshot.
(defvar bovine--grammar-newstyle-unquote
(equal '(, test) (read ",test")))
(defun bovine-grammar-expand-form (form quotemode &optional inplace) (defun bovine-grammar-expand-form (form quotemode &optional inplace)
"Expand FORM into a new one suitable to the bovine parser. "Expand FORM into a new one suitable to the bovine parser.
FORM is a list in which we are substituting. FORM is a list in which we are substituting.
...@@ -142,6 +150,17 @@ expanded from elsewhere." ...@@ -142,6 +150,17 @@ expanded from elsewhere."
(while form (while form
(setq first (car form) (setq first (car form)
form (cdr form)) form (cdr form))
;; Hack for dealing with new reading of unquotes outside of
;; backquote (introduced in rev. 102591 in emacs-bzr).
(when (and bovine--grammar-newstyle-unquote
(listp first)
(or (equal (car first) '\,)
(equal (car first) '\,@)))
(if (listp (cadr first))
(setq form (append (cdr first) form)
first (car first))
(setq first (intern (concat (symbol-name (car first))
(symbol-name (cadr first)))))))
(cond (cond
((eq first nil) ((eq first nil)
(when (and (not inlist) (not inplace)) (when (and (not inlist) (not inplace))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment