0.9.2.43:
[sbcl.git] / tests / reader.pure.lisp
index 0d22933..ed9743a 100644 (file)
@@ -6,7 +6,7 @@
 ;;;; While most of SBCL is derived from the CMU CL system, the test
 ;;;; files (like this one) were written from scratch after the fork
 ;;;; from CMU CL.
-;;;; 
+;;;;
 ;;;; This software is in the public domain and is provided with
 ;;;; absolutely no warranty. See the COPYING and CREDITS files for
 ;;;; more information.
@@ -38,9 +38,9 @@
 ;;; GET-DISPATCH-MACRO misbehavior fixed in sbcl-0.7.2.10, but
 ;;; was fixed a little later.)
 (dolist (customizable-char
-        ;; According to ANSI "2.1.4 Character Syntax Types", these
-        ;; characters are reserved for the programmer.
-        '(#\? #\! #\[ #\] #\{ #\}))
+         ;; According to ANSI "2.1.4 Character Syntax Types", these
+         ;; characters are reserved for the programmer.
+         '(#\? #\! #\[ #\] #\{ #\}))
   ;; So they should have no macro-characterness.
   (multiple-value-bind (macro-fun non-terminating-p)
       (get-macro-character customizable-char)
 ;;; PARSE-INTEGER must signal an error of type PARSE-ERROR if it is
 ;;; unable to parse an integer and :JUNK-ALLOWED is NIL.
 (macrolet ((assert-parse-error (form)
-            `(multiple-value-bind (val cond)
-                 (ignore-errors ,form)
-               (assert (null val))
-               (assert (typep cond 'parse-error)))))
+             `(multiple-value-bind (val cond)
+                  (ignore-errors ,form)
+                (assert (null val))
+                (assert (typep cond 'parse-error)))))
   (assert-parse-error (parse-integer "    "))
   (assert-parse-error (parse-integer "12 a"))
   (assert-parse-error (parse-integer "12a"))
 ;;; #A notation enforces that once one 0 dimension has been found, all
 ;;; subsequent ones are also 0.
 (assert (equal (array-dimensions (read-from-string "#3A()"))
-              '(0 0 0)))
+               '(0 0 0)))
 (assert (equal (array-dimensions (read-from-string "#3A(())"))
-              '(1 0 0)))
+               '(1 0 0)))
 (assert (equal (array-dimensions (read-from-string "#3A((() ()))"))
-              '(1 2 0)))
+               '(1 2 0)))
 
 ;;; Bug reported by Nikodemus Siivola on sbcl-devel 2003-07-21:
 ;;; package misconfiguration
 
 (let ((*read-base* *read-base*))
   (dolist (float-string '(".9" ".9e9" ".9e+9" ".9e-9"
-                         "-.9" "-.9e9" "-.9e+9" "-.9e-9"
-                         "+.9" "+.9e9" "+.9e+9" "+.9e-9"
-                         "0.9" "0.9e9" "0.9e+9" "0.9e-9"
-                         "9.09" "9.09e9" "9.09e+9" "9.09e-9"
-                         #|"9e9" could be integer|# "9e+9" "9e-9"))
+                          "-.9" "-.9e9" "-.9e+9" "-.9e-9"
+                          "+.9" "+.9e9" "+.9e+9" "+.9e-9"
+                          "0.9" "0.9e9" "0.9e+9" "0.9e-9"
+                          "9.09" "9.09e9" "9.09e+9" "9.09e-9"
+                          #|"9e9" could be integer|# "9e+9" "9e-9"))
     (loop for i from 2 to 36
-         do (setq *read-base* i)
-         do (assert (typep (read-from-string float-string)
-                           *read-default-float-format*))
-         do (assert (typep
-                     (read-from-string (substitute #\E #\e float-string))
-                     *read-default-float-format*))
-         if (position #\e float-string)
-         do (assert (typep
-                     (read-from-string (substitute #\s #\e float-string))
-                     'short-float))
-         and do (assert (typep
-                         (read-from-string (substitute #\S #\e float-string))
-                         'short-float))
-         and do (assert (typep
-                         (read-from-string (substitute #\f #\e float-string))
-                         'single-float))
-         and do (assert (typep
-                         (read-from-string (substitute #\F #\e float-string))
-                         'single-float))
-         and do (assert (typep
-                         (read-from-string (substitute #\d #\e float-string))
-                         'double-float))
-         and do (assert (typep
-                         (read-from-string (substitute #\D #\e float-string))
-                         'double-float))
-         and do (assert (typep
-                         (read-from-string (substitute #\l #\e float-string))
-                         'long-float))
-         and do (assert (typep
-                         (read-from-string (substitute #\L #\e float-string))
-                         'long-float)))))
+          do (setq *read-base* i)
+          do (assert (typep (read-from-string float-string)
+                            *read-default-float-format*))
+          do (assert (typep
+                      (read-from-string (substitute #\E #\e float-string))
+                      *read-default-float-format*))
+          if (position #\e float-string)
+          do (assert (typep
+                      (read-from-string (substitute #\s #\e float-string))
+                      'short-float))
+          and do (assert (typep
+                          (read-from-string (substitute #\S #\e float-string))
+                          'short-float))
+          and do (assert (typep
+                          (read-from-string (substitute #\f #\e float-string))
+                          'single-float))
+          and do (assert (typep
+                          (read-from-string (substitute #\F #\e float-string))
+                          'single-float))
+          and do (assert (typep
+                          (read-from-string (substitute #\d #\e float-string))
+                          'double-float))
+          and do (assert (typep
+                          (read-from-string (substitute #\D #\e float-string))
+                          'double-float))
+          and do (assert (typep
+                          (read-from-string (substitute #\l #\e float-string))
+                          'long-float))
+          and do (assert (typep
+                          (read-from-string (substitute #\L #\e float-string))
+                          'long-float)))))
 
 (let ((*read-base* *read-base*))
   (dolist (integer-string '("1." "2." "3." "4." "5." "6." "7." "8." "9." "0."))
     (loop for i from 2 to 36
-         do (setq *read-base* i)
-         do (assert (typep (read-from-string integer-string) 'integer)))))
+          do (setq *read-base* i)
+          do (assert (typep (read-from-string integer-string) 'integer)))))
 
 (let ((*read-base* *read-base*))
   (dolist (symbol-string '("A." "a." "Z." "z."
-                          
-                          "+.9eA" "+.9ea"
-                          
-                          "0.A" "0.a" "0.Z" "0.z"
 
-                          #|"9eA" "9ea"|# "9e+A" "9e+a" "9e-A" "9e-a"
-                          #|"Ae9" "ae9"|# "Ae+9" "ae+9" "Ae-9" "ae-9"
+                           "+.9eA" "+.9ea"
+
+                           "0.A" "0.a" "0.Z" "0.z"
+
+                           #|"9eA" "9ea"|# "9e+A" "9e+a" "9e-A" "9e-a"
+                           #|"Ae9" "ae9"|# "Ae+9" "ae+9" "Ae-9" "ae-9"
 
-                          "ee+9" "Ee+9" "eE+9" "EE+9"
-                          "ee-9" "Ee-9" "eE-9" "EE-9"
+                           "ee+9" "Ee+9" "eE+9" "EE+9"
+                           "ee-9" "Ee-9" "eE-9" "EE-9"
 
-                          "A.0" "A.0e10" "a.0" "a.0e10"
+                           "A.0" "A.0e10" "a.0" "a.0e10"
 
-                          "1e1e+9"))
+                           "1e1e+9"))
     (loop for i from 2 to 36
-         do (setq *read-base* i)
-         do (assert (typep (read-from-string symbol-string) 'symbol)))))
+          do (setq *read-base* i)
+          do (assert (typep (read-from-string symbol-string) 'symbol)))))
 
 (let ((standard-chars " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
 ")
       (standard-terminating-macro-chars "\"'(),;`")
       (standard-nonterminating-macro-chars "#"))
   (flet ((frob (char)
-          (multiple-value-bind (fun non-terminating-p)
-              (get-macro-character char)
-            (cond
-              ((find char standard-terminating-macro-chars)
-               (unless (and fun (not non-terminating-p))
-                 (list char)))
-              ((find char standard-nonterminating-macro-chars)
-               (unless (and fun non-terminating-p)
-                 (list char)))
-              (t (unless (and (not fun) (not non-terminating-p))
-                   (list char)))))))
+           (multiple-value-bind (fun non-terminating-p)
+               (get-macro-character char)
+             (cond
+               ((find char standard-terminating-macro-chars)
+                (unless (and fun (not non-terminating-p))
+                  (list char)))
+               ((find char standard-nonterminating-macro-chars)
+                (unless (and fun non-terminating-p)
+                  (list char)))
+               (t (unless (and (not fun) (not non-terminating-p))
+                    (list char)))))))
     (let ((*readtable* (copy-readtable nil)))
       (assert (null (loop for c across standard-chars append (frob c)))))))
 
 ")
       (undefined-chars "!\"$%&,;>?@[]^_`~{}/dDeEfFgGhHiIjJkKlLmMnNqQtTuUvVwWyYzZ"))
   (flet ((frob (char)
-          (let ((fun (get-dispatch-macro-character #\# char)))
-            (cond
-              ((find char undefined-chars)
-               (when fun (list char)))
-              ((digit-char-p char 10)
-               (when fun (list char)))
-              (t
-               (unless fun (list char)))))))
+           (let ((fun (get-dispatch-macro-character #\# char)))
+             (cond
+               ((find char undefined-chars)
+                (when fun (list char)))
+               ((digit-char-p char 10)
+                (when fun (list char)))
+               (t
+                (unless fun (list char)))))))
     (let ((*readtable* (copy-readtable nil)))
       (assert (null (loop for c across standard-chars append (frob c)))))))
 
   (assert (typep err 'end-of-file)))
 
 (assert (equal '((0 . "A") (1 . "B"))
-               (coerce (read-from-string "#((0 . \"A\") (1 . \"B\"))") 
+               (coerce (read-from-string "#((0 . \"A\") (1 . \"B\"))")
                        'list)))