On Tue, Feb 10, 2015 at 9:13 PM, Stefan Monnier wrote: >> OK. This results in an assertion failing in smie-prec2->grammar: >> (cl-assert (numberp (car cons))) > > I'd need more info to figure out what's going on. E.g. a backtrace, > and maybe the chunk of code where it signals the error. Yeah, sorry. Here’s the whole rnc-mode.el. The backtrace doesn’t seem to tell us much (parts of the backtrace that only involve invoking eval-buffer have been elided): Debugger entered--Lisp error: (cl-assertion-failed (numberp (car cons))) signal(cl-assertion-failed ((numberp (car cons)))) smie-prec2->grammar(#s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data (:smie-open/close-alist (("element" . opener)) :smie-closer-alist nil ...))) (defconst rnc-mode-smie-grammar (smie-prec2->grammar (smie-bnf->prec2 (quote ((id) (pattern ("element" id) ("empty"))))))) eval-buffer() ; Reading at buffer position 2901 #(eval-buffer record nil) funcall(# eval-buffer record nil) …