From: Stefan Monnier Date: Thu, 23 Jun 2011 16:55:59 +0000 (-0400) Subject: * lisp/emacs-lisp/smie.el (smie-bnf->prec2): Give more understandable error X-Git-Tag: emacs-pretest-24.0.90~104^2~152^2~422 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=273d2baf9bfe78df24047666b7e6cdb52e44e66d;p=emacs.git * lisp/emacs-lisp/smie.el (smie-bnf->prec2): Give more understandable error messages for adjacent non-terminals. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6b5f33a7782..029003c0429 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-06-23 Stefan Monnier + + * emacs-lisp/smie.el (smie-bnf->prec2): Give more understandable error + messages for adjacent non-terminals. + 2011-06-23 Richard Stallman * mail/rmail.el (rmail-retry-ignored-headers): Add message-id. diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el index 17cc5668b5f..0206abb9f53 100644 --- a/lisp/emacs-lisp/smie.el +++ b/lisp/emacs-lisp/smie.el @@ -229,14 +229,18 @@ one of those elements share the same precedence level and associativity." ;; the trouble, and it lets the writer of the BNF ;; be a bit more sloppy by skipping uninteresting base ;; cases which are terminals but not OPs. - (assert (not (member (cadr rhs) nts))) + (when (member (cadr rhs) nts) + (error "Adjacent non-terminals: %s %s" + (car rhs) (cadr rhs))) (pushnew (cadr rhs) first-ops))) (let ((shr (reverse rhs))) (if (not (member (car shr) nts)) (pushnew (car shr) last-ops) (pushnew (car shr) last-nts) (when (consp (cdr shr)) - (assert (not (member (cadr shr) nts))) + (when (member (cadr rhs) nts) + (error "Adjacent non-terminals: %s %s" + (cadr rhs) (car rhs))) (pushnew (cadr shr) last-ops))))) (push (cons nt first-ops) first-ops-table) (push (cons nt last-ops) last-ops-table)