s-expressionists / Eclector

A portable Common Lisp reader that is highly customizable, can recover from errors and can return concrete syntax trees
https://s-expressionists.github.io/Eclector/
BSD 2-Clause "Simplified" License
108 stars 9 forks source link

Invalid ## expression signals an error when *READ-SUPPRESS* is true #65

Closed scymtym closed 4 years ago

scymtym commented 4 years ago

Invalid expressions such as ## and #123456789# (assuming that label has not been defined) signal an error even if *read-suppress* is true. The hyperspec says

#=

The #= notation is totally ignored. It does not read a following object. It produces no object, but is treated as whitespace[2].

##

The ## notation always produces nil.

For example,

(let ((*read-suppress* t))
  (eclector.reader:read-from-string "##"))

should not signal an error, but does.