commit 2b09e2fe9f7e2b1b72b4b570d4ab65d66d2dab39 Spenser Truex <spensertruexonline@gmail.com> 2018-03-31 23:43:13 -0300 IO utils.
utils.lisp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
diff --git a/utils.lisp b/utils.lisp new file mode 100644 index 0000000..d72b0ab --- /dev/null +++ b/utils.lisp @@ -0,0 +1,28 @@ +;; Export read-token read-int +(defun numberp-char (char) + (or (char= #\0 char) + (char= #\1 char) + (char= #\2 char) + (char= #\3 char) + (char= #\4 char) + (char= #\5 char) + (char= #\6 char) + (char= #\7 char) + (char= #\8 char) + (char= #\9 char))) +(defun whitespacep-char (char) + (or (char= #\Newline char) (char= #\Space char) (char= #\Tab char))) +(defun read-token (&optional (built-string "")) + (let ((char (read-char))) + (if (whitespacep-char char) + built-string + (read-token (concatenate 'string + built-string + (make-string 1 :initial-element char)))))) +(defun read-int (&optional (built-string "")) + (let ((char (read-char))) + (if (numberp-char char) + (read-int (concatenate 'string + built-string + (make-string 1 :initial-element char))) + (read-from-string built-string))))