[ENH] Stream input in words/lines/paragraphs as string/object

Lex Spoon lex at cc.gatech.edu
Tue Feb 29 01:38:59 UTC 2000


By the way, squeak already has some of this stuff.  For instance,
nextLine and nextWord.


Lex



Stephen Travis Pope <stp at create.ucsb.edu> wrote:
> This is a multi-part message in MIME format.
> --------------3C7A918CACB687B1CA8BBCA7
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
> 
> 
> (This time *with* the promised attachment...)
> 
> Adds a number of string-reading methods such as nextLineString and
> nextWordObject (evaluates the next word) to PositionableStream.
> 
> -- 
> 
> stp
>   Stephen Travis Pope
>   stp at create.ucsb.edu -- http://www.create.ucsb.edu/~stp
> --------------3C7A918CACB687B1CA8BBCA7
> Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="522A6368";
>  name="streamIO.cs"
> Content-Transfer-Encoding: 7bit
> Content-Description: Unknown Document
> Content-Disposition: inline;
>  filename="streamIO.cs"
> 
> "Change Set:		streamIO.cs
> Date:			23 Feb 2000
> Author:			Stephen Travis Pope
> 
> Adds a number of string-reading methods such as nextLineString and nextWordObject to PositionableStream."
> 
> 'From Squeak2.8alpha of 13 January 2000 [latest update: #1852] on 19 February 2000 at 10:35:55 pm'!
> 
> !PositionableStream methodsFor: 'fileIn/Out' stamp: 'stp 02/18/2000 16:40'!
> nextLineObject
> 	"Deliver the next line string as an object."
> 
> 	| string |
> 	string := self nextLineString.
> 	((string == nil) or: [string isEmpty]) ifTrue: [^nil].
> 	^Compiler evaluate: string! !
> 
> !PositionableStream methodsFor: 'fileIn/Out' stamp: 'stp 02/18/2000 16:23'!
> nextLineString
> 	"Deliver the next line (up to CR, possibly empty) as a String."
> 
> 	self skipSeparators.
> 	^self upTo: Character cr
> ! !
> 
> !PositionableStream methodsFor: 'fileIn/Out' stamp: 'stp 02/18/2000 16:43'!
> nextParagraphObject
> 	"Deliver the next whole paragraph as an object."
> 
> 	| string |
> 	string := self nextParagraphString.
> 	((string == nil) or: [string isEmpty]) ifTrue: [^nil].
> 	^Compiler evaluate: string! !
> 
> !PositionableStream methodsFor: 'fileIn/Out' stamp: 'stp 02/19/2000 21:24'!
> nextParagraphString
> 	"Deliver the next text block (up to CR/CR, possibly empty) as a String."
> 
> 	self skipSeparators.
> 	^self upToAll: (String with: Character cr with: Character cr)! !
> 
> !PositionableStream methodsFor: 'fileIn/Out' stamp: 'stp 02/18/2000 16:41'!
> nextWordObject
> 	"Deliver the next ascii word as an object."
> 
> 	| string |
> 	string := self nextWordString.
> 	((string == nil) or: [string isEmpty]) ifTrue: [^nil].
> 	^Compiler evaluate: string! !
> 
> !PositionableStream methodsFor: 'fileIn/Out' stamp: 'stp 02/19/2000 21:24'!
> nextWordString
> 	"Deliver the next 'word' (up to and separator, possibly empty) as a String."
> 
> 	| newStream element |
> 	self skipSeparators.
> 	newStream _ WriteStream on: (collection species new: 100).
> 	[self atEnd or: [(element _ self next) isSeparator]]
> 		whileFalse: [newStream nextPut: element].
> 	^newStream contents! !
> 
> 
> 
> --------------3C7A918CACB687B1CA8BBCA7--





More information about the Squeak-dev mailing list