What should have been the `else' branch of the hairy list presentation
said `~;:' instead of `~:;', with the result that if there are four or
more expected character sequences, no branch of the conditional matches,
and the loop body doesn't consume any items so it spins forever.
(defun lexer-error (char-scanner expected consumedp)
"Signal a continuable lexical error."
(cerror* "Lexical error: ~
- expected ~{~#[<bug>~;~A~;~A or ~A~;:~A, ~]~} ~
+ expected ~{~#[<bug>~;~A~;~A or ~A~:;~A, ~]~} ~
but found ~/sod::show-char/~
~@[ at ~A~]"
(mapcar (lambda (exp)