diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2011-06-23 12:55:59 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2011-06-23 12:55:59 -0400 |
commit | 273d2baf9bfe78df24047666b7e6cdb52e44e66d (patch) | |
tree | b7b2358f6c9e70a360e533908cc697a63e0776d2 | |
parent | f444564c73d7c7546d60d2d899a02cf838316c6c (diff) | |
download | emacs-273d2baf9bfe78df24047666b7e6cdb52e44e66d.tar.gz emacs-273d2baf9bfe78df24047666b7e6cdb52e44e66d.tar.bz2 emacs-273d2baf9bfe78df24047666b7e6cdb52e44e66d.zip |
* lisp/emacs-lisp/smie.el (smie-bnf->prec2): Give more understandable error
messages for adjacent non-terminals.
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/emacs-lisp/smie.el | 8 |
2 files changed, 11 insertions, 2 deletions
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 <monnier@iro.umontreal.ca> + + * emacs-lisp/smie.el (smie-bnf->prec2): Give more understandable error + messages for adjacent non-terminals. + 2011-06-23 Richard Stallman <rms@gnu.org> * 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) |