Forked from
cmucl / cmucl
Source project has a limited visibility.
-
ram authored
extra close parens are only a warning, not an error. Export READER-ERROR, and change all reader code to signal this error as appropriate (or in some cases END-OF-FILE.) If a package is undefined, or an external symbol is missing, then signal READER-PACKAGE-ERROR (a subtype of READER-ERROR.) This allows #+ to suppress this error on features without suppressing all read errors. Changed these errors to only be signalled after the whole token has been gobbled, so that unwinding out of the handler won't leave the rest of the symbol unread. Improved readtable documentation. Fixed a number of problems with #=/##. ## now works correctly with #S structures, and also detects some new error conditions (such as multiply defined labels.) Also, we now bind the specials that control ## interaction so that if someone happens to read some other stream inside a read macro, things will still work. Added Ted's changes to make INTERNAL-READ-EXTENDED-TOKEN work when there are `|' escapes. The main significance of this is that #+nil '|foo;bar| and #:|foobar| now work properly. Also change this function to recognize unquoted colons so that #:foo:bar will error, but not #:foo\:bar. Changed to not gratuitously upcase the input, and for READ-EXTENDED-TOKEN to call CASIFY-READ-BUFFER so that when READTABLE-CASE is :PRESERVE, you can #:Foo, etc.
ram authoredextra close parens are only a warning, not an error. Export READER-ERROR, and change all reader code to signal this error as appropriate (or in some cases END-OF-FILE.) If a package is undefined, or an external symbol is missing, then signal READER-PACKAGE-ERROR (a subtype of READER-ERROR.) This allows #+ to suppress this error on features without suppressing all read errors. Changed these errors to only be signalled after the whole token has been gobbled, so that unwinding out of the handler won't leave the rest of the symbol unread. Improved readtable documentation. Fixed a number of problems with #=/##. ## now works correctly with #S structures, and also detects some new error conditions (such as multiply defined labels.) Also, we now bind the specials that control ## interaction so that if someone happens to read some other stream inside a read macro, things will still work. Added Ted's changes to make INTERNAL-READ-EXTENDED-TOKEN work when there are `|' escapes. The main significance of this is that #+nil '|foo;bar| and #:|foobar| now work properly. Also change this function to recognize unquoted colons so that #:foo:bar will error, but not #:foo\:bar. Changed to not gratuitously upcase the input, and for READ-EXTENDED-TOKEN to call CASIFY-READ-BUFFER so that when READTABLE-CASE is :PRESERVE, you can #:Foo, etc.