X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/aa14a4cddcb96b681d5c19a2ec8bad382f43b264..388ab3827ab7c584c30723f5044c2a38cf6fe55d:/src/parser/streams-impl.lisp diff --git a/src/parser/streams-impl.lisp b/src/parser/streams-impl.lisp index 6094b56..378f9a8 100644 --- a/src/parser/streams-impl.lisp +++ b/src/parser/streams-impl.lisp @@ -7,7 +7,7 @@ ;;;----- Licensing notice --------------------------------------------------- ;;; -;;; This file is part of the Sensble Object Design, an object system for C. +;;; This file is part of the Sensible Object Design, an object system for C. ;;; ;;; SOD is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by @@ -120,7 +120,8 @@ (clear-input ustream))) (defmethod stream-read-sequence - ((stream proxy-input-stream) seq &optional (start 0) end) + ((stream proxy-input-stream) seq + #+clisp &key #-clisp &optional (start 0) end) (with-slots (ustream) stream (read-sequence seq ustream :start start :end end))) @@ -144,7 +145,8 @@ (force-output ustream))) (defmethod stream-write-sequence - ((stream proxy-output-stream) seq &optional (start 0) end) + ((stream proxy-output-stream) seq + #+clisp &key #-clisp &optional (start 0) end) (with-slots (ustream) stream (write-sequence seq ustream :start start :end end))) @@ -212,7 +214,7 @@ position-aware-stream-line position-aware-stream-column)) (defclass position-aware-stream (proxy-stream) ((file :initarg :file :initform nil - :type pathname :accessor position-aware-stream-file) + :type (or pathname null) :accessor position-aware-stream-file) (line :initarg :line :initform 1 :type fixnum :accessor position-aware-stream-line) (column :initarg :column :initform 0 @@ -225,10 +227,10 @@ character increases the line number by one and resets the column number to zero; most characters advance the column number by one, but tab advances to the next multiple of eight. (This is consistent with Emacs, at least.) - The position can be read using STREAM-LINE-AND-COLUMN. + The position can be read using `stream-line-and-column'. - This is a base class; you probably want POSITION-AWARE-INPUT-STREAM or - POSITION-AWARE-OUTPUT-STREAM.")) + This is a base class; you probably want `position-aware-input-stream' or + `position-aware-output-stream'.")) (defgeneric stream-line-and-column (stream) (:documentation @@ -243,12 +245,12 @@ (values line column)))) (defmethod stream-pathname ((stream position-aware-stream)) - "Return the pathname corresponding to a POSITION-AWARE-STREAM. + "Return the pathname corresponding to a `position-aware-stream'. - A POSITION-AWARE-STREAM can be given an explicit pathname, which is + A `position-aware-stream' can be given an explicit pathname, which is returned in preference to the pathname of the underlying stream. This is useful in two circumstances. Firstly, the pathname associated with a file - stream will have been subjected to TRUENAME, and may be less pleasant to + stream will have been subjected to `truename', and may be less pleasant to present back to a user. Secondly, a name can be attached to a stream which doesn't actually have a file backing it." @@ -269,7 +271,7 @@ The position is actually cached in local variables, but will be written back to the stream even in the case of non-local control transfer from the - BODY. What won't work well is dynamically nesting WITH-POSITION forms." + BODY. What won't work well is dynamically nesting `with-position' forms." (with-gensyms (line column char) (once-only (stream) @@ -306,7 +308,8 @@ (call-next-method)) (defmethod stream-read-sequence - ((stream position-aware-input-stream) seq &optional (start 0) end) + ((stream position-aware-input-stream) seq + #+clisp &key #-clisp &optional (start 0) end) (declare (ignore end)) (let ((pos (call-next-method))) (with-position (stream) @@ -345,7 +348,8 @@ insertion of some user code.")) (defmethod stream-write-sequence - ((stream position-aware-output-stream) seq &optional (start 0) end) + ((stream position-aware-output-stream) seq + #+clisp &key #-clisp &optional (start 0) end) (with-position (stream) (dosequence (ch seq :start start :end end) (update ch))